This is a minor release of Rel, an implementation of Date & Darwen’s Tutorial D database language. It adds EQUIV and RANK operators, slightly tweaks the Tutorial D grammar implementation to reduce the need for parentheses, provides infix invocation for certain operators, and fixes some bugs.
The following enhancements have been made to the Rel implementation of Tutorial D:
– Infix syntax for EXTEND, SUMMARIZE and UPDATE expressions is now available. The prefix syntax has been retained, but these are now allowed:
S EXTEND {SS := STATUS}
S EXTEND: {SS := STATUS}
S SUMMARIZE BY {CITY} {SS := SUM(STATUS)}
S SUMMARIZE BY {CITY}: {SS := SUM(STATUS)}
S UPDATE {STATUS := 2}
S UPDATE: {STATUS := 2}
– Dyadic and monadic relational operators now have equal precedence, except WHERE (lower precedence) and projection (higher precedence). This means operators may often be “chained” naturally without requiring parentheses. E.g., S RENAME {CITY AS PLACE} WRAP {PLACE, STATUS} AS T is allowed, where previously (S RENAME {CITY AS PLACE}) WRAP {PLACE, STATUS} AS T would have been required. This should not affect existing code.
– RANK has been implemented, per Date & Darwen’s “Data Types and the Relational Model”. Both prefix and infix syntax are available:
RANK S BY (ASC STATUS AS Ranking)
S RANK BY (ASC STATUS AS Ranking)
S RANK (ASC STATUS AS Ranking)
– EQUIV has been implemented, per Date & Darwen’s “Database Explorations”.
The following bugs have been fixed:
– Case #139 – #142: In the Rel UI, a fatal error was sometimes inappropriately generated when a query was cancelled in the command-line view. This has been fixed.
– Case #153: Errors in built-in or user-defined Java-based operators now generate an error message rather than causing a fatal error.