should be it
This commit is contained in:
146
external/duckdb/test/sql/function/operator/test_arithmetic.test
vendored
Normal file
146
external/duckdb/test/sql/function/operator/test_arithmetic.test
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
# name: test/sql/function/operator/test_arithmetic.test
|
||||
# description: Test arithmetic statements
|
||||
# group: [operator]
|
||||
|
||||
statement ok
|
||||
SET default_null_order='nulls_first';
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER);
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (1), (2), (3), (NULL)
|
||||
|
||||
# comparisons involving arithmetic
|
||||
# these are interesting because these will be folded by optimizers
|
||||
# so we test if the optimizers work correctly
|
||||
# addition is unordered (i.e. i+2=2+i)
|
||||
# i+2=5 => i=3
|
||||
query TT
|
||||
SELECT i+2=5, 5=i+2 FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
0 0
|
||||
1 1
|
||||
|
||||
# 2+i=5 => i=3
|
||||
query TT
|
||||
SELECT 2+i=5, 5=2+i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
0 0
|
||||
1 1
|
||||
|
||||
# multiplication is unordered
|
||||
# i*2=6 => i=3
|
||||
query TT
|
||||
SELECT i*2=6, 6=i*2 FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
0 0
|
||||
1 1
|
||||
|
||||
# 2*i=6 => i=3
|
||||
query TT
|
||||
SELECT 2*i=6, 6=2*i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
0 0
|
||||
1 1
|
||||
|
||||
# i*2=5 (this comparison is always FALSE, except if i is NULL in which case it is NULL)
|
||||
query T
|
||||
SELECT i*2=5 FROM integers ORDER BY i
|
||||
----
|
||||
NULL
|
||||
0
|
||||
0
|
||||
0
|
||||
|
||||
# i*0=5
|
||||
query T
|
||||
SELECT i*0=5 FROM integers ORDER BY i
|
||||
----
|
||||
NULL
|
||||
0
|
||||
0
|
||||
0
|
||||
|
||||
# -i>-2 => i<2
|
||||
query T
|
||||
SELECT -i>-2 FROM integers ORDER BY i
|
||||
----
|
||||
NULL
|
||||
1
|
||||
0
|
||||
0
|
||||
|
||||
# subtraction is ordered
|
||||
# i-2=1 => i=3
|
||||
query TT
|
||||
SELECT i-2=1, 1=i-2 FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
0 0
|
||||
1 1
|
||||
|
||||
# 3-i=1 => i=2
|
||||
query TT
|
||||
SELECT 3-i=1, 1=3-i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
0 0
|
||||
|
||||
# non-equality comparisons should also be flipped in this case
|
||||
# 3-i<2 => i>2
|
||||
query TT
|
||||
SELECT 3-i<2, 2>3-i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
1 1
|
||||
|
||||
query TT
|
||||
SELECT 3-i<=1, 1>=3-i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
1 1
|
||||
|
||||
# division is ordered
|
||||
# i/2=1 => i>=2 or i<=3
|
||||
query TT
|
||||
SELECT i//2=1, 1=i//2 FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
1 1
|
||||
|
||||
# 2/i=1 => i=2
|
||||
query TT
|
||||
SELECT 2/i=1, 1=2/i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
0 0
|
||||
|
||||
# 3/i=2 => i=2
|
||||
query TT
|
||||
SELECT 2/i=1, 1=2/i FROM integers ORDER BY i
|
||||
----
|
||||
NULL NULL
|
||||
0 0
|
||||
1 1
|
||||
0 0
|
||||
|
||||
51
external/duckdb/test/sql/function/operator/test_arithmetic_sqllogic.test
vendored
Normal file
51
external/duckdb/test/sql/function/operator/test_arithmetic_sqllogic.test
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
# name: test/sql/function/operator/test_arithmetic_sqllogic.test
|
||||
# description: SQLogicTest inspired arithmetic tests
|
||||
# group: [operator]
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tab0(col0 INTEGER, col1 INTEGER, col2 INTEGER);
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tab1(col0 INTEGER, col1 INTEGER, col2 INTEGER);
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tab2(col0 INTEGER, col1 INTEGER, col2 INTEGER);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab0 VALUES(97,1,99);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab0 VALUES(15,81,47);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab0 VALUES(87,21,10);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab1 VALUES(51,14,96);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab1 VALUES(85,5,59);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab1 VALUES(91,47,68);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab2 VALUES(64,77,40);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab2 VALUES(75,67,58);
|
||||
|
||||
statement ok
|
||||
INSERT INTO tab2 VALUES(46,51,23);
|
||||
|
||||
query I
|
||||
SELECT DISTINCT - col2 AS col2 FROM tab1 WHERE NOT 18 BETWEEN NULL AND ( + col0 * + CAST ( NULL AS INTEGER ) + - 3 / col2 ) OR NOT col0 BETWEEN col2 + + col1 AND NULL ORDER BY 1 DESC;
|
||||
----
|
||||
-68
|
||||
-96
|
||||
|
||||
query I
|
||||
SELECT MIN ( DISTINCT + CAST ( NULL AS INTEGER ) ) * COUNT ( * ) * - + 16 * CASE + + AVG ( ALL 97 ) WHEN ( + NULLIF ( SUM ( CAST ( NULL AS REAL ) ), 6 ) ) THEN 51 * 31 + - 6 WHEN + 48 * - 34 THEN NULL WHEN 91 * + ( SUM ( CAST ( NULL AS INTEGER ) ) ) THEN NULL END * - 4 + - 67;
|
||||
----
|
||||
NULL
|
||||
|
||||
79
external/duckdb/test/sql/function/operator/test_bitwise_ops.test
vendored
Normal file
79
external/duckdb/test/sql/function/operator/test_bitwise_ops.test
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
# name: test/sql/function/operator/test_bitwise_ops.test
|
||||
# description: Test scalar bitwise ops
|
||||
# group: [operator]
|
||||
|
||||
# left shift
|
||||
query III
|
||||
SELECT 1 << 2, NULL << 2, 2 << NULL
|
||||
----
|
||||
4 NULL NULL
|
||||
|
||||
# right shift
|
||||
query IIII
|
||||
SELECT 16 >> 2, 1 >> 2, NULL >> 2, 2 >> NULL
|
||||
----
|
||||
4 0 NULL NULL
|
||||
|
||||
# bitwise and
|
||||
query IIIII
|
||||
SELECT 1 & 1, 1 & 0, 0 & 0, NULL & 1, 1 & NULL
|
||||
----
|
||||
1 0 0 NULL NULL
|
||||
|
||||
# bitwise or
|
||||
query IIIII
|
||||
SELECT 1 | 1, 1 | 0, 0 | 0, NULL | 1, 1 | NULL
|
||||
----
|
||||
1 1 0 NULL NULL
|
||||
|
||||
# bitwise xor
|
||||
query IIIII
|
||||
SELECT xor(1, 1), xor(1, 0), xor(0, 0), xor(NULL, 1), xor(1, NULL)
|
||||
----
|
||||
0 1 0 NULL NULL
|
||||
|
||||
# out of range shifts throw an error
|
||||
statement error
|
||||
SELECT 1::TINYINT << -1::TINYINT, 1::TINYINT >> -1::TINYINT, 1::TINYINT << 12::TINYINT, 1::TINYINT >> 12::TINYINT
|
||||
----
|
||||
|
||||
statement error
|
||||
SELECT 1::SMALLINT << -1::SMALLINT, 1::SMALLINT >> -1::SMALLINT, 1::SMALLINT << 20::SMALLINT, 1::SMALLINT >> 20::SMALLINT
|
||||
----
|
||||
|
||||
statement error
|
||||
SELECT 1::INT << -1::INT, 1::INT >> -1::INT, 1::INT << 40::INT, 1::INT >> 40::INT
|
||||
----
|
||||
|
||||
statement error
|
||||
SELECT 1::BIGINT << -1::BIGINT, 1::BIGINT >> -1::BIGINT, 1::BIGINT << 1000::BIGINT, 1::BIGINT >> 1000::BIGINT
|
||||
----
|
||||
|
||||
# test invalid bitwise ops
|
||||
statement error
|
||||
SELECT 'hello' << 3
|
||||
----
|
||||
|
||||
statement error
|
||||
SELECT 3 << 'hello'
|
||||
----
|
||||
|
||||
statement error
|
||||
SELECT 2.0 << 1
|
||||
----
|
||||
|
||||
# unsigned numbers
|
||||
query IIII
|
||||
SELECT 1::UTINYINT << 7, 1::USMALLINT << 15, 1::UINT32 << 31, 1::UBIGINT << 63
|
||||
----
|
||||
128 32768 2147483648 9223372036854775808
|
||||
|
||||
statement error
|
||||
SELECT 1::UINT32 << 32
|
||||
----
|
||||
Overflow in left shift
|
||||
|
||||
statement error
|
||||
SELECT 2::UINT32 << 31
|
||||
----
|
||||
Overflow in left shift
|
||||
100
external/duckdb/test/sql/function/operator/test_bitwise_ops_types.test
vendored
Normal file
100
external/duckdb/test/sql/function/operator/test_bitwise_ops_types.test
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
# name: test/sql/function/operator/test_bitwise_ops_types.test
|
||||
# description: Test bitwise ops with tables and different types
|
||||
# group: [operator]
|
||||
|
||||
# type TINYINT
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE bitwise_test(i TINYINT, j TINYINT)
|
||||
|
||||
statement ok
|
||||
INSERT INTO bitwise_test VALUES (1, 1), (1, 0), (0, 1), (0, 0), (1, NULL), (NULL, 1), (NULL, NULL)
|
||||
|
||||
query IIIII
|
||||
SELECT i << j, i >> j, i & j, i | j, xor(i, j) FROM bitwise_test
|
||||
----
|
||||
2 0 1 1 0
|
||||
1 1 0 1 1
|
||||
0 0 0 1 1
|
||||
0 0 0 0 0
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
# type SMALLINT
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE bitwise_test(i SMALLINT, j SMALLINT)
|
||||
|
||||
statement ok
|
||||
INSERT INTO bitwise_test VALUES (1, 1), (1, 0), (0, 1), (0, 0), (1, NULL), (NULL, 1), (NULL, NULL)
|
||||
|
||||
query IIIII
|
||||
SELECT i << j, i >> j, i & j, i | j, xor(i, j) FROM bitwise_test
|
||||
----
|
||||
2 0 1 1 0
|
||||
1 1 0 1 1
|
||||
0 0 0 1 1
|
||||
0 0 0 0 0
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
# type INTEGER
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE bitwise_test(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO bitwise_test VALUES (1, 1), (1, 0), (0, 1), (0, 0), (1, NULL), (NULL, 1), (NULL, NULL)
|
||||
|
||||
query IIIII
|
||||
SELECT i << j, i >> j, i & j, i | j, xor(i, j) FROM bitwise_test
|
||||
----
|
||||
2 0 1 1 0
|
||||
1 1 0 1 1
|
||||
0 0 0 1 1
|
||||
0 0 0 0 0
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
# type BIGINT
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE bitwise_test(i BIGINT, j BIGINT)
|
||||
|
||||
statement ok
|
||||
INSERT INTO bitwise_test VALUES (1, 1), (1, 0), (0, 1), (0, 0), (1, NULL), (NULL, 1), (NULL, NULL)
|
||||
|
||||
query IIIII
|
||||
SELECT i << j, i >> j, i & j, i | j, xor(i, j) FROM bitwise_test
|
||||
----
|
||||
2 0 1 1 0
|
||||
1 1 0 1 1
|
||||
0 0 0 1 1
|
||||
0 0 0 0 0
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
47
external/duckdb/test/sql/function/operator/test_comparison.test
vendored
Normal file
47
external/duckdb/test/sql/function/operator/test_comparison.test
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
# name: test/sql/function/operator/test_comparison.test
|
||||
# description: Test basic comparison statements
|
||||
# group: [operator]
|
||||
|
||||
# = and == are the same
|
||||
query TTTTT
|
||||
SELECT 1 == 1, 1 = 1, 1 == 0, 1 = 0, 1 == NULL
|
||||
----
|
||||
1 1 0 0 NULL
|
||||
|
||||
# != and <> are the same
|
||||
query TTTTT
|
||||
SELECT 1 <> 1, 1 != 1, 1 <> 0, 1 != 0, 1 <> NULL
|
||||
----
|
||||
0 0 1 1 NULL
|
||||
|
||||
# Test auto casting of comparison statements
|
||||
# string <> number comparisons should result in the string being cast to a number
|
||||
statement error
|
||||
select ('abc' between 20 and True);
|
||||
----
|
||||
|
||||
statement error
|
||||
select 'abc' > 10
|
||||
----
|
||||
|
||||
statement error
|
||||
select 20.0 = 'abc'
|
||||
----
|
||||
|
||||
# 1000 > 20
|
||||
query T
|
||||
select '1000' > 20
|
||||
----
|
||||
1
|
||||
|
||||
# ... but '1000' < '20'!
|
||||
query T
|
||||
select '1000' > '20'
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
select ('abc' between '20' and 'true');
|
||||
----
|
||||
1
|
||||
|
||||
194
external/duckdb/test/sql/function/operator/test_conjunction.test
vendored
Normal file
194
external/duckdb/test/sql/function/operator/test_conjunction.test
vendored
Normal file
@@ -0,0 +1,194 @@
|
||||
# name: test/sql/function/operator/test_conjunction.test
|
||||
# description: Test conjunction statements
|
||||
# group: [operator]
|
||||
|
||||
# create table
|
||||
statement ok
|
||||
CREATE TABLE a (i integer, j integer);
|
||||
|
||||
statement ok
|
||||
INSERT INTO a VALUES (3, 4), (4, 5), (5, 6);
|
||||
|
||||
query II
|
||||
SELECT * FROM a WHERE (i > 3 AND j < 5) OR (i > 3 AND j > 5);
|
||||
----
|
||||
5 6
|
||||
|
||||
query II
|
||||
explain SELECT * FROM a WHERE (i > 3 AND j < 5) OR (i > 3 AND j > 5);
|
||||
----
|
||||
physical_plan <REGEX>:.*optional.*
|
||||
|
||||
# test boolean logic in conjunctions
|
||||
query T
|
||||
SELECT true AND true
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT true AND false
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT false AND true
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT false AND false
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT false AND NULL
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT NULL AND false
|
||||
----
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT NULL AND true
|
||||
----
|
||||
NULL
|
||||
|
||||
query T
|
||||
SELECT true AND NULL
|
||||
----
|
||||
NULL
|
||||
|
||||
query T
|
||||
SELECT true OR true
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT true OR NULL
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT NULL OR true
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT false OR NULL
|
||||
----
|
||||
NULL
|
||||
|
||||
query T
|
||||
SELECT NULL OR false
|
||||
----
|
||||
NULL
|
||||
|
||||
query T
|
||||
SELECT true OR false
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT false OR true
|
||||
----
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT false OR false
|
||||
----
|
||||
0
|
||||
|
||||
# test single constant in conjunctions
|
||||
query T
|
||||
SELECT true AND i>3 FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT i>3 AND true FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT 2>3 AND i>3 FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
0
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT false AND i>3 FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
0
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT i>3 AND false FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
0
|
||||
0
|
||||
|
||||
query T
|
||||
SELECT false OR i>3 FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT i>3 OR false FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT true OR i>3 FROM a ORDER BY i
|
||||
----
|
||||
1
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT i>3 OR true FROM a ORDER BY i
|
||||
----
|
||||
1
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT NULL OR i>3 FROM a ORDER BY i
|
||||
----
|
||||
NULL
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT i>3 OR NULL FROM a ORDER BY i
|
||||
----
|
||||
NULL
|
||||
1
|
||||
1
|
||||
|
||||
query T
|
||||
SELECT NULL AND i>3 FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query T
|
||||
SELECT i>3 AND NULL FROM a ORDER BY i
|
||||
----
|
||||
0
|
||||
NULL
|
||||
NULL
|
||||
|
||||
190
external/duckdb/test/sql/function/operator/test_date_arithmetic.test
vendored
Normal file
190
external/duckdb/test/sql/function/operator/test_date_arithmetic.test
vendored
Normal file
@@ -0,0 +1,190 @@
|
||||
# name: test/sql/function/operator/test_date_arithmetic.test
|
||||
# description: Test DATE + TIME
|
||||
# group: [operator]
|
||||
|
||||
statement ok
|
||||
SET default_null_order='nulls_first';
|
||||
|
||||
statement ok
|
||||
CREATE TABLE dates(d DATE);
|
||||
|
||||
statement ok
|
||||
INSERT INTO dates VALUES
|
||||
('1992-01-01'),
|
||||
('1992-03-03'),
|
||||
('1992-05-05'),
|
||||
('2022-01-01'),
|
||||
('044-03-15 (BC)'),
|
||||
(NULL);
|
||||
|
||||
statement ok
|
||||
CREATE TABLE times(t TIME)
|
||||
|
||||
statement ok
|
||||
INSERT INTO times VALUES
|
||||
('00:01:20'),
|
||||
('20:08:10.998'),
|
||||
('20:08:10.33'),
|
||||
('20:08:10.001'),
|
||||
(NULL);
|
||||
|
||||
query III
|
||||
SELECT d, t, d + t
|
||||
FROM dates, times
|
||||
ORDER BY 1, 2
|
||||
----
|
||||
NULL NULL NULL
|
||||
NULL 00:01:20 NULL
|
||||
NULL 20:08:10.001 NULL
|
||||
NULL 20:08:10.33 NULL
|
||||
NULL 20:08:10.998 NULL
|
||||
0044-03-15 (BC) NULL NULL
|
||||
0044-03-15 (BC) 00:01:20 0044-03-15 (BC) 00:01:20
|
||||
0044-03-15 (BC) 20:08:10.001 0044-03-15 (BC) 20:08:10.001
|
||||
0044-03-15 (BC) 20:08:10.33 0044-03-15 (BC) 20:08:10.33
|
||||
0044-03-15 (BC) 20:08:10.998 0044-03-15 (BC) 20:08:10.998
|
||||
1992-01-01 NULL NULL
|
||||
1992-01-01 00:01:20 1992-01-01 00:01:20
|
||||
1992-01-01 20:08:10.001 1992-01-01 20:08:10.001
|
||||
1992-01-01 20:08:10.33 1992-01-01 20:08:10.33
|
||||
1992-01-01 20:08:10.998 1992-01-01 20:08:10.998
|
||||
1992-03-03 NULL NULL
|
||||
1992-03-03 00:01:20 1992-03-03 00:01:20
|
||||
1992-03-03 20:08:10.001 1992-03-03 20:08:10.001
|
||||
1992-03-03 20:08:10.33 1992-03-03 20:08:10.33
|
||||
1992-03-03 20:08:10.998 1992-03-03 20:08:10.998
|
||||
1992-05-05 NULL NULL
|
||||
1992-05-05 00:01:20 1992-05-05 00:01:20
|
||||
1992-05-05 20:08:10.001 1992-05-05 20:08:10.001
|
||||
1992-05-05 20:08:10.33 1992-05-05 20:08:10.33
|
||||
1992-05-05 20:08:10.998 1992-05-05 20:08:10.998
|
||||
2022-01-01 NULL NULL
|
||||
2022-01-01 00:01:20 2022-01-01 00:01:20
|
||||
2022-01-01 20:08:10.001 2022-01-01 20:08:10.001
|
||||
2022-01-01 20:08:10.33 2022-01-01 20:08:10.33
|
||||
2022-01-01 20:08:10.998 2022-01-01 20:08:10.998
|
||||
|
||||
query III
|
||||
SELECT d, t, t + d
|
||||
FROM dates, times
|
||||
ORDER BY 1, 2
|
||||
----
|
||||
NULL NULL NULL
|
||||
NULL 00:01:20 NULL
|
||||
NULL 20:08:10.001 NULL
|
||||
NULL 20:08:10.33 NULL
|
||||
NULL 20:08:10.998 NULL
|
||||
0044-03-15 (BC) NULL NULL
|
||||
0044-03-15 (BC) 00:01:20 0044-03-15 (BC) 00:01:20
|
||||
0044-03-15 (BC) 20:08:10.001 0044-03-15 (BC) 20:08:10.001
|
||||
0044-03-15 (BC) 20:08:10.33 0044-03-15 (BC) 20:08:10.33
|
||||
0044-03-15 (BC) 20:08:10.998 0044-03-15 (BC) 20:08:10.998
|
||||
1992-01-01 NULL NULL
|
||||
1992-01-01 00:01:20 1992-01-01 00:01:20
|
||||
1992-01-01 20:08:10.001 1992-01-01 20:08:10.001
|
||||
1992-01-01 20:08:10.33 1992-01-01 20:08:10.33
|
||||
1992-01-01 20:08:10.998 1992-01-01 20:08:10.998
|
||||
1992-03-03 NULL NULL
|
||||
1992-03-03 00:01:20 1992-03-03 00:01:20
|
||||
1992-03-03 20:08:10.001 1992-03-03 20:08:10.001
|
||||
1992-03-03 20:08:10.33 1992-03-03 20:08:10.33
|
||||
1992-03-03 20:08:10.998 1992-03-03 20:08:10.998
|
||||
1992-05-05 NULL NULL
|
||||
1992-05-05 00:01:20 1992-05-05 00:01:20
|
||||
1992-05-05 20:08:10.001 1992-05-05 20:08:10.001
|
||||
1992-05-05 20:08:10.33 1992-05-05 20:08:10.33
|
||||
1992-05-05 20:08:10.998 1992-05-05 20:08:10.998
|
||||
2022-01-01 NULL NULL
|
||||
2022-01-01 00:01:20 2022-01-01 00:01:20
|
||||
2022-01-01 20:08:10.001 2022-01-01 20:08:10.001
|
||||
2022-01-01 20:08:10.33 2022-01-01 20:08:10.33
|
||||
2022-01-01 20:08:10.998 2022-01-01 20:08:10.998
|
||||
|
||||
statement ok
|
||||
CREATE TABLE timetzs(ttz TIMETZ)
|
||||
|
||||
statement ok
|
||||
INSERT INTO timetzs VALUES
|
||||
('00:01:20+00'),
|
||||
('20:08:10.998-07'),
|
||||
('20:08:10.33+12'),
|
||||
('20:08:10.001-1559'),
|
||||
(NULL);
|
||||
|
||||
query III
|
||||
SELECT d, ttz, d + ttz
|
||||
FROM dates, timetzs
|
||||
ORDER BY 1, 2
|
||||
----
|
||||
NULL NULL NULL
|
||||
NULL 00:01:20+00 NULL
|
||||
NULL 20:08:10.33+12 NULL
|
||||
NULL 20:08:10.998-07 NULL
|
||||
NULL 20:08:10.001-15:59 NULL
|
||||
0044-03-15 (BC) NULL NULL
|
||||
0044-03-15 (BC) 00:01:20+00 0044-03-15 (BC) 00:01:20+00
|
||||
0044-03-15 (BC) 20:08:10.33+12 0044-03-15 (BC) 08:08:10.33+00
|
||||
0044-03-15 (BC) 20:08:10.998-07 0044-03-16 (BC) 03:08:10.998+00
|
||||
0044-03-15 (BC) 20:08:10.001-15:59 0044-03-16 (BC) 12:07:10.001+00
|
||||
1992-01-01 NULL NULL
|
||||
1992-01-01 00:01:20+00 1992-01-01 00:01:20+00
|
||||
1992-01-01 20:08:10.33+12 1992-01-01 08:08:10.33+00
|
||||
1992-01-01 20:08:10.998-07 1992-01-02 03:08:10.998+00
|
||||
1992-01-01 20:08:10.001-15:59 1992-01-02 12:07:10.001+00
|
||||
1992-03-03 NULL NULL
|
||||
1992-03-03 00:01:20+00 1992-03-03 00:01:20+00
|
||||
1992-03-03 20:08:10.33+12 1992-03-03 08:08:10.33+00
|
||||
1992-03-03 20:08:10.998-07 1992-03-04 03:08:10.998+00
|
||||
1992-03-03 20:08:10.001-15:59 1992-03-04 12:07:10.001+00
|
||||
1992-05-05 NULL NULL
|
||||
1992-05-05 00:01:20+00 1992-05-05 00:01:20+00
|
||||
1992-05-05 20:08:10.33+12 1992-05-05 08:08:10.33+00
|
||||
1992-05-05 20:08:10.998-07 1992-05-06 03:08:10.998+00
|
||||
1992-05-05 20:08:10.001-15:59 1992-05-06 12:07:10.001+00
|
||||
2022-01-01 NULL NULL
|
||||
2022-01-01 00:01:20+00 2022-01-01 00:01:20+00
|
||||
2022-01-01 20:08:10.33+12 2022-01-01 08:08:10.33+00
|
||||
2022-01-01 20:08:10.998-07 2022-01-02 03:08:10.998+00
|
||||
2022-01-01 20:08:10.001-15:59 2022-01-02 12:07:10.001+00
|
||||
|
||||
query III
|
||||
SELECT d, ttz, ttz + d
|
||||
FROM dates, timetzs
|
||||
ORDER BY 1, 2
|
||||
----
|
||||
NULL NULL NULL
|
||||
NULL 00:01:20+00 NULL
|
||||
NULL 20:08:10.33+12 NULL
|
||||
NULL 20:08:10.998-07 NULL
|
||||
NULL 20:08:10.001-15:59 NULL
|
||||
0044-03-15 (BC) NULL NULL
|
||||
0044-03-15 (BC) 00:01:20+00 0044-03-15 (BC) 00:01:20+00
|
||||
0044-03-15 (BC) 20:08:10.33+12 0044-03-15 (BC) 08:08:10.33+00
|
||||
0044-03-15 (BC) 20:08:10.998-07 0044-03-16 (BC) 03:08:10.998+00
|
||||
0044-03-15 (BC) 20:08:10.001-15:59 0044-03-16 (BC) 12:07:10.001+00
|
||||
1992-01-01 NULL NULL
|
||||
1992-01-01 00:01:20+00 1992-01-01 00:01:20+00
|
||||
1992-01-01 20:08:10.33+12 1992-01-01 08:08:10.33+00
|
||||
1992-01-01 20:08:10.998-07 1992-01-02 03:08:10.998+00
|
||||
1992-01-01 20:08:10.001-15:59 1992-01-02 12:07:10.001+00
|
||||
1992-03-03 NULL NULL
|
||||
1992-03-03 00:01:20+00 1992-03-03 00:01:20+00
|
||||
1992-03-03 20:08:10.33+12 1992-03-03 08:08:10.33+00
|
||||
1992-03-03 20:08:10.998-07 1992-03-04 03:08:10.998+00
|
||||
1992-03-03 20:08:10.001-15:59 1992-03-04 12:07:10.001+00
|
||||
1992-05-05 NULL NULL
|
||||
1992-05-05 00:01:20+00 1992-05-05 00:01:20+00
|
||||
1992-05-05 20:08:10.33+12 1992-05-05 08:08:10.33+00
|
||||
1992-05-05 20:08:10.998-07 1992-05-06 03:08:10.998+00
|
||||
1992-05-05 20:08:10.001-15:59 1992-05-06 12:07:10.001+00
|
||||
2022-01-01 NULL NULL
|
||||
2022-01-01 00:01:20+00 2022-01-01 00:01:20+00
|
||||
2022-01-01 20:08:10.33+12 2022-01-01 08:08:10.33+00
|
||||
2022-01-01 20:08:10.998-07 2022-01-02 03:08:10.998+00
|
||||
2022-01-01 20:08:10.001-15:59 2022-01-02 12:07:10.001+00
|
||||
|
||||
# Overflow
|
||||
statement error
|
||||
SELECT '294247-01-10'::DATE + '04:00:54.775808'::TIME;
|
||||
----
|
||||
<REGEX>:.*Out of Range Error.*out of range.*
|
||||
39
external/duckdb/test/sql/function/operator/test_division_overflow.test
vendored
Normal file
39
external/duckdb/test/sql/function/operator/test_division_overflow.test
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# name: test/sql/function/operator/test_division_overflow.test
|
||||
# description: Test division overflow
|
||||
# group: [operator]
|
||||
|
||||
statement error
|
||||
SELECT (-128)::TINYINT // (-1)::TINYINT
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT (-127)::TINYINT // (-1)::TINYINT
|
||||
----
|
||||
127
|
||||
|
||||
statement error
|
||||
SELECT (-32768)::SMALLINT // (-1)::SMALLINT
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT (-32767)::SMALLINT // (-1)::SMALLINT
|
||||
----
|
||||
32767
|
||||
|
||||
statement error
|
||||
SELECT (-2147483648)::INTEGER // (-1)::INTEGER
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT (-2147483647)::INTEGER // (-1)::INTEGER
|
||||
----
|
||||
2147483647
|
||||
|
||||
statement error
|
||||
SELECT (-9223372036854775808)::BIGINT // (-1)::BIGINT
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT (-9223372036854775807)::BIGINT // (-1)::BIGINT
|
||||
----
|
||||
9223372036854775807
|
||||
18
external/duckdb/test/sql/function/operator/test_in_empty_table.test
vendored
Normal file
18
external/duckdb/test/sql/function/operator/test_in_empty_table.test
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# name: test/sql/function/operator/test_in_empty_table.test
|
||||
# description: Issue #11063 - IN operator throws a Conversion Error when checking INTEGER column for 5 or more VARCHAR elements
|
||||
# group: [operator]
|
||||
|
||||
statement ok
|
||||
CREATE OR REPLACE TABLE test (a INTEGER)
|
||||
|
||||
query I
|
||||
SELECT * FROM test WHERE a IN ('a', 'b', 'c', 'd', 'e')
|
||||
----
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (42)
|
||||
|
||||
statement error
|
||||
SELECT * FROM test WHERE a IN ('a', 'b', 'c', 'd', 'e')
|
||||
----
|
||||
Could not convert string
|
||||
Reference in New Issue
Block a user