# name: test/sql/overflow/test_overflow.test # description: Test handling of overflows in basic types # group: [overflow] statement ok PRAGMA enable_verification statement ok CREATE TABLE test (a INTEGER, b INTEGER); # insert too large value for domain should cause error statement error INSERT INTO test VALUES (-1099511627776, 3) ---- Conversion Error statement ok INSERT INTO test VALUES (11, 22), (12, 21), (14, 22) # Casting NULL should still work though query I SELECT ALL CAST ( - SUM ( DISTINCT - CAST ( NULL AS INTEGER ) ) AS INTEGER ) FROM test ---- NULL # proper upcasting of integer columns in AVG query IR SELECT b, AVG(a) FROM test GROUP BY b ORDER BY b; ---- 21 12.000000 22 12.500000 # cast overflows statement error SELECT cast(200 AS TINYINT) ---- Conversion Error statement error SELECT cast(-129 AS TINYINT) ---- Conversion Error # addition overflow statement error SELECT cast(100 AS TINYINT) + cast(100 AS TINYINT) ---- Out of Range Error: Overflow # also with tables statement ok CREATE TABLE test2 (a INTEGER, b TINYINT); statement ok INSERT INTO test2 VALUES (200, 60), (12, 60), (14, 60) statement error SELECT cast(a AS TINYINT) FROM test2 ---- Conversion Error query I SELECT SUM(b) FROM test2 ---- 180 # subtraction statement error SELECT 100::TINYINT - -50::TINYINT ---- Out of Range Error: Overflow statement error SELECT 100::TINYINT * 2::TINYINT ---- Out of Range Error: Overflow # tables statement error SELECT 100::TINYINT + b::TINYINT FROM test2 ---- Out of Range Error: Overflow statement error SELECT 100::TINYINT - -b::TINYINT FROM test2 ---- Out of Range Error: Overflow statement error SELECT 100::TINYINT * b::TINYINT FROM test2 ---- Out of Range Error: Overflow # more complex expressions statement error SELECT a + b FROM (SELECT cast(100 AS TINYINT) AS a, cast(100 AS TINYINT) AS b) tbl1 ---- Out of Range Error: Overflow