SourceForge.net Logo Support This Project
Release Notes

Version 2.7 of DES adds to previous version (2.6):

  • Enhancements:
    • Extended relational algebra processor including all the original operators but division, and extended operators for dealing with outer joins, duplicate elimination, recursion, and grouping with aggregates
    • Multi-line input is also allowed in addition to the current single-line input. Long inputs as typical SQL statements can be spanned over several lines. When multi-line is enabled with the command /multiline on, Datalog inputs must end with a dot (.), and SQL and RA inputs with a semicolon (;). When disabled, each line is considered as a single (Datalog, SQL or RA) input and ending characters are optional
    • When multi-line input is enabled, remarks enclosed between /* and */ can span over several lines and can be nested as well
    • Single-line (--) and multi-line (/**/) remarks can be included in SQL statements at any place a separating blank can occur
    • SQL statement CREATE TABLE can include LIKE for creating a table with the same schema as an existing one
    • SQL statement DROP TABLE can include IF EXISTS clause and can apply to a list of tables
    • New (non-standard) SQL metadata statements (catalogued under ISL, Information Schema Language):
      • SHOW TABLES; List table names. TAPI enabled
      • SHOW VIEWS; List view names. TAPI enabled
      • SHOW DATABASES; List database names. TAPI enabled
      • DESCRIBE Relation; Display schema for Relation, as /dbschema command does. TAPI enabled
    • New commands:
      • /list_tables List table names. TAPI enabled
      • /list_views List view names. TAPI enabled
      • /multiline Display whether multi-line input is enabled
      • /multiline Switch Enable or disable  multi-line input (on or off resp.)
      • /ra Switch to RA interpreter
      • /ra Query Execute an RA query
      • /referenced_relations Name Display relations directly referenced by a foreign key in Name
      • /referenced_relations Name/Arity Display relations directly referenced by a foreign key in Name/Arity
    • Last line in a processed file must not end with a carriage return for its processing
    • Faster abolish command and drop database SQL statement
    • Display of the number of consulted constraints, if any
    • Exceptions during constraint checking when consulting files are caught
    • Faster parsing of Datalog rules and SQL statements
    • A pivot variable that does not occur in the aggregate relation raises a syntax error
    • Views are not required to be created with given column names
    • Submitting a query or creating a view with duplicated columns is rejected
    • Language command error messages instead of just  "Input processing error"
    • Improved compilation of EXISTS SQL clauses, using Datalog built-in top/2, which allows to prune the number of computed tuples
  • Changes:
    • The system prompt for Datalog language changes to the old prompt DES>, as almost any input can be handled from this setting. The only inputs that must explicitly submitted to a language processor are those that can be handled by several language processors
    • Null identifiers are not wasted as eagerly as in previous versions
    • Negation algorithm et_not do not longer rely on computations by strata
    • New organization of system files:
      • des_sql_debug.pl (debugger extracted from former des_sql.pl)
      • des_dl_debug.pl (replaces des_debug.pl), and
      • des_ra.pl (includes RA processor)
  • Fixed bugs:
    • Listings of SQL statements including Top-N queries failed
    • After submitting an incorrect SQL view, all of its temporary schema was not cleaned up
    • Variable names in consulted Datalog constraints were lost
    • New schema names defined in the list of local definitions inside a WITH or ASSUME SQL statement were not handled appropriately. Bug introduced in version 2.6
    • Only one blank was allowed after a SELECT statement. Bug introduced in version 2.6
    • Operator precedence in SQL conditions and Datalog bodies was not correctly handled (parentheses were needed to ensure correct operator applications)
    • Renamed relations could not be enclosed between parentheses
    • A renamed argument in a nested query was not visible for the WHERE condition of its outer query
    • Expressions in nested SQL queries could not be referenced from outermost queries
    • Type inference failed in some situations for equivalent internal string types (cf. russell.sql). Bug introduced in version 2.6
    • Underscored variables in a head rule made rule assertion fail
    • The Prolog interpreter did not handle conjunctive and disjunctive queries

Previous versions

 

[Home] [Download] [Key Features] [Screenshots] [Release Notes] [Release Notes. Previous Versions] [Known Bugs] [License] [FAQ] [News] [Contact] [Contributions] [Publications] [DES Facts] [Statistics]