1.4 Debugging
You can debug CQL using the meta-predicates ?/1, ??/2 and ???/3:
???{[], se_lt_x :: [a-A, b-_], A == 'ELSTON_M'}.
- ?/1
- Display a summary form of the generated SQL before and after the goal is
called.
[main] CALL SELECT slx_2.b, slx_2.a FROM se_lt_x AS slx_2 WHERE slx_2.a = 'ELSTON_M' [main] EXIT SELECT slx_2.b, slx_2.a FROM se_lt_x AS slx_2 WHERE slx_2.a = 'ELSTON_M' (0.006963s, 0.01cpu, 3,899 inferences)
- ??/1
- Display the exact query (and results) in a format which can be executed
directly by the DBMS (In this case, SQL Server) The generated SQL may be
significantly more complicated than expected, and this can be used to
debug the CQL compiler itself
[main] CALL DECLARE @P0 VARCHAR(50); SET @P0 = 'ELSTON_M'; SELECT slx_450.b, slx_450.a FROM se_lt_x AS slx_450 WHERE slx_450.a = @P0 AND slx_450.a COLLATE Latin1_General_CS_AS = @P0 Result: se_lt_x.b = {null} se_lt_x.a = 'ELSTON_M' (0.003304s, 0.00cpu, 359 inferences)
- ???/1
- Display simplified SQL before the goal is called and display the results
afterwards
[main] CALL SELECT slx_450.b, slx_450.a FROM se_lt_x AS slx_450 WHERE slx_450.a = 'ELSTON_M' Result: se_lt_x.b = {null} se_lt_x.a = 'ELSTON_M' (0.003304s, 0.00cpu, 359 inferences)