Re: hamsterdb Transactional Storage (thanks to all of you)

From: <compdb_at_hotmail.com>
Date: Thu, 15 Oct 2009 17:26:17 -0700 (PDT)
Message-ID: <33c8e57b-80bc-45c7-a319-f2855bdffb62_at_a37g2000prf.googlegroups.com>


On Oct 13, 7:25 am, paul c <toledobythe..._at_oohay.ac> wrote:

>Is it a way of allowing user-defined
> aggregate ops?

Yes.

> Also does it mean a
> "tuple" programming interface?

Only in exactly the sense that R WHERE X+Y involves a tuple interface.

> And what "detritus" is avoided?

> Or does it simply mean that most
> implementations don't define all the possible ops for each domain?

They don't let you write arbitrary operators on relations (a special case being applying other operators to tuples collectively). Generic aggregation does.

> (I take it that UNNEST here has a tuple operand, unlike UNGROUP.

By NEST I just meant Date & Darwen's GROUP. The operands are a relation and a quoted-expression.

> I've
> presumed that the conventional aggregate definitions involve UNGROUP as
> well as EXTEND.)

No, they involve "standard math series notation". It's operators like SUMMARIZE, EXTEND and SELECT that traditionally take aggregates that also use EXTEND and traditionally are the only place aggregates (column functions) can be used.

SUM(s, e) // set s, quoted-expression e binds name i

  • SIGMA for i in s of e SUM({1, 2, 3}, i**2) = 1**2 + 2**2 + 3**2 = 1 + 4 + 9 = 15

SUM(r, e)
  // relation expression r, quoted-expression e binds attribute names of r

  • SIGMA for <a1, a2, ...> in r of e SUM({<X 1, Y 2>, <X 5 Y 6>}, 2*(Y-X))
  • 2*(2-1) + 2*(6-5) = 2 + 2 = 4

philip Received on Fri Oct 16 2009 - 02:26:17 CEST

Original text of this message