It allows negation, the expression of arithmetic functions, and higher-order constructs such as grouping, sorting, and aggregate functions. Goal conjunctions translate to joins. Variables with single occurrences in the body are not translated. Free variables translate to grouping attributes. Shared variables in goals translate to equi-join conditions.
Constants translate to equality comparisons of an attribute and the constant value.
Nulls are translated to IS NULL conditions. In the following, we show the definition of a simple join view between the two database predicates emp and dept . NEW YORK Backtracking can then be used to retrieve the next row of the view. The corresponding restrictive SQL query is generated, and if this is the first call with that adornment, it is cached. A second call with same adornment would try to use the same database cursor if still available, without parsing the respective SQL statement.