Merge 'Refactor numeric literal' from meteorgan

Closes #1461
This commit is contained in:
Pekka Enberg 2025-05-10 08:00:58 +03:00
commit 73c0bd0737
4 changed files with 253 additions and 83 deletions

View file

@ -30,3 +30,4 @@ source $testdir/update.test
source $testdir/drop_table.test
source $testdir/default_value.test
source $testdir/boolean.test
source $testdir/literal.test

84
testing/literal.test Executable file
View file

@ -0,0 +1,84 @@
#!/usr/bin/env tclsh
set testdir [file dirname $argv0]
source $testdir/tester.tcl
do_execsql_test numberic-literal-1 {
SELECT 45;
} {45}
do_execsql_test numberic-literal-2 {
SELECT 0x7FFFFFFFFFFFFFFF;
} {9223372036854775807}
do_execsql_test numberic-literal-3 {
SELECT -0x7FFFFFFFFFFFFFFF;
} {-9223372036854775807}
do_execsql_test numberic-literal-4 {
SELECT +0x7FFFFFFFFFFFFFFF;
} {9223372036854775807}
do_execsql_test numberic-literal-5 {
SELECT 9_223_372_036_854_775_807;
} {9223372036854775807}
do_execsql_test numberic-literal-6 {
SELECT -9_223_372_036_854_775_808;
} {-9223372036854775808}
do_execsql_test numberic-literal-7 {
SELECT 1_000;
} {1000}
do_execsql_test numberic-literal-8 {
SELECT 1.1_1;
} {1.11}
do_execsql_test numberic-literal-9 {
SELECT 1e12;
} {1000000000000.0}
do_execsql_test numberic-literal-10 {
SELECT 1.0;
} {1.0}
do_execsql_test numberic-literal-11 {
SELECT 1e1000;
} {Inf}
do_execsql_test numberic-literal-12 {
SELECT -1e1000;
} {-Inf}
do_execsql_test numberic-literal-13 {
SELECT 1e1_000;
} {Inf}
do_execsql_test numberic-literal-14 {
SELECT 12_3_456.7_8_9;
} {123456.789}
do_execsql_test numberic-literal-exceed-max-i64 {
SELECT 9_223_372_036_854_775_808;
} {9.22337203685478e+18}
do_execsql_test numberic-literal-exceed-min-i64 {
SELECT -9_223_372_036_854_775_809;
} {-9.22337203685478e+18}
do_execsql_test_any_error invalid-numberic-literal-1 {
SELECT 0xFF__FF;
}
do_execsql_test_any_error invalid-numberic-literal-2 {
SELECT 12a3;
}
do_execsql_test_any_error invalid-numberic-literal-3 {
SELECT e12;
}
do_execsql_test_any_error invalid-numberic-literal-4 {
SELECT 1e;
}