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