mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Improved resolution of large integer values in "CAST(x AS NUMERIC)".
FossilOrigin-Name: 7f2bd4ff45fba29528c18cac6da983bd9b164303525d3965056f5b40f85dc83f
This commit is contained in:
@ -1663,6 +1663,50 @@ do_expr_test e_expr-32.2.3 {
|
||||
do_expr_test e_expr-32.2.4 {
|
||||
CAST(9223372036854775807 AS NUMERIC)
|
||||
} integer 9223372036854775807
|
||||
do_expr_test e_expr-32.2.5 {
|
||||
CAST('9223372036854775807 ' AS NUMERIC)
|
||||
} integer 9223372036854775807
|
||||
do_expr_test e_expr-32.2.6 {
|
||||
CAST(' 9223372036854775807 ' AS NUMERIC)
|
||||
} integer 9223372036854775807
|
||||
do_expr_test e_expr-32.2.7 {
|
||||
CAST(' ' AS NUMERIC)
|
||||
} integer 0
|
||||
do_execsql_test e_expr-32.2.8 {
|
||||
WITH t1(x) AS (VALUES
|
||||
('9000000000000000001'),
|
||||
('9000000000000000001x'),
|
||||
('9000000000000000001 '),
|
||||
(' 9000000000000000001 '),
|
||||
(' 9000000000000000001'),
|
||||
(' 9000000000000000001.'),
|
||||
('9223372036854775807'),
|
||||
('9223372036854775807 '),
|
||||
(' 9223372036854775807 '),
|
||||
('9223372036854775808'),
|
||||
(' 9223372036854775808 '),
|
||||
('9223372036854775807.0'),
|
||||
('9223372036854775807e+0'),
|
||||
('-5.0'),
|
||||
('-5e+0'))
|
||||
SELECT typeof(CAST(x AS NUMERIC)), CAST(x AS NUMERIC)||'' FROM t1;
|
||||
} [list \
|
||||
integer 9000000000000000001 \
|
||||
integer 9000000000000000001 \
|
||||
integer 9000000000000000001 \
|
||||
integer 9000000000000000001 \
|
||||
integer 9000000000000000001 \
|
||||
integer 9000000000000000001 \
|
||||
integer 9223372036854775807 \
|
||||
integer 9223372036854775807 \
|
||||
integer 9223372036854775807 \
|
||||
real 9.22337203685478e+18 \
|
||||
real 9.22337203685478e+18 \
|
||||
integer 9223372036854775807 \
|
||||
integer 9223372036854775807 \
|
||||
integer -5 \
|
||||
integer -5 \
|
||||
]
|
||||
|
||||
# EVIDENCE-OF: R-64550-29191 Note that the result from casting any
|
||||
# non-BLOB value into a BLOB and the result from casting any BLOB value
|
||||
|
Reference in New Issue
Block a user