53 lines
1.0 KiB
SQL
53 lines
1.0 KiB
SQL
# name: test/optimizer/comparison_simplification.test
|
|
# description: Comparison simplification test
|
|
# group: [optimizer]
|
|
|
|
statement ok
|
|
CREATE TABLE test(X INTEGER);
|
|
|
|
statement ok
|
|
PRAGMA explain_output = OPTIMIZED_ONLY;
|
|
|
|
# comparisons with NULL result in NULL
|
|
query I nosort compnorm1
|
|
EXPLAIN SELECT NULL FROM test
|
|
----
|
|
|
|
query I nosort compnorm1
|
|
EXPLAIN SELECT X=NULL FROM test
|
|
----
|
|
|
|
query I nosort compnorm1
|
|
EXPLAIN SELECT X>NULL FROM test
|
|
----
|
|
|
|
query I nosort compnorm1
|
|
EXPLAIN SELECT NULL>X FROM test
|
|
----
|
|
|
|
# in the WHERE clause this gets pruned entirely
|
|
query I nosort compnorm2
|
|
EXPLAIN SELECT * FROM test WHERE 1=0
|
|
----
|
|
|
|
query I nosort compnorm2
|
|
EXPLAIN SELECT * FROM test WHERE X=NULL
|
|
----
|
|
|
|
# we shift casts from columns to columns when possible
|
|
query I nosort constantshift
|
|
EXPLAIN SELECT X=1::BIGINT FROM test
|
|
----
|
|
|
|
query I nosort constantshift
|
|
EXPLAIN SELECT X::BIGINT=1::INTEGER FROM test
|
|
----
|
|
|
|
query I nosort constantshift
|
|
EXPLAIN SELECT X='1' FROM test
|
|
----
|
|
|
|
query I nosort constantshift
|
|
EXPLAIN SELECT X::BIGINT='1' FROM test
|
|
----
|