[Apologies for multiple receptions]
Hello.
Hoping and wishing the best in current circumstances, this
is a mail just for informing that the new release
Datalog Educational System version 6.6
http://des.sourceforge.net
Mirrored at: https://www.fdi.ucm.es/profesor/fernan/des
And also its online interface has been made available at:
has been launched on January, 25th, 2021, and tested for
SICStus Prolog 4.4.1
SWI-Prolog 7.4.2
The current version is mainly focused on the SQL debugger.
First, a new ACIDE version includes a panel with an
interactive graphical debugger for SQL based on the existing
algorithms in DES. To make this work, several new commands
with TAPI support have been added. Following the
requirements for a graphical interface, new TAPI-enabled
commands have been also provided for the Datalog debugger
(for which a new interactive debugger panel is now under
construction). Second, the coverage of SQL has been extended
with clauses such as for dealing with pagination (offset and
limit) and quantifers. Third, thanks to the experience in
(now virtual) classrooms, unnoticed bugs have been revealed
and fixed, mainly related to SQL and RA. Finally, other
commands have been added and changes have been made.
A complete list of enhancements and fixed bugs is attached
to the end of this message.
Please, see http://des.sourceforge.net for details.
Best regards.
=============================================================
Fernando Saenz Perez
Profesor Titular de Universidad / Associate Professor
Home Page: http://www.fdi.ucm.es/profesor/fernan
Tel: + 34 913947642. Fax: + 34 913947547
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.6 of DES (released on January, 25th, 2021)
-
Enhancements:
o TAPI interface for Datalog and SQL debuggers
o Full Datalog debugger can be applied to the local
database (no need for a source file)
o The original source database is restored after a Datalog
debugging session
o Listed possible answers to Datalog debugger restricted
for propositional predicates
o New offset Datalog predicate for pagination
o Expression evaluation in goal arguments of
metapredicates
o Fractions of seconds are allowed in time data type
o A foreign key can reference the same table it is applied
to
o Support for aggregates in ALL/ANY SQL subqueries
o Improved automatic type casting for SQL built-ins
o Allow for escaped proprietary and standard SQL user
delimiters
o Positional arguments allowed for GROUP BY and ORDER BY
clauses, including expressions solved at run time
o Allow for escaped delimiters in SQL user identifiers
o More precise semantic warning message for unneeded
argument in SQL COUNT
o Added OFFSET and LIMIT clauses to SQL queries
o Modifier ALL added to INTERSECT and EXCEPT multiset SQL
operations
o Added DEFAULT VALUES option for INSERT
o Added internal error messages for command processing
o The condition in the /if command can be surrounded by
parentheses
o Uncontrolled exceptions handled in TAPI commands
o New commands:- /breakpoint Set a breakpoint: start host Prolog
debugging - /debug_dl_answer Question Answer Answer a question
when debuging a Datalog relation. Possible answers are
abort, valid, nonvalid, missing(Tuple), and
wrong(Tuple), where Tuple is of the form rel(cte1, …,
cten), where rel is the relation name and each argument
ctei is an SQL constant. Placeholders (_) are allowed
for missing tuples instead of constants. TAPI enabled - /debug_dl_current_question Display the current
question when debuging a Datalog relation. TAPI enabled - /debug_dl_explain Explain the outcome of the last
Datalog debugging session. TAPI enabled - /debug_dl_node_state Display Datalog debugging node
states. TAPI enabled - /debug_dl_set_node Name/Arity State Set the state for
a node with an unknown state… State can be either valid
or nonvalid. TAPI enabled - /debug_dl_statistics Display Datalog debugging session
statistics. TAPI enabled - /debug_sql_answer Question Answer Answer a question
when debuging an SQL relation. Possible answers are
abort, valid, nonvalid, missing(Tuple), and
wrong(Tuple), where Tuple is of the form rel(cte1, …,
cten), where rel is the relation name and each argument
ctei is an SQL constant. Placeholders (_) are allowed
for missing tuples instead of constants. TAPI enabled - /debug_sql_current_question Display the current
question when debuging an SQL view. TAPI enabled - /debug_sql_node_state Display SQL debugging node
states. TAPI enabled - /debug_sql_set_node Node State Set the state for a
node with an unknown state. State can be either valid or
nonvalid. TAPI enabled - /debug_sql_statistics Display SQL debugging session
statistics. TAPI enabled
- /breakpoint Set a breakpoint: start host Prolog
-
Changes:
o Simplified questions in SQL debugger
o The command interface for /debug_dl has been changed to
be similar to /debug_sql, also adding a new option and
optional answer. Additionally, it becomes TAPI enabled
o Added DBMS-sensitive delimiters in output for relations
o SQL EXCEPT DISTINCT semantics changed for committing to
SQL standard
o The command /get_relation is sensitive to the current
order answer setting
o The command /relation_modified displays all modified
relations
o The input /silent Input is not logged
o Substring for a negative Offset works as: If Length is
greater than -Offset, then the first Length+Offset+1
characters are returned (up to the length of the string)
o SQL semantic checking disabled for the commands
/generate_db and /debug_sql_bench -
Fixed bugs:
o Not found SQL GROUP BY column name in aggregate
subqueries for comparisons
o Foreign key constraints were not checked if the asserted
rule contained a null
o Predicate transformation in Datalog debugger generated
intermediate user identifiers, possibly clashing with
existing predicates
o Some TOP calls were not safe in SQL compilations
o Some incorrect translations in ALL SQL subqueries
o SQL INTERSECTION did not discard duplicates when they
were enabled
o The function iif could not be used in an expression
o Null values were rejected for casting
o Removed incorrect SQL duplicated and constant columns
warnings in UPDATE statements
o Some ill-typed expressions were not identified in the
error message
o Labels were not correctly parsed in multiline mode
o SQL user identifiers including blanks were not delimited
in some listings
o An SQL statement including an inconsistent condition
with type casting enabled was rejected without a hint
o The full Datalog debugger failed for transformed source
rules
o SQL strings including a semicolon were not well
tokenized
o A TAPI command at the end of a script had to end in a
new-line
o Missing answers after solving an embedded implication
after the last goal of a previous join
o Trying to CREATE OR REPLACE a view already defined as a
table led to a non-meaningful error message
o Foreign key constraints involving several attributes may
fail to be posted
o String constants as arguments of user relations were
missed with expressions
o DES exited when a timeout occurred during processing a
script file
o Some incorrect compilations with type casting enabled
o Underscored variables as head arguments were removed
when consulting a Datalog program
o Plain Datalog debugger did not reset root tuples for
statistics
o Datalog basic queries with removed anonymous variable
arguments missed the PDG
o The predicate order_by did not return an answer for a
true goal
o Aggregate functions as arguments in expressions might
raise an exception
o The Datalog debugger failed when all mutually recursive
nodes were non valid
o The command /set_timeout threw an error instead of
informing of an invalid number
o The global timeout was not applied
o The file des_pchr.pl for the Datalog debugger was not
included in binary distros
o Error during parsing exclusive optional modifiers of the
command /dependent_relations
o Error when parsing a restricting query with multiline
enabled
o Datalog 0-arity functions count and count_distinct were
allowed in SQL
o In multiline mode, the terminator “;” did not end some
incorrect SQL / RA / TRC / DRC inputs
o Unfolding a negated disjunction was not correct
o SQL INTERSECT operation did not discard duplicates when
they were enabled
o An aggregate on a single row for a specific program
optimization gave a null result
o System facts were listed when development listings were
not enabled
o A negated LIKE in SQL lead an exception
o Simplifying rules with failing ground primitives lead to
error
o Safe goal reordering did not consider the metapredicate
or
//----------------------------//
// ACIDE 0.18 Release Notes //
// January, 25th 2021 //
//----------------------------//
- Enhancements, changes and fixed bugs:
o Added complete functionality to the SQL Debug panel.
o Graphs in all panels are drawn with the root node at the
top.
o Added the RDG (Relation Dependency Graph) to the PDG
panel.
o Lexicon configuration is kept after console reset.
o Views opened from the Database panel are updated on
opening.
o Catching errors when modifying an SQL view.
o Data retrieved from views in the grid are no longer
editable (there is not support for updatable views).
o When the checkbox ‘SQL Text’ is checked, the
corresponding view is shown in the Database panel.
o Avoiding most non-TAPI commands in the communication
between ACIDE and DES.
o Fixed inserting and deleting tuples on tables with more
than one column.
o Fixed view and table grid display for external
databases.
o Fixed SQL text display for external databases when
modifying views.
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
fernan@sip.ucm.es