128 lines
2.1 KiB
SQL
128 lines
2.1 KiB
SQL
# name: test/optimizer/move_constants.test
|
|
# description: Test move constants
|
|
# group: [optimizer]
|
|
|
|
statement ok
|
|
CREATE TABLE test(X INTEGER);
|
|
|
|
statement ok
|
|
PRAGMA explain_output = OPTIMIZED_ONLY;
|
|
|
|
# addition
|
|
query I nosort add_left
|
|
EXPLAIN SELECT X+1=10 FROM test
|
|
----
|
|
|
|
query I nosort add_left
|
|
EXPLAIN SELECT 1+X=10 FROM test
|
|
----
|
|
|
|
query I nosort add_left
|
|
EXPLAIN SELECT X=9 FROM test
|
|
----
|
|
|
|
query I nosort add_right
|
|
EXPLAIN SELECT 10=X+1 FROM test
|
|
----
|
|
|
|
query I nosort add_right
|
|
EXPLAIN SELECT 10=1+X FROM test
|
|
----
|
|
|
|
query I nosort add_right
|
|
EXPLAIN SELECT 9=X FROM test
|
|
----
|
|
|
|
# subtraction
|
|
query I nosort subtract_left_right
|
|
EXPLAIN SELECT X-1=10 FROM test
|
|
----
|
|
|
|
query I nosort subtract_left_right
|
|
EXPLAIN SELECT X=11 FROM test
|
|
----
|
|
|
|
query I nosort subtract_left_left
|
|
EXPLAIN SELECT 10-X=5 FROM test
|
|
----
|
|
|
|
query I nosort subtract_left_left
|
|
EXPLAIN SELECT X=5 FROM test
|
|
----
|
|
|
|
# non-equality comparisons get flipped get flipped
|
|
query I nosort subtract_flipped_lt
|
|
EXPLAIN SELECT 10-X<5 FROM test
|
|
----
|
|
|
|
query I nosort subtract_flipped_lt
|
|
EXPLAIN SELECT X>5 FROM test
|
|
----
|
|
|
|
query I nosort subtract_flipped_gte
|
|
EXPLAIN SELECT 10-X>=5 FROM test
|
|
----
|
|
|
|
query I nosort subtract_flipped_gte
|
|
EXPLAIN SELECT X<=5 FROM test
|
|
----
|
|
|
|
# multiplication
|
|
query I nosort mult_left
|
|
EXPLAIN SELECT X*3=6 FROM test
|
|
----
|
|
|
|
query I nosort mult_left
|
|
EXPLAIN SELECT 3*X=6 FROM test
|
|
----
|
|
|
|
query I nosort mult_left
|
|
EXPLAIN SELECT X=2 FROM test
|
|
----
|
|
|
|
# gt
|
|
query I nosort mult_left_gt
|
|
EXPLAIN SELECT X*3>3 FROM test
|
|
----
|
|
|
|
query I nosort mult_left_gt
|
|
EXPLAIN SELECT X>1 FROM test
|
|
----
|
|
|
|
# negative values
|
|
query I nosort mult_left_negative
|
|
EXPLAIN SELECT -1*X=-5 FROM test
|
|
----
|
|
|
|
query I nosort mult_left_negative
|
|
EXPLAIN SELECT X=5 FROM test
|
|
----
|
|
|
|
query I nosort mult_left_negative_flip
|
|
EXPLAIN SELECT -1*X<-5 FROM test
|
|
----
|
|
|
|
query I nosort mult_left_negative_flip
|
|
EXPLAIN SELECT X>5 FROM test
|
|
----
|
|
|
|
mode skip
|
|
|
|
# FIXME
|
|
# negation
|
|
query I nosort negation
|
|
EXPLAIN SELECT -X=-5 FROM test
|
|
----
|
|
|
|
query I nosort negation
|
|
EXPLAIN SELECT X=5 FROM test
|
|
----
|
|
|
|
query I nosort negation_flip
|
|
EXPLAIN SELECT -X<-5 FROM test
|
|
----
|
|
|
|
query I nosort negation_flip
|
|
EXPLAIN SELECT X>5 FROM test
|
|
----
|