blob: 172dc48a0306c43c6c97ad836ea8e924857e5ae5 [file] [log] [blame]
# name: test/sql/cast/test_cast_tinyint.test
# description: CAST TINYINT
# feature: SQL F201(CAST function)
# group: [cast]
statement ok
SELECT CAST('100' AS TINYINT);
query I
SELECT CAST('100.1' AS TINYINT);
----
100
query I
SELECT CAST(1e1 AS TINYINT);
----
10
query I
SELECT CAST('1e2' AS TINYINT);
----
100
# overflow
statement error
SELECT CAST(1e5 AS TINYINT);
# overflow
statement error
SELECT CAST(-1e5 AS TINYINT);
for val in [100::SMALLINT, 100::INT, 100::BIGINT, 100::DECIMAL, 100::DECIMAL(3), 100.1::DECIMAL(4\,1), 100.1::REAL, 100.1::FLOAT, 100.1::DOUBLE]
query T
SELECT CAST(${val} AS TINYINT);
----
100
endfor
statement error: Invalid input string for type TINYINT: "100x"
SELECT CAST('100x' AS TINYINT);
statement error: Cast function cannot convert value of type BINARY(1) to type TINYINT
SELECT CAST(x'00' AS TINYINT);
statement error: Cast function cannot convert value of type DATE to type TINYINT
SELECT CAST('2000-01-01'::DATE AS TINYINT);
statement error: Cast function cannot convert value of type TIME(0) to type TINYINT
SELECT CAST('00:00:00'::TIME AS TINYINT);
statement error: Cast function cannot convert value of type TIMESTAMP(6) to type TINYINT
SELECT CAST('2000-01-01 00:00:00'::TIMESTAMP AS TINYINT);
statement error: Cast function cannot convert value of type UUID to type TINYINT
SELECT CAST('c4a0327c-44be-416d-ae90-75c05079789f'::UUID AS TINYINT);
statement error: Cast function cannot convert value of type BINARY(1) to type TINYINT
SELECT CAST(x'00'::BINARY AS TINYINT);
statement error: Cast function cannot convert value of type VARBINARY to type TINYINT
SELECT CAST(x'00'::VARBINARY AS TINYINT);
for interval_type in [YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS]
query T
SELECT CAST(INTERVAL '11' ${interval_type} AS TINYINT);
----
11
endfor
statement error: Cast function cannot convert value of type INTERVAL DAY TO HOUR to type TINYINT
SELECT CAST(INTERVAL '0 01' DAYS TO HOURS AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL DAY TO MINUTE to type TINYINT
SELECT CAST(INTERVAL '0 01:02' DAYS TO MINUTES AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL DAY TO SECOND to type TINYINT
SELECT CAST(INTERVAL '0 01:02:03' DAYS TO SECONDS AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL HOUR TO MINUTE to type TINYINT
SELECT CAST(INTERVAL '00:01' HOURS TO MINUTES AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL HOUR TO SECOND to type TINYINT
SELECT CAST(INTERVAL '00:01' HOURS TO SECONDS AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL MINUTE TO SECOND to type TINYINT
SELECT CAST(INTERVAL '00:01' MINUTES TO SECONDS AS TINYINT);
statement error: Cast function cannot convert value of type INTERVAL YEAR TO MONTH to type TINYINT
SELECT CAST(INTERVAL '1-1' YEARS TO MONTHS AS TINYINT);