should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,222 @@
# name: test/sql/overflow/integer_overflow.test
# description: Test handling of integer overflow in arithmetic
# group: [overflow]
statement ok
PRAGMA enable_verification
# addition
# tinyint
statement ok
SELECT 100::TINYINT + 1::TINYINT
statement error
SELECT 100::TINYINT + 50::TINYINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::TINYINT + -127::TINYINT
statement error
SELECT -2::TINYINT + -127::TINYINT
----
Out of Range Error: Overflow
# smallint
statement ok
SELECT 30000::SMALLINT + 1::SMALLINT
statement error
SELECT 30000::SMALLINT + 5000::SMALLINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::SMALLINT + -32767::SMALLINT
statement error
SELECT -2::SMALLINT + -32767::SMALLINT
----
Out of Range Error: Overflow
# integer
statement ok
SELECT 2147483640::INTEGER + 1::INTEGER
statement error
SELECT 2147483640::INTEGER + 5000::INTEGER
----
Out of Range Error: Overflow
statement ok
SELECT 0::INTEGER + -2147483647::INTEGER
statement error
SELECT -2::INTEGER + -2147483647::INTEGER
----
Out of Range Error: Overflow
# bigint
statement ok
SELECT 9223372036854775800::BIGINT + 1::BIGINT
statement error
SELECT 9223372036854775800::BIGINT + 5000::BIGINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::BIGINT + -9223372036854775807::BIGINT
statement error
SELECT -2::BIGINT + -9223372036854775808::BIGINT
----
Conversion Error
# subtraction
# tinyint
statement ok
SELECT -100::TINYINT - 1::TINYINT
statement error
SELECT -100::TINYINT - 50::TINYINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::TINYINT - 127::TINYINT
statement error
SELECT -2::TINYINT - 127::TINYINT
----
Out of Range Error: Overflow
# smallint
statement ok
SELECT -30000::SMALLINT - 1::SMALLINT
statement error
SELECT -30000::SMALLINT - 5000::SMALLINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::SMALLINT - 32767::SMALLINT
statement error
SELECT -2::SMALLINT - 32767::SMALLINT
----
Out of Range Error: Overflow
# integer
statement ok
SELECT -2147483640::INTEGER - 1::INTEGER
statement error
SELECT -2147483640::INTEGER - 5000::INTEGER
----
Out of Range Error: Overflow
statement ok
SELECT 0::INTEGER - 2147483647::INTEGER
statement error
SELECT -2::INTEGER - 2147483647::INTEGER
----
Out of Range Error: Overflow
# bigint
statement ok
SELECT -9223372036854775800::BIGINT - 1::BIGINT
statement error
SELECT -9223372036854775800::BIGINT - 5000::BIGINT
----
Out of Range Error: Overflow
statement ok
SELECT 0::BIGINT - 9223372036854775807::BIGINT
statement error
SELECT -2::BIGINT - 9223372036854775807::BIGINT
----
Out of Range Error: Overflow
# multiplication
# tinyint
statement ok
SELECT 50::TINYINT * 2::TINYINT
statement error
SELECT 50::TINYINT * 3::TINYINT
----
Out of Range Error: Overflow
statement ok
SELECT -1::TINYINT * 127::TINYINT
statement ok
SELECT -2::TINYINT * 64::TINYINT
statement error
SELECT -2::TINYINT * 65::TINYINT
----
Out of Range Error: Overflow
# smallint
statement ok
SELECT 15000::SMALLINT * 2::SMALLINT
statement error
SELECT 15000::SMALLINT * 3::SMALLINT
----
Out of Range Error: Overflow
statement ok
SELECT -1::SMALLINT * 32767::SMALLINT
statement ok
SELECT -2::SMALLINT * 16384::SMALLINT
statement error
SELECT -2::SMALLINT * 16385::SMALLINT
----
Out of Range Error: Overflow
# integer
statement ok
SELECT 1073741820::INTEGER * 2::INTEGER
statement error
SELECT 1073741820::INTEGER * 3::INTEGER
----
Out of Range Error: Overflow
statement ok
SELECT -1::INTEGER * 2147483647::INTEGER
statement ok
SELECT -2::INTEGER * 1073741824::INTEGER
statement error
SELECT -2::INTEGER * 1073741825::INTEGER
----
Out of Range Error: Overflow
# bigint
statement ok
SELECT 4611686018427387900::BIGINT * 2::BIGINT
statement error
SELECT 4611686018427387900::BIGINT * 3::BIGINT
----
Out of Range Error: Overflow
statement ok
SELECT -1::BIGINT * 9223372036854775807::BIGINT
statement error
SELECT -2::BIGINT * 4611686018427387905::BIGINT
----
Out of Range Error: Overflow