123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- query R
- SELECT 1.4::int
- ----
- 1
- query R
- SELECT 1.5::int
- ----
- 2
- query R
- SELECT 1.4::real::int
- ----
- 1
- query R
- SELECT 1.5::real::int
- ----
- 2
- query R
- SELECT 1.4::float::int
- ----
- 1
- query R
- SELECT 1.5::float::int
- ----
- 2
- query R
- SELECT 1.4::bigint
- ----
- 1
- query R
- SELECT 1.5::bigint
- ----
- 2
- query R
- SELECT 1.4::real::bigint
- ----
- 1
- query R
- SELECT 1.5::real::bigint
- ----
- 2
- query R
- SELECT 1.4::float::bigint
- ----
- 1
- query R
- SELECT 1.5::float::bigint
- ----
- 2
- # 🔬 Custom types
- # TODO(sploiselle): fix return type to indicate custom type
- statement ok
- CREATE TYPE int4_list AS LIST (ELEMENT TYPE = int4)
- statement ok
- CREATE TYPE int4_list_list AS LIST (ELEMENT TYPE = int4_list)
- statement ok
- CREATE TYPE int4_list_too AS LIST (ELEMENT TYPE = int4)
- statement ok
- CREATE TYPE int4_list_list_too AS LIST (ELEMENT TYPE = int4_list_too)
- query T
- SELECT pg_typeof('{1}'::int4 list::int4_list)
- ----
- int4_list
- query T
- SELECT pg_typeof('{1}'::int4_list::int4 list)
- ----
- integer list
- query T
- SELECT pg_typeof('{1}'::int4_list_list::int4_list_list_too)
- ----
- int4_list_list_too
- query T
- SELECT pg_typeof('{1}'::int4_list_list_too::int4_list_list)
- ----
- int4_list_list
- query TTT
- SELECT CAST('2020-01-01' AS date), CAST('2020-01-01'::timestamp as date), CAST('2020-01-01'::timestamptz as date)
- ----
- 2020-01-01
- 2020-01-01
- 2020-01-01
- # Postgres also supports `typename ( expression )` cast expressions with some limitations.
- # https://www.postgresql.org/docs/13/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS
- # TODO: Support these more generally instead of just `date`.
- query TTT
- SELECT date('2020-01-01'), date('2020-01-01'::timestamp), date('2020-01-01'::timestamptz)
- ----
- 2020-01-01
- 2020-01-01
- 2020-01-01
- query error invalid input syntax for type date
- SELECT date('2000')
- query error db error: ERROR: function date\(unknown, unknown\) does not exist
- SELECT date('2000', 'a')
- query T
- SELECT CAST(5 + 3 AS text);
- ----
- 8
- query T
- SELECT (5 + 3)::text;
- ----
- 8
- query error db error: ERROR: operator does not exist: integer \+ text
- SELECT 5 + 3::text;
|