Files
chaisql/sqltests/expr/cast.sql
2025-09-21 11:28:55 +05:30

129 lines
1.6 KiB
SQL

-- test: source(INT)
> CAST (1 AS INTEGER)
1
> CAST (1 AS BOOL)
true
> CAST (1 AS DOUBLE PRECISION)
1.0
> CAST (1 AS TEXT)
'1'
! CAST (1 AS BYTEA)
'cannot cast "integer" as "bytea"'
-- test: source(DOUBLE PRECISION)
> CAST (1.1 AS DOUBLE PRECISION)
1.1
> CAST (1.1 AS INTEGER)
1
! CAST (1.1 AS BOOL)
'cannot cast "double precision" as "boolean"'
> CAST (1.1 AS TEXT)
'1.1'
! CAST (1.1 AS BYTEA)
'cannot cast "double precision" as "bytea"'
-- test: source(BOOL)
> CAST (true AS BOOL)
true
> CAST (true AS INTEGER)
1
> CAST (false AS INTEGER)
0
! CAST (true AS DOUBLE PRECISION)
'cannot cast "boolean" as "double precision"'
> CAST (true AS TEXT)
'true'
! CAST (true AS BYTEA)
'cannot cast "boolean" as "bytea"'
-- test: source(TEXT)
> CAST ('a' AS TEXT)
'a'
> CAST ('100' AS INTEGER)
100
> CAST ('100.5' AS INTEGER)
100
! CAST ('a' AS INTEGER)
> CAST ('3.14' AS DOUBLE PRECISION)
3.14
> CAST ('3' AS DOUBLE PRECISION)
3.0
! CAST ('10.5wdwd' AS DOUBLE PRECISION)
> CAST ('true' AS BOOL)
true
> CAST ('false' AS BOOL)
false
> CAST ('falSe' AS BOOL)
false
> CAST ('0' AS BOOL)
false
> CAST ('1' AS BOOL)
true
> CAST ('t' AS BOOL)
true
> CAST ('f' AS BOOL)
false
> CAST ('TrUe' AS BOOL)
true
> CAST ('yes' AS BOOL)
true
> CAST ('y' AS BOOL)
true
> CAST ('no' AS BOOL)
false
> CAST ('n' AS BOOL)
false
> CAST ('on' AS BOOL)
true
> CAST ('off' AS BOOL)
false
> CAST ('YXNkaW5l' AS BYTEA)
'\x617364696e65'
-- test: source(BYTEA)
> CAST ('\xAF' AS BYTEA)
'\xAF'
! CAST ('\xAF' AS INT)
'cannot cast "bytea" as "integer"'
! CAST ('\xAF' AS DOUBLE PRECISION)
'cannot cast "bytea" as "double precision"'
> CAST ('\x617364696e65' AS TEXT)
'YXNkaW5l'