61 lines
852 B
SQL
61 lines
852 B
SQL
# name: test/optimizer/statistics/statistics_try_cast.test
|
|
# description: Statistics with try cast
|
|
# group: [statistics]
|
|
|
|
statement ok
|
|
PRAGMA explain_output = OPTIMIZED_ONLY;
|
|
|
|
statement ok
|
|
CREATE TABLE integers AS SELECT range i FROM range(5)
|
|
|
|
query I
|
|
SELECT i::TINYINT IS NULL FROM integers
|
|
----
|
|
False
|
|
False
|
|
False
|
|
False
|
|
False
|
|
|
|
query I
|
|
SELECT TRY_CAST(i AS TINYINT) IS NULL FROM integers
|
|
----
|
|
False
|
|
False
|
|
False
|
|
False
|
|
False
|
|
|
|
query II
|
|
EXPLAIN SELECT i::TINYINT IS NULL FROM integers
|
|
----
|
|
logical_opt <!REGEX>:.*IS.*NULL.*
|
|
|
|
query II
|
|
EXPLAIN SELECT (TRY_CAST(i AS TINYINT)) IS NULL FROM integers
|
|
----
|
|
logical_opt <REGEX>:.*IS.*NULL.*
|
|
|
|
statement ok
|
|
INSERT INTO integers VALUES (255)
|
|
|
|
query I
|
|
SELECT TRY_CAST(i AS TINYINT) FROM integers
|
|
----
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
NULL
|
|
|
|
query I
|
|
SELECT TRY_CAST(i AS TINYINT) IS NULL FROM integers
|
|
----
|
|
False
|
|
False
|
|
False
|
|
False
|
|
False
|
|
True
|