Rel version 0.3.12 Alpha now available

This forum contains announcements about Rel.
Post Reply
Site Admin
Posts: 372
Joined: Sun Nov 27, 2005 7:19 pm

Rel version 0.3.12 Alpha now available

Post by Dave »

This version of Rel includes some significant changes to ORDER and

Previously, ORDER was a relational operator that returned tuples in a
specified order, and FOR iterated over the tuples of a relation. Now,
ORDER is an array operator that accepts a relation and returns a
dynamically-created ARRAY, and FOR iterates over the tuples of an
ARRAY. This requires no syntactic changes to existing Tutorial D /
Rel scripts, but Relationland is no longer corrupted with notions of
tuple order or tuple iteration.

A bug in JOIN has been fixed. Attempting to perform the following
would return a relation with no tuples:

RELATION {TUPLE {x 1, y 2.3}} JOIN RELATION {TUPLE {y 2.3, x 1}}

Due to this bug, relations with identical headings but defined with a
different attribute order could fail to JOIN correctly. This has been

Some minor changes have been made to operator precedence in
expressions. ORDER now has lower precedence than WHERE, and '[...]'
(ARRAY element dereference) has lower precedence than ORDER. This
allows an intuitive formation of expressions involving ARRAYs, e.g.,
the following will return the third tuple from the catalog when the
catalog is sorted by Name:

sys.Catalog WHERE Owner<>"Rel" ORDER (ASC Name) [2]

Note that ORDER() (i.e., no specified sort orders) is legal and
effectively casts a relation to an ARRAY.

Finally, JOIN has been altered to start emitting tuples before its
internal indexing is complete. All relational operators are now fully

For more information, or to download Rel, see
Post Reply