DES 6.2 Released

Skip to first unread message

Fernando Sáenz Pérez

Jan 21, 2019, 7:54:36 AM1/21/19
to SWI-Prolog
[Apologies for multiple receptions]

This is a mail just for informing that the new release 

  Datalog Educational System version 6.2 

has been launched on January, 21st, 2019, and tested for

  SICStus Prolog 4.4.1
  SWI-Prolog 7.4.2

The current version features several improvements mainly 
targeted to the SQL language. For example, some TML 
(Transaction Management Language) statements from the 
standard have been included for commit, rollback and set 
savepoints. New popular string functions (and their 
corresponding predicates) for dealing with nulls have been 
added (both standard and proprietary), as coalesce and 
nullif. An immediate iif function (inherited from Access) 
has been added. SQL comparison operators can include the 
modifiers ALL and ANY. In addition to system flags, user 
flags have been included for scripting. These flags enable 
users to paremeterize their scripts without the risk of 
reusing system flags. They are used similarly to environment
variables in OS batch scripts. The new command /ilog works 
as /log by logging system input and output, but the log is 
closed before user input and reopened afterwards to allow 
other processes to access the log. A special effort has been
geared towards fixing as many bugs as found during teaching 
with this system.

A complete list of enhancements and fixed bugs is attached 
to the end of this message. 
Please, see for details.

  Best regards.

Fernando Saenz Perez
Profesor Titular de Universidad / Associate Professor
Despacho / Office: 435 (4ª planta / 4th floor)
Dept. Ingenieria del Software e Inteligencia Artificial / 
Department of Software Engineering and Artificial 
Universidad Complutense de Madrid
Facultad de Informatica
C/Profesor Jose Garcia Santesmases, s/n
E - 28040 Madrid. Spain


Version 6.2 of DES (released on January, 21st, 2019)
* Enhancements:
  o Added support for ALL and ANY SQL conditions
  o Null handling for string and datetime functions and 
    their corresponding predicates 
  o Error messages for non-valid comma-separated sequences
  o The command /running_info admits the new value batch for
    displaying the current processed batch line, when the 
    output is sent only to the log
  o Added function exp(expr) for calculating the Euler 
    number to the power of expr, and infix integer division 
    operator div
  o Non-grouped attributes in the SQL projection list 
    expressions is checked at compile-time rather than raising
    a run-time exception
  o Added the result of SQL compilations in development mode
  o The left (sequence)-operand in a [NOT] IN SQL operator 
    is allowed to be a (sequence of) expression(s)
  o Several standard statements to manage transaction 
    - COMMIT [WORK]; Save the current database. TAPI 
    - SAVEPOINT Name; Save the current database to savepoint
      Name. TAPI enabled.
    - ROLLBACK [WORK] [TO SAVEPOINT Name]; Restore database 
      either to the last commit or to the savepoint Name. TAPI
  o New SQL functions and corresponding predicates:
    - coalesce(List) SQL ISO. Return the first non-null 
      value in the list of expressions List.
    - nvl(Exp1,Exp2). Return Exp2 if Exp1 evaluates to null;
      otherwise return Exp1. Equivalent to 
    - iif(Cond,Exp1,Exp2). Return Exp1 if Cond evaluates to 
      true; otherwise return Exp2. 
    - nullif(Exp1,Exp2). Return null if Exp1 and Exp2 are 
      equal; otherwise return Exp1. 
  o New commands:
    - /csv Display whether csv dump is enabled. If so, the 
      output csv file name is displayed
    - /dangling_relations Display the relations that depend 
      on others which do not exist
    - /ilog Display whether immediate logging is enabled. If
      enabled, each log is closed before user input and opened
      again afterwards
    - /ilog List Enable or disable immediate logging. If 
      enabled, each log is closed before user input and opened
      again afterwards
    - /restore_ddb Restore the Datalog database from the 
      default file des.ddb . Constraints (type, existence, 
      primary key, candidate key, functional dependency, 
      foreign key, and user-defined) are also restored, if 
      present, from des.ddb
    - /save_ddb Save the current Datalog database to the 
      file des.ddb, rewritting this file if alreay present. 
      Constraints (type, not nullables, primary key, candidate
      key, functional dependency, foreign key, and 
      user-defined) are also saved
    - /set Variable Expression Set the user variable 
      Variable to the value corresponding to evaluating 
      Expression. An expression can be simply a constant 
      value. Use quotes to delimit a string value (otherwise, 
      it can be interpreted as a variable if it starts with 
      either a capital letter or an underscore). Refer to a 
      user variable by delimiting it with dollars. If a user 
      variable name coincides with the name of a system flag, 
      the system flag overrides the user variable
* Changes:
  o Output is disabled when processing the configuration 
    file, even if it contains a command trying to enable 
  o The substring function and predicate do not raise an 
    exception for offsets and lengths out of limits
* Fixed bugs:
  o Columns in the USING list for the right relation were 
    not removed from the output column list
  o Arguments of the command /time were not always correctly
  o False positives for ambiguous expression renamings in 
    SQL outer/inner joins
  o The priority of JOIN operators was higher than SELECT in
  o Some duplicated relation renamings in SQL were not 
  o The last line of a script was not processed if it was 
    not terminated by a carriage return
  o Evaluating an arithmetic expression containing a NULL 
    value silently failed
  o Exiting the system with a log enabled raised an error
  o is_null and is_not_null were cached, which dealt to 
    missing tuples
  o Incorrect translation of IN operator
  o Incorrect translation in RA queries with duplicated 
    renamed columns
  o Outer joins involving filtered relations could miss 
  o Ordering in Datalog assumptions and in WITH SQL 
    statements missed displayed solutions
  o Functions with 0 and greater arity might fail to be 
  o Some type errors simply listed "Error" with no more 
  o Non-grouped attributes where allowed in the SQL HAVING 
  o An attribute reference to the schema of a nested USING 
    clause was not resolved
  o False positive in duplicated relation renamings error
  o False positive for inconsistent condition warning in 
    specific compilations
  o Type inference failed for a CTE including a GROUP BY 
  o The commands /save_ddb and /restore_ddb failed in 
    presence of integrity constraints
  o Not all nested functions in expressions were extracted
  o Some assumptions were type-rejected
  o Goal ordering for certain unsafe rules was unnecesarilly
  o A string including only an operator was incorrectly 
    dealt in evaluable expressions with polymorphic 
  o Parsing a /write command without an argument failed
  o SQL WHERE conditions were solved after solving 
    expressions in the SELECT list
  o SQL infix operators were only allowed in down-case
  o False positive in SQL semantic check for some ouput 

//  ACIDE 0.17 Release Notes    //
//    September, 10th 2015      //

* Enhancements, changes and fixed bugs:
  o Localization to French
  o Multiple editors for new files
  o New Reset and Refresh buttons for the Database panel
  o The Datalog query for Trace Datalog becomes single-lined
  o Keyboard shortcut (F9) for Play
  o Rule (SQL statement, resp.) location  becomes disabled 
    by-default in Trace Datalog (Trace SQL, resp.)
  o New Debug SQL panel but with incomplete functionality
  o Bug fixes in several panels (Console, Database, ...) but
    presumably others added.

  o Ctrl+Mouse Wheel for resizing font display may take long
    time depending on the number of open file editors.
  o Opening medium-sized text files may take long time due 
    to lexical analysis. No progress indicators are provided. 
    Only when all editor windows are processed they are 
  o As an alpha version, there are expected many bugs and 
    incomplete functionalities. Please report them to 

Reply all
Reply to author
0 new messages