aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/bigdate/implicit_cast_callable.sql
blob: 005e686135b38fb18358f3a940145d4962853949 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* postgres can not */
use plato;

$identity = ($x)-> { return $x };

$idDate32 = Callable(Callable<(date32)->date32>, $identity);
$idDatetime64 = Callable(Callable<(datetime64)->datetime64>, $identity);
$idTimestamp64 = Callable(Callable<(timestamp64)->timestamp64>, $identity);
$idInterval64 = Callable(Callable<(interval64)->interval64>, $identity);

$valDate = unwrap(cast(1 as date));
$valDate32 = unwrap(cast(-1 as date32));
$valDatetime = unwrap(cast(86400 as datetime));
$valDatetime64 = unwrap(cast(-86400 as datetime64));
$valTimestamp = unwrap(cast(86400l*1000000 as timestamp));
$valTimestamp64 = unwrap(cast(86400l*1000000 as timestamp64));
$valInterval = unwrap(cast(1 as interval));
$valInterval64 = unwrap(cast(-1 as interval64));

select 1, $idDate32($valDate), $idDate32($valDate32)
, 2, $idDatetime64($valDate), $idDatetime64($valDate32)
, $idDatetime64($valDatetime), $idDatetime64($valDatetime64)
, 3, $idTimestamp64($valDate), $idTimestamp64($valDate32)
, $idTimestamp64($valDatetime), $idTimestamp64($valDatetime64)
, $idTimestamp64($valTimestamp), $idTimestamp64($valTimestamp64)
, 4, $idInterval64($valInterval), $idInterval64($valInterval64);

select row
, 1, $idTimestamp64(d32), $idDatetime64(d32), $idDate32(d32)
, 2, $idTimestamp64(dt64), $idDatetime64(dt64)
, 3, $idTimestamp64(ts64)
, 4, $idInterval64(i64)
from BigDates
order by row;

select row
, 1, $idTimestamp64(d), $idDatetime64(d), $idDate32(d)
, 2, $idTimestamp64(dt), $idDatetime64(dt)
, 3, $idTimestamp64(ts)
from NarrowDates
order by row;

select row, $idInterval64(i) from NarrowInterval order by row;