create schema none_strict_warning_test;
set current_schema to 'none_strict_warning_test';
CREATE TABLE test(wtg_id BIGINT, datatime_utc date, powercurve_valid_cond INTEGER, PRIMARY KEY (wtg_id,datatime_utc));
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
insert into test(wtg_id, datatime_utc) select 430000007, '2025-01-01 00:00:00';
-- warning
insert ignore into test(wtg_id, datatime_utc) select 430000007, '2025-01-01 00:00:00';
WARNING:  duplicate key value violates unique constraint in table "test"
select * from test;
  wtg_id   | datatime_utc | powercurve_valid_cond 
-----------+--------------+-----------------------
 430000007 | 2025-01-01   |                      
(1 row)

CREATE TABLE test1(wtg_id BIGINT, datatime_utc date, powercurve_valid_cond INTEGER);
insert into test1 values (430000007,  '2025-01-01 00:00:00', 1);
insert into test1 values (430000008,  '2025-01-01 00:00:00', 1);
-- 1 warning 1 insert
insert ignore into test(wtg_id, datatime_utc) select wtg_id,datatime_utc from test1;
WARNING:  duplicate key value violates unique constraint in table "test"
select * from test;
  wtg_id   | datatime_utc | powercurve_valid_cond 
-----------+--------------+-----------------------
 430000007 | 2025-01-01   |                      
 430000008 | 2025-01-01   |                      
(2 rows)

insert into test1 values (430000009,  '2025-01-01 00:00:00', 1);
-- 2 warning 1 insert
insert ignore into test(wtg_id, datatime_utc) select wtg_id,datatime_utc from test1;
WARNING:  duplicate key value violates unique constraint in table "test"
WARNING:  duplicate key value violates unique constraint in table "test"
select * from test;
  wtg_id   | datatime_utc | powercurve_valid_cond 
-----------+--------------+-----------------------
 430000007 | 2025-01-01   |                      
 430000008 | 2025-01-01   |                      
 430000009 | 2025-01-01   |                      
(3 rows)

delete from test1;
delete from test;
insert into test1 values (430000007,  '2025-01-01 00:00:00', 1),(430000007,  '2025-01-01 00:00:00', 1);
insert ignore into test select * from test1;
WARNING:  duplicate key value violates unique constraint in table "test"
select * from test;
  wtg_id   | datatime_utc | powercurve_valid_cond 
-----------+--------------+-----------------------
 430000007 | 2025-01-01   |                     1
(1 row)

drop table test;
drop table test1;
reset dolphin.sql_mode;
create table test_int1(c1 int1);
create table test_int8(c1 int8);
---- numeric__int1
---- over float8_max 严格模式error,非严格模式warning, 结果127
select cast(2e308 as int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: int1
 int1 
------
 127
(1 row)

---- int8_max~float8_max 严格模式error,非严格模式warning,结果127
select cast(1e308 as int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: int1
 int1 
------
 127
(1 row)

---- float4in
---- over float8_max 严格模式error,非严格模式warning,结果float4_max
select cast(3.5e308 as float4);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: float4
   float4    
-------------
 3.40282e+38
(1 row)

---- float4_max~float8_max 严格模式error,非严格模式warning,结果float4_max
select cast(3.5e38 as float4);
WARNING:  value out of range: overflow
CONTEXT:  referenced column: float4
   float4    
-------------
 3.40282e+38
(1 row)

---- float8in
---- over float8_max 严格模式error,非严格模式warning,结果float8_max
select cast(3.5e308 as float8);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: float8
         float8         
------------------------
 1.797693134862316e+308
(1 row)

---- dtoi4
create table test_int4(c1 int4);
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(3.5e38::float8);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e308::float8);
ERROR:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: c1
---- dtoi2
create table test_int2(c1 int2);
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(3.5e38::float8);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e308::float8);
ERROR:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: c1
---- ftoi4
---- over int2_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(3.4e38::float4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
---- over float4_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e38::float4);
ERROR:  value out of range: overflow
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e308::float4);
ERROR:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: c1
---- ftoi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(3.4e38::float4);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
---- over float4_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e38::float4);
ERROR:  value out of range: overflow
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e308::float4);
ERROR:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: c1
---- PgStrtoint16Internal
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values('32768');
ERROR:  value "32768" is out of range for type smallint
LINE 1: insert into test_int2 values('32768');
                                     ^
CONTEXT:  referenced column: c1
---- PgStrtoint32Internal
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values('2147483648');
ERROR:  value "2147483648" is out of range for type integer
LINE 1: insert into test_int4 values('2147483648');
                                     ^
CONTEXT:  referenced column: c1
---- PgAtoiInternal 暂未找到如何调用
---- Scanint8Internal
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values('9223372036854775808');
ERROR:  value "9223372036854775808" is out of range for type bigint
LINE 1: insert into test_int8 values('9223372036854775808');
                                     ^
CONTEXT:  referenced column: c1
---- i4toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(2147483647::int4);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(2147483647::int4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(32767::int2);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(32767::int2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(2147483647::int4);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(2147483647::int4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(9223372036854775807::int8);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(9223372036854775807::int8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- f4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(3e38::float4);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(3e38::float4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- f8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(1e308::float8);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(1e308::float8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- int84
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(2147483648::int8);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- over int8_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int8 values(2147483648::int4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(2147483648::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- int82
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::int8);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- over int8_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int8 values(2147483648::int2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(32768::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- dtoi8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(9223372036854775807.5::double);
ERROR:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775807.5::double);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- ftoi8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(9223372036854775807.5::float);
ERROR:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775807.5::float);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- numeric_int1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(1e30);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(1e30);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- numeric_int2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(1e30);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(1e30);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- numericvar_to_int32
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(1e30);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(1e30);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- numeric_int8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(1e30);
ERROR:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(1e30);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- numeric_uint1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
create table test_uint1(c1 uint1);
insert into test_uint1 values(1e30);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(1e30);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_uint2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
create table test_uint2(c1 uint2);
insert into test_uint2 values(1e30);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(1e30);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_uint4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
create table test_uint4(c1 uint4);
insert into test_uint4 values(1e30);
ERROR:  unsigned int out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(1e30);
WARNING:  unsigned int out of range
CONTEXT:  referenced column: c1
---- numeric_uint8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
create table test_uint8(c1 uint8);
insert into test_uint8 values(1e30);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(1e30);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_cast_uint1
select cast(1e30 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- numeric_cast_uint2
select cast(1e30 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- numeric_cast_uint4
select cast(1e30 as uint4);
WARNING:  unsigned int out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- numeric_cast_uint8
select cast(1e30 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- i2toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int2);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int2);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- i4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256.5::float4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1.5::float4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256.5::float8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1.5::float8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint2);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint2);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui2
---- over uint2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint2 values(65536::int2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int2);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- i4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::int4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::int8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536.5::float4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1.5::float4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536.5::float8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1.5::float8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint4);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint4);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint4);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint4 values(2147483648::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(2147483648::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint2);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint2);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui2
---- over uint2_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint2 values(65536::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int1);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int1);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui1toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui1
---- over uint1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint1 values(256::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int1);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::uint4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::uint4);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint4);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint4);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint4 values(4294967296::int2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int2);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int2);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(2147483648::uint4);
ERROR:  int out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(2147483648::uint4);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- i4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_uint4 values(4294967296::int4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int4);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(4294967296::uint4);
ERROR:   int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(4294967296::uint4);
WARNING:   int unsigned out of range
CONTEXT:  referenced column: c1
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- f4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296.5::float4);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129.5::float4);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296.5::float8);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129.5::float8);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint8);
ERROR:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint8);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint8);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui8
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint8 values(256::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-129::int1);
ERROR:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::uint8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::uint8);
ERROR:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint8);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint8);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui8
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint8 values(32768::int2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-32769::int2);
ERROR:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(32768::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-32769::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(4294967296::uint8);
ERROR:  int out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint8);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(4294967296::uint8);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint8);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- i4toui8
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_uint8 values(4294967296::int4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::int4);
ERROR:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296::uint8);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::uint8);
ERROR:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi8
---- over int8_max 正整数溢出为对应的负整数
insert into test_int8 values(9223372036854775808::uint8);
insert into test_int8 values(-9223372036854775809::uint8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775808::uint8);
insert ignore into test_int8 values(-9223372036854775808::uint8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_uint8 values(9223372036854775808::int8);
ERROR:  bigint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::int8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::int8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
insert into test_uint8 values(18446744073709551616::float4);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::float4);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(18446744073709551616::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
insert into test_uint8 values(18446744073709551616::float8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::float8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(18446744073709551616::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- i1_cast_ui1
---- 127
select cast(128::int1 as uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 127
(1 row)

---- 246
select cast(-10::int1 as uint1);
 uint1 
-------
 246
(1 row)

---- i4_cast_ui1
---- 255
select cast(2147483648::int4 as uint1);
WARNING:  integer out of range
CONTEXT:  referenced column: uint1
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 246
select cast(-10::int4 as uint1);
 uint1 
-------
 246
(1 row)

---- i8_cast_ui1
---- 255
select cast(9223372036854775808::int8 as uint1);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint1
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 246
select cast(-10::int8 as uint1);
 uint1 
-------
 246
(1 row)

---- i4_cast_ui2
---- 65535
select cast(2147483648::int4 as uint2);
WARNING:  integer out of range
CONTEXT:  referenced column: uint2
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65526
select cast(-10::int4 as uint2);
 uint2 
-------
 65526
(1 row)

---- i8_cast_ui2
---- 65535
select cast(9223372036854775808::int8 as uint2);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint2
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65526
select cast(-10::int8 as uint2);
 uint2 
-------
 65526
(1 row)

---- i8_cast_ui4
---- 4294967295
select cast(9223372036854775808::int8 as uint4);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint4
WARNING:   int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 4294967286
select cast(-10::int8 as uint4);
   uint4    
------------
 4294967286
(1 row)

---- f4_cast_ui1
---- 255
select cast(9223372036854775808.5::float4 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 245
select cast(-10.5::float4 as uint1);
 uint1 
-------
 245
(1 row)

---- f8_cast_ui1
---- 255
select cast(9223372036854775808.5::float8 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 245
select cast(-10.5::float8 as uint1);
 uint1 
-------
 245
(1 row)

---- f4_cast_ui2
---- 65535
select cast(65535.5::float4 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65525
select cast(-10.5::float4 as uint2);
 uint2 
-------
 65525
(1 row)

---- f8_cast_ui2
---- 65535
select cast(65535.5::float8 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65525
select cast(-10.5::float8 as uint2);
 uint2 
-------
 65525
(1 row)

---- f4_cast_ui4
---- 65535
select cast(4294967295.5::float4 as uint4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 65525
select cast(-10.5::float4 as uint4);
   uint4    
------------
 4294967285
(1 row)

---- f8_cast_ui4
---- 65535
select cast(4294967295.5::float8 as uint4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 65525
select cast(-10.5::float8 as uint4);
   uint4    
------------
 4294967285
(1 row)

---- unexpected
---- f4_cast_ui8
---- 65535
select cast(18446744073709551615.5::float4 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- 65525
select cast(-10.5::float4 as uint8);
        uint8         
----------------------
 18446744073709551605
(1 row)

---- f8_cast_ui8
---- 65535
select cast(18446744073709551615.5::float8 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- 65525
select cast(-10.5::float8 as uint8);
        uint8         
----------------------
 18446744073709551605
(1 row)

select * from test_int1;
  c1  
------
 127
 127
 127
 127
 127
 127
 127
 -128
 127
 -128
 127
 -128
 127
 -128
(14 rows)

select * from test_int2;
   c1   
--------
  32767
  32767
  32767
  32767
 -32768
  32767
 -32768
  32767
 -32768
(9 rows)

select * from test_int4;
     c1      
-------------
  2147483647
  2147483647
  2147483647
 -2147483648
  2147483647
 -2147483648
  2147483647
 -2147483648
(8 rows)

select * from test_int8;
          c1          
----------------------
           2147483647
                32767
  9223372036854775807
  9223372036854775807
  9223372036854775807
 -9223372036854775808
 -9223372036854775808
(7 rows)

select * from test_uint1;
 c1  
-----
 255
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 127
 0
 255
 0
(19 rows)

select * from test_uint2;
  c1   
-------
 65535
 32767
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 127
 0
 65535
 0
 65535
 0
(17 rows)

select * from test_uint4;
     c1     
------------
 4294967295
 127
 0
 32767
 0
 2147483647
 0
 4294967295
 0
 4294967295
 0
 4294967295
 0
(13 rows)

select * from test_uint8;
          c1          
----------------------
 18446744073709551615
 127
 0
 32767
 0
 2147483647
 0
 9223372036854775807
 0
 18446744073709551615
 0
 18446744073709551615
 0
(13 rows)

drop table if exists test_int1,test_int2,test_int4,test_int8,test_uint1,test_uint2,test_uint4,test_uint8;
set dolphin.sql_mode = sql_mode_full_group,pipes_as_concat,ansi_quotes;
create table test_int1(c1 int1);
create table test_int8(c1 int8);
---- numeric__int1
---- over float8_max 严格模式error,非严格模式warning, 结果127
select cast(2e308 as int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: int1
 int1 
------
 127
(1 row)

---- int8_max~float8_max 严格模式error,非严格模式warning,结果127
select cast(1e308 as int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: int1
 int1 
------
 127
(1 row)

---- float4in
---- over float8_max 严格模式error,非严格模式warning,结果float4_max
select cast(3.5e308 as float4);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: float4
   float4    
-------------
 3.40282e+38
(1 row)

---- float4_max~float8_max 严格模式error,非严格模式warning,结果float4_max
select cast(3.5e38 as float4);
WARNING:  value out of range: overflow
CONTEXT:  referenced column: float4
   float4    
-------------
 3.40282e+38
(1 row)

---- float8in
---- over float8_max 严格模式error,非严格模式warning,结果float8_max
select cast(3.5e308 as float8);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: float8
         float8         
------------------------
 1.797693134862316e+308
(1 row)

---- dtoi4
create table test_int4(c1 int4);
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(3.5e38::float8);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e308::float8);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: c1
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- dtoi2
create table test_int2(c1 int2);
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(3.5e38::float8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e308::float8);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision
CONTEXT:  referenced column: c1
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- ftoi4
---- over int2_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(3.4e38::float4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- over float4_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e38::float4);
WARNING:  value out of range: overflow
CONTEXT:  referenced column: c1
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int4_max
insert into test_int4 values(3.5e308::float4);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: c1
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- ftoi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(3.4e38::float4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- over float4_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e38::float4);
WARNING:  value out of range: overflow
CONTEXT:  referenced column: c1
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- over float8_max 严格模式error,非严格模式双warning,结果int2_max
insert into test_int2 values(3.5e308::float4);
WARNING:  "350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type real
CONTEXT:  referenced column: c1
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- PgStrtoint16Internal
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values('32768');
WARNING:  value "32768" is out of range for type smallint
LINE 1: insert into test_int2 values('32768');
                                     ^
CONTEXT:  referenced column: c1
---- PgStrtoint32Internal
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values('2147483648');
WARNING:  value "2147483648" is out of range for type integer
LINE 1: insert into test_int4 values('2147483648');
                                     ^
CONTEXT:  referenced column: c1
---- PgAtoiInternal 暂未找到如何调用
---- Scanint8Internal
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values('9223372036854775808');
WARNING:  value "9223372036854775808" is out of range for type bigint
LINE 1: insert into test_int8 values('9223372036854775808');
                                     ^
CONTEXT:  referenced column: c1
---- i4toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(2147483647::int4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(2147483647::int4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(32767::int2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(32767::int2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(2147483647::int4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(2147483647::int4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(9223372036854775807::int8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(9223372036854775807::int8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- f4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(3e38::float4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(3e38::float4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- f8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(1e308::float8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(1e308::float8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- int84
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(2147483648::int8);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- over int8_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int8 values(2147483648::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(2147483648::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- int82
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::int8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- over int8_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int8 values(2147483648::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(32768::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- dtoi8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(9223372036854775807.5::double);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775807.5::double);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- ftoi8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(9223372036854775807.5::float);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775807.5::float);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- numeric_int1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(1e30);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(1e30);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- numeric_int2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(1e30);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(1e30);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- numericvar_to_int32
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(1e30);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(1e30);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- numeric_int8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_int8 values(1e30);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(1e30);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
---- numeric_uint1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
create table test_uint1(c1 uint1);
insert into test_uint1 values(1e30);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(1e30);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_uint2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
create table test_uint2(c1 uint2);
insert into test_uint2 values(1e30);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(1e30);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_uint4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
create table test_uint4(c1 uint4);
insert into test_uint4 values(1e30);
WARNING:  unsigned int out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(1e30);
WARNING:  unsigned int out of range
CONTEXT:  referenced column: c1
---- numeric_uint8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
create table test_uint8(c1 uint8);
insert into test_uint8 values(1e30);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(1e30);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- numeric_cast_uint1
select cast(1e30 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- numeric_cast_uint2
select cast(1e30 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- numeric_cast_uint4
select cast(1e30 as uint4);
WARNING:  unsigned int out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- numeric_cast_uint8
select cast(1e30 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- i2toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- i4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1.5::float4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1.5::float8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint2);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui2
---- over uint2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint2 values(65536::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- i4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1.5::float4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1.5::float8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint4);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint4);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint4 values(2147483648::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(2147483648::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui2toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint2);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui2
---- over uint2_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint2 values(65536::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::int1);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::int1);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui1toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui1
---- over uint1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint1 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::int1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::int1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::uint4);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint4);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint4 values(4294967296::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int2);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int2);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(2147483648::uint4);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(2147483648::uint4);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- i4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_uint4 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::int4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::int4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui4toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(4294967296::uint4);
WARNING:   int unsigned out of range
CONTEXT:  referenced column: c1
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(4294967296::uint4);
WARNING:   int unsigned out of range
CONTEXT:  referenced column: c1
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- f4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129.5::float4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129.5::float8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui1
---- over uint1_max 严格模式error,非严格模式warning,结果uint1_max
insert into test_uint1 values(256::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint1 values(-1::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(256::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint1 values(-1::uint8);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi1
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_int1 values(128::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_int1 values(-129::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(128::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int1 values(-129::uint8);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
---- i1toui8
---- over int1_max 严格模式error,非严格模式warning,结果int1_max
insert into test_uint8 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(256::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-129::int1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui2
---- over uint2_max 严格模式error,非严格模式warning,结果uint2_max
insert into test_uint2 values(65536::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint2 values(-1::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(65536::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint2 values(-1::uint8);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi2
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_int2 values(32768::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_int2 values(-32769::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(32768::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_int2 values(-32769::uint8);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
---- i2toui8
---- over int2_max 严格模式error,非严格模式warning,结果int2_max
insert into test_uint8 values(32768::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-32769::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(32768::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-32769::int2);
WARNING:  smallint out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi4
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_int4 values(4294967296::uint8);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert into test_int4 values(-2147483649::uint8);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(4294967296::uint8);
WARNING:  int out of range
CONTEXT:  referenced column: c1
insert ignore into test_int4 values(-2147483649::uint8);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
---- i4toui8
---- over int4_max 严格模式error,非严格模式warning,结果int4_max
insert into test_uint8 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(4294967296::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::int4);
WARNING:  integer out of range
CONTEXT:  referenced column: c1
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toui4
---- over uint4_max 严格模式error,非严格模式warning,结果uint4_max
insert into test_uint4 values(4294967296::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint4 values(-129::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(4294967296::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint4 values(-129::uint8);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: c1
---- ui8toi8
---- over int8_max 正整数溢出为对应的负整数
insert into test_int8 values(9223372036854775808::uint8);
insert into test_int8 values(-9223372036854775809::uint8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_int8 values(9223372036854775808::uint8);
insert ignore into test_int8 values(-9223372036854775808::uint8);
ERROR:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- i8toui8
---- over int8_max 严格模式error,非严格模式warning,结果int8_max
insert into test_uint8 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::int8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(9223372036854775808::int8);
WARNING:  bigint out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::int8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- f4toui8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
insert into test_uint8 values(18446744073709551616::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(18446744073709551616::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::float4);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- f8toui8
---- over uint8_max 严格模式error,非严格模式warning,结果uint8_max
insert into test_uint8 values(18446744073709551616::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert into test_uint8 values(-2147483649::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(18446744073709551616::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
insert ignore into test_uint8 values(-2147483649::float8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: c1
---- i1_cast_ui1
---- 127
select cast(128::int1 as uint1);
WARNING:  tinyint out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 127
(1 row)

---- 246
select cast(-10::int1 as uint1);
 uint1 
-------
 246
(1 row)

---- i4_cast_ui1
---- 255
select cast(2147483648::int4 as uint1);
WARNING:  integer out of range
CONTEXT:  referenced column: uint1
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 246
select cast(-10::int4 as uint1);
 uint1 
-------
 246
(1 row)

---- i8_cast_ui1
---- 255
select cast(9223372036854775808::int8 as uint1);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint1
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 246
select cast(-10::int8 as uint1);
 uint1 
-------
 246
(1 row)

---- i4_cast_ui2
---- 65535
select cast(2147483648::int4 as uint2);
WARNING:  integer out of range
CONTEXT:  referenced column: uint2
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65526
select cast(-10::int4 as uint2);
 uint2 
-------
 65526
(1 row)

---- i8_cast_ui2
---- 65535
select cast(9223372036854775808::int8 as uint2);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint2
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65526
select cast(-10::int8 as uint2);
 uint2 
-------
 65526
(1 row)

---- i8_cast_ui4
---- 4294967295
select cast(9223372036854775808::int8 as uint4);
WARNING:  bigint out of range
CONTEXT:  referenced column: uint4
WARNING:   int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 4294967286
select cast(-10::int8 as uint4);
   uint4    
------------
 4294967286
(1 row)

---- f4_cast_ui1
---- 255
select cast(9223372036854775808.5::float4 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 245
select cast(-10.5::float4 as uint1);
 uint1 
-------
 245
(1 row)

---- f8_cast_ui1
---- 255
select cast(9223372036854775808.5::float8 as uint1);
WARNING:  tinyint unsigned out of range
CONTEXT:  referenced column: uint1
 uint1 
-------
 255
(1 row)

---- 245
select cast(-10.5::float8 as uint1);
 uint1 
-------
 245
(1 row)

---- f4_cast_ui2
---- 65535
select cast(65535.5::float4 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65525
select cast(-10.5::float4 as uint2);
 uint2 
-------
 65525
(1 row)

---- f8_cast_ui2
---- 65535
select cast(65535.5::float8 as uint2);
WARNING:  smallint unsigned out of range
CONTEXT:  referenced column: uint2
 uint2 
-------
 65535
(1 row)

---- 65525
select cast(-10.5::float8 as uint2);
 uint2 
-------
 65525
(1 row)

---- f4_cast_ui4
---- 65535
select cast(4294967295.5::float4 as uint4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 65525
select cast(-10.5::float4 as uint4);
   uint4    
------------
 4294967285
(1 row)

---- f8_cast_ui4
---- 65535
select cast(4294967295.5::float8 as uint4);
WARNING:  int unsigned out of range
CONTEXT:  referenced column: uint4
   uint4    
------------
 4294967295
(1 row)

---- 65525
select cast(-10.5::float8 as uint4);
   uint4    
------------
 4294967285
(1 row)

---- unexpected
---- f4_cast_ui8
---- 65535
select cast(18446744073709551615.5::float4 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- 65525
select cast(-10.5::float4 as uint8);
        uint8         
----------------------
 18446744073709551605
(1 row)

---- f8_cast_ui8
---- 65535
select cast(18446744073709551615.5::float8 as uint8);
WARNING:  bigint unsigned out of range
CONTEXT:  referenced column: uint8
        uint8         
----------------------
 18446744073709551615
(1 row)

---- 65525
select cast(-10.5::float8 as uint8);
        uint8         
----------------------
 18446744073709551605
(1 row)

select * from test_int1;
  c1  
------
 127
 127
 127
 127
 127
 127
 127
 127
 127
 127
 127
 127
 127
 -128
 127
 -128
 127
 -128
 127
 -128
 127
 -128
 127
 -128
 127
 -128
 127
 -128
(28 rows)

select * from test_int2;
   c1   
--------
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
  32767
 -32768
  32767
 -32768
  32767
 -32768
  32767
 -32768
  32767
 -32768
  32767
 -32768
(24 rows)

select * from test_int4;
     c1      
-------------
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
  2147483647
 -2147483648
  2147483647
 -2147483648
  2147483647
 -2147483648
  2147483647
 -2147483648
  2147483647
 -2147483648
  2147483647
 -2147483648
(22 rows)

select * from test_int8;
          c1          
----------------------
  9223372036854775807
           2147483647
           2147483647
                32767
                32767
  9223372036854775807
  9223372036854775807
  9223372036854775807
  9223372036854775807
  9223372036854775807
  9223372036854775807
 -9223372036854775808
 -9223372036854775808
(13 rows)

select * from test_uint1;
 c1  
-----
 255
 255
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 255
 0
 127
 0
 127
 0
 255
 0
 255
 0
(38 rows)

select * from test_uint2;
  c1   
-------
 65535
 65535
 32767
 0
 32767
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
 127
 0
 127
 0
 65535
 0
 65535
 0
 65535
 0
 65535
 0
(34 rows)

select * from test_uint4;
     c1     
------------
 4294967295
 4294967295
 127
 0
 127
 0
 32767
 0
 32767
 0
 2147483647
 0
 2147483647
 0
 4294967295
 0
 4294967295
 0
 4294967295
 0
 4294967295
 0
 4294967295
 0
 4294967295
 0
(26 rows)

select * from test_uint8;
          c1          
----------------------
 18446744073709551615
 18446744073709551615
 127
 0
 127
 0
 32767
 0
 32767
 0
 2147483647
 0
 2147483647
 0
 9223372036854775807
 0
 9223372036854775807
 0
 18446744073709551615
 0
 18446744073709551615
 0
 18446744073709551615
 0
 18446744073709551615
 0
(26 rows)

drop schema none_strict_warning_test cascade;
NOTICE:  drop cascades to 8 other objects
DETAIL:  drop cascades to table test_int1
drop cascades to table test_int8
drop cascades to table test_int4
drop cascades to table test_int2
drop cascades to table test_uint1
drop cascades to table test_uint2
drop cascades to table test_uint4
drop cascades to table test_uint8
reset current_schema;