[Apologies for multiple receptions]
Hello.
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.
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
Intelligence
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
states:
- COMMIT [WORK]; Save the current database. TAPI
enabled.
- 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
enabled.
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
coalesce([Exp1,Exp2]).
- 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
output
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
parsed
o False positives for ambiguous expression renamings in
SQL outer/inner joins
o The priority of JOIN operators was higher than SELECT in
subqueries
o Some duplicated relation renamings in SQL were not
identified
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
tuples
o Ordering in Datalog assumptions and in WITH SQL
statements missed displayed solutions
o Functions with 0 and greater arity might fail to be
parsed
o Some type errors simply listed "Error" with no more
information
o Non-grouped attributes where allowed in the SQL HAVING
clause
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
clause
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
changed
o A string including only an operator was incorrectly
dealt in evaluable expressions with polymorphic
functions/operators
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
expressions
//------------------------------//
// 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.
IMPORTANT CAVEATS / KNOWN BUGS:
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
displayed.
o As an alpha version, there are expected many bugs and
incomplete functionalities. Please report them to