set dolphin.use_const_value_as_colname=false;
create schema conv_cast_test;
set current_schema to 'conv_cast_test';
select conv(-211111111111111111111111111111111111111111111111111111111177777,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-366666666666666666666666666666666666666, 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-266666666666666666666666666666666666666, 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-170141183460469231731687303715884105729,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-170141183460469231731687303715884105728,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-170141183460469231731687303715884105727,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-18446744073709551617,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-18446744073709551616,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(-18446744073709551615,10,8);
conv
------
1
(1 row)
select conv(-9223372036854775809,10,8);
conv
-----------------------
777777777777777777777
(1 row)
select conv(-9223372036854775808,10,8);
conv
------------------------
1000000000000000000000
(1 row)
select conv(-9223372036854775807,10,8);
conv
------------------------
1000000000000000000001
(1 row)
select conv(-123456,10,8);
conv
------------------------
1777777777777777416700
(1 row)
select conv(-1,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(0,10,8);
conv
------
0
(1 row)
select conv(211111111111111111111111111111111111111111111111111111111177777,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(366666666666666666666666666666666666666, 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(266666666666666666666666666666666666666, 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(170141183460469231731687303715884105729,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(170141183460469231731687303715884105728,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(170141183460469231731687303715884105727,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(18446744073709551617,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(18446744073709551616,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(18446744073709551615,10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv(9223372036854775809,10,8);
conv
------------------------
1000000000000000000001
(1 row)
select conv(9223372036854775808,10,8);
conv
------------------------
1000000000000000000000
(1 row)
select conv(9223372036854775807,10,8);
conv
-----------------------
777777777777777777777
(1 row)
select conv(123456,10,8);
conv
--------
361100
(1 row)
select conv(1,10,8);
conv
------
1
(1 row)
select time'-2 34:25:59'::float4;
float4
---------
-822559
(1 row)
select time'-838:59:59'::float4;
float4
--------------
-8.38596e+06
(1 row)
select time'0'::float4;
float4
--------
0
(1 row)
select time'-0'::float4;
float4
--------
0
(1 row)
select time'-2 34:25:59'::float8;
float8
---------
-822559
(1 row)
select time'-838:59:59'::float8;
float8
----------
-8385959
(1 row)
select time'0'::float8;
float8
--------
0
(1 row)
select time'-0'::float8;
float8
--------
0
(1 row)
select 127::tinyint::bit(64)::tinyint;
int1
------
127
(1 row)
select 32767::smallint::bit(64)::smallint;
int2
-------
32767
(1 row)
select 2147483647::int::bit(64)::int;
int4
------------
2147483647
(1 row)
select 9223372036854775807::bigint::bit(64)::bigint;
int8
---------------------
9223372036854775807
(1 row)
select '255'::uint1::time;
time
----------
00:02:55
(1 row)
select '65535'::uint2::time;
time
----------
06:55:35
(1 row)
select '4294967295'::uint4::time;
WARNING: invalid input syntax for type time: "4294967295"
CONTEXT: referenced column: time
time
------
(1 row)
select '18446744073709551615'::uint8::time;
time
-----------
-00:00:01
(1 row)
select '4294967295'::uint1::time;
WARNING: tinyint unsigned out of range
CONTEXT: referenced column: time
time
----------
00:02:55
(1 row)
select '4294967295'::uint2::time;
WARNING: smallint unsigned out of range
CONTEXT: referenced column: time
time
----------
06:55:35
(1 row)
select '4294967295'::uint4::time;
WARNING: invalid input syntax for type time: "4294967295"
CONTEXT: referenced column: time
time
------
(1 row)
select '4294967295'::uint8::time;
WARNING: invalid input syntax for type time: "4294967295"
CONTEXT: referenced column: time
time
------
(1 row)
select '4294967295'::int1::time;
WARNING: value "4294967295" is out of range for type tinyint
LINE 1: select '4294967295'::int1::time;
^
CONTEXT: referenced column: time
time
----------
00:01:27
(1 row)
select '4294967295'::int2::time;
WARNING: value "4294967295" is out of range for type smallint
LINE 1: select '4294967295'::int2::time;
^
CONTEXT: referenced column: time
WARNING: invalid input syntax for type time: "32767"
CONTEXT: referenced column: time
time
------
(1 row)
select '4294967295'::int4::time;
WARNING: value "4294967295" is out of range for type integer
LINE 1: select '4294967295'::int4::time;
^
CONTEXT: referenced column: time
WARNING: invalid input syntax for type time: "2147483647"
CONTEXT: referenced column: time
time
------
(1 row)
select '4294967295'::int8::time;
WARNING: invalid input syntax for type time: "4294967295"
CONTEXT: referenced column: time
time
------
(1 row)
select conv('-211111111111111111111111111111111111111111111111111111111177777',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-366666666666666666666666666666666666666', 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-266666666666666666666666666666666666666', 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-170141183460469231731687303715884105729',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-170141183460469231731687303715884105728',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-170141183460469231731687303715884105727',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-18446744073709551617',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-18446744073709551616',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('-18446744073709551615',10,8);
conv
------
1
(1 row)
select conv('-9223372036854775809',10,8);
conv
-----------------------
777777777777777777777
(1 row)
select conv('-9223372036854775808',10,8);
conv
------------------------
1000000000000000000000
(1 row)
select conv('-9223372036854775807',10,8);
conv
------------------------
1000000000000000000001
(1 row)
select conv('-123456',10,8);
conv
------------------------
1777777777777777416700
(1 row)
select conv('-1',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('0',10,8);
conv
------
0
(1 row)
select conv('211111111111111111111111111111111111111111111111111111111177777',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('366666666666666666666666666666666666666', 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('266666666666666666666666666666666666666', 10, 8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('170141183460469231731687303715884105729',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('170141183460469231731687303715884105728',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('170141183460469231731687303715884105727',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('18446744073709551617',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('18446744073709551616',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('18446744073709551615',10,8);
conv
------------------------
1777777777777777777777
(1 row)
select conv('9223372036854775809',10,8);
conv
------------------------
1000000000000000000001
(1 row)
select conv('9223372036854775808',10,8);
conv
------------------------
1000000000000000000000
(1 row)
select conv('9223372036854775807',10,8);
conv
-----------------------
777777777777777777777
(1 row)
select conv('123456',10,8);
conv
--------
361100
(1 row)
select conv('1',10,8);
conv
------
1
(1 row)
select conv('10', 8, 10);
conv
------
8
(1 row)
select conv('180', 8, 10);
conv
------
1
(1 row)
select conv('910', 8, 10);
conv
------
0
(1 row)
select conv('B1', 8, 10);
conv
------
0
(1 row)
select conv('B1', 16, 10);
conv
------
177
(1 row)
select ''::bit;
bit
-----
0
(1 row)
select ''::bit(10);
bit
------------
0000000000
(1 row)
select ''::bit(64);
bit
------------------------------------------------------------------
0000000000000000000000000000000000000000000000000000000000000000
(1 row)
set dolphin.b_compatibility_mode to on;
select ''::bit;
bit
-----
0
(1 row)
select ''::bit(10);
bit
------------
0000000000
(1 row)
select ''::bit(64);
bit
------------------------------------------------------------------
0000000000000000000000000000000000000000000000000000000000000000
(1 row)
select 8385959::char(30)::time;
time
-----------
838:59:59
(1 row)
select -8385958.999999::char(30)::time(6);
?column?
------------
-838:59:59
(1 row)
select -8385959::varchar(30)::time;
?column?
------------
-838:59:59
(1 row)
select 8385958.999999::varchar(30)::time(6);
time
-----------
838:59:59
(1 row)
select '838:59:59'::char(30)::time;
time
-----------
838:59:59
(1 row)
select '-838:59:58.999999'::char(30)::time(6);
time
------------
-838:59:59
(1 row)
select '-838:59:59'::varchar(30)::time;
time
------------
-838:59:59
(1 row)
select '838:59:58.999999'::varchar(30)::time(6);
time
-----------
838:59:59
(1 row)
SELECT '20220101121212'::date;
date
------------
2022-01-01
(1 row)
SELECT '20220101121212.5'::date;
date
------------
2022-01-01
(1 row)
select cast(b'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' as unsigned);
WARNING: bigint unsigned out of range
CONTEXT: referenced column: uint8
uint8
----------------------
18446744073709551615
(1 row)
select cast(b'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' as signed);
WARNING: bigint out of range
CONTEXT: referenced column: int8
WARNING: bigint out of range
CONTEXT: referenced column: int8
int8
------
-1
(1 row)
select cast(b'1111111111111111111111111111111111111111111111111111111111111111' as unsigned);
uint8
----------------------
18446744073709551615
(1 row)
select cast(b'1111111111111111111111111111111111111111111111111111111111111111' as signed);
WARNING: bigint out of range
CONTEXT: referenced column: int8
int8
------
-1
(1 row)
select cast(b'111111111111111111111111111111111111111111111111111111111111111' as unsigned);
uint8
---------------------
9223372036854775807
(1 row)
select cast(b'111111111111111111111111111111111111111111111111111111111111111' as signed);
int8
---------------------
9223372036854775807
(1 row)
select cast(b'11111111111111111111111111111111111111111111111111111111111111111' as unsigned);
WARNING: bigint unsigned out of range
CONTEXT: referenced column: uint8
uint8
----------------------
18446744073709551615
(1 row)
select cast(b'11111111111111111111111111111111111111111111111111111111111111111' as signed);
WARNING: bigint out of range
CONTEXT: referenced column: int8
WARNING: bigint out of range
CONTEXT: referenced column: int8
int8
------
-1
(1 row)
select hex('9999-12-31 23:59:59'::datetime::bit(64));
hex
------------------
00005AF105D18777
(1 row)
select hex('99991231235959'::datetime::bit(64));
hex
------------------
00005AF105D18777
(1 row)
select 'true'::bool::bit;
bit
-----
1
(1 row)
select 'true'::bool::bit(10);
bit
------------
0000000001
(1 row)
select 'true'::bool::bit(64);
bit
------------------------------------------------------------------
0000000000000000000000000000000000000000000000000000000000000001
(1 row)
select 'true'::bool::float4;
float4
--------
1
(1 row)
select 'true'::bool::float8;
float8
--------
1
(1 row)
select 'false'::bool::bit;
bit
-----
0
(1 row)
select 'false'::bool::bit(10);
bit
------------
0000000000
(1 row)
select 'false'::bool::bit(64);
bit
------------------------------------------------------------------
0000000000000000000000000000000000000000000000000000000000000000
(1 row)
select 'false'::bool::float4;
float4
--------
0
(1 row)
select 'false'::bool::float8;
float8
--------
0
(1 row)
create table test_date(a date);
set dolphin.sql_mode = sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length,auto_recompile_function;
select 0::date;
date
------------
0000-00-00
(1 row)
insert into test_date values(0);
ERROR: Out of range value for date
CONTEXT: referenced column: a
select 1::date;
WARNING: Out of range value for date
CONTEXT: referenced column: date
date
------
(1 row)
insert into test_date values(1);
ERROR: Out of range value for date
CONTEXT: referenced column: a
set dolphin.sql_mode = sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,pad_char_to_full_length,auto_recompile_function;
select 0::date;
date
------------
0000-00-00
(1 row)
insert into test_date values(0);
select 1::date;
WARNING: Out of range value for date
CONTEXT: referenced column: date
date
------
(1 row)
insert into test_date values(1);
ERROR: Out of range value for date
CONTEXT: referenced column: a
set dolphin.sql_mode = sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date,pad_char_to_full_length,auto_recompile_function;
select 0::date;
date
------------
0000-00-00
(1 row)
insert into test_date values(0);
WARNING: Out of range value for date
CONTEXT: referenced column: a
select 1::date;
WARNING: Out of range value for date
CONTEXT: referenced column: date
date
------
(1 row)
insert into test_date values(1);
WARNING: Out of range value for date
CONTEXT: referenced column: a
set dolphin.sql_mode = sql_mode_full_group,pipes_as_concat,ansi_quotes,pad_char_to_full_length,auto_recompile_function;
select 0::date;
date
------------
0000-00-00
(1 row)
insert into test_date values(0);
select 1::date;
WARNING: Out of range value for date
CONTEXT: referenced column: date
date
------
(1 row)
insert into test_date values(1);
WARNING: Out of range value for date
CONTEXT: referenced column: a
reset dolphin.sql_mode;
select * from test_date;
a
------------
0000-00-00
0000-00-00
0000-00-00
0000-00-00
0000-00-00
(5 rows)
select b'11100000111000';
?column?
----------------
11100000111000
(1 row)
select conv(b'11100000111000', 10, 8);
conv
-------
34070
(1 row)
select conv(b'11100000111000', 20, 8);
conv
-------
34070
(1 row)
select conv(b'11100000111000'::int8, 20, 8);
conv
--------
571546
(1 row)
select x'4c';
?column?
----------
01001100
(1 row)
select conv(x'4c', 10, 8);
conv
------
114
(1 row)
select conv(x'4c', 30, 8);
conv
------
114
(1 row)
select conv(x'4c'::int8, 30, 8);
conv
------
330
(1 row)
set dolphin.sql_mode = treat_bxconst_as_binary;
select b'11100000111000';
?column?
----------
\x3838
(1 row)
select conv(b'11100000111000', 10, 8);
conv
------
130
(1 row)
select conv(b'11100000111000', 20, 8);
conv
------
250
(1 row)
select conv(b'11100000111000'::int8, 20, 8);
conv
------
250
(1 row)
select x'4c';
?column?
----------
\x4c
(1 row)
select conv(x'4c', 10, 8);
conv
------
0
(1 row)
select conv(x'4c', 30, 8);
conv
------
25
(1 row)
select conv(x'4c'::int8, 30, 8);
WARNING: Truncated incorrect INTEGER value: 'L'
CONTEXT: referenced column: conv
conv
------
0
(1 row)
reset dolphin.sql_mode;
drop schema conv_cast_test cascade;
NOTICE: drop cascades to table test_date
reset current_schema;