Re: Objects and Relations

From: Marshall <marshall.spight_at_gmail.com>
Date: 30 Jan 2007 18:52:58 -0800
Message-ID: <1170211978.580224.75270_at_s48g2000cws.googlegroups.com>


On Jan 30, 3:19 pm, mAsterdam <mAster..._at_vrijdag.org> wrote:
> Marshall wrote:
>
> > Yes. I note that often when these kinds of comparisons are made,
> > they are implicitly made between a non-thread-safe, non-transactional
> > array, and a rowstore with full transactional semantics.
>
> I remember you said you were working on a list algebra.
> Are/were you aiming to construct it in such a way
> that full transactional semantics would be a breeze?

Yeah; the transactional semantics strike me as more or less independent from the logical model. However I should note that I remain distinctly undereducated in relational implementation, so I may just be kidding myself. Especially note that Jan Hidders expressed skepticism of the idea.

As to a list algebra itself, it turned out not to be necessary; everything I wanted to do with a list algebra I could do with the relational algebra. However we do have to add some modest semantics to a few primitives. For example, if we are doing a "group by" with a fold of a function that isn't both commutative and associative, we have to specify the order of the aggregation or else our result is nondeterministic. Thus I imagine a few small additional semantics, such as that folds ("aggregation" in relational terminology) of non-commutative-and-associative functions must be performed on lists and not unordered relations, and they are specified to be performed in list order, and that joins with operands that aren't side-effect-free have the same semantics. Actually that's about all you need. Oh, and some imperative operators: insert-at and delete-at, for positional inserts and deletes that "renumber" the list after the fact. These can be defined in terms of relations though.

Marshall Received on Wed Jan 31 2007 - 03:52:58 CET

Original text of this message