create schema uint_mi;
set current_schema to 'uint_mi';
--uint8
select 18446744073709551615::uint8 - 0::int1;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::int2;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::int4;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::int8;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::uint1;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::uint2;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::uint4;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - 0::uint8;
?column?
----------------------
18446744073709551615
(1 row)
select 18446744073709551615::uint8 - null::int1;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::int2;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::int4;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::int8;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::uint1;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::uint2;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::uint4;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - null::uint8;
?column?
----------
(1 row)
select 18446744073709551615::uint8 - (-1)::int2;
ERROR: bigint unsigned out of range
select 18446744073709551615::uint8 - (-1)::int4;
ERROR: bigint unsigned out of range
select 18446744073709551615::uint8 - (-1)::int8;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::int1;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::int2;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::int4;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::int8;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::uint1;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::uint2;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::uint8 - 1::uint8;
ERROR: bigint unsigned out of range
--uint4
select 4294967295::uint4 - 0::int1;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::int2;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::int4;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::int8;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::uint1;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::uint2;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::uint4;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - 0::uint8;
?column?
------------
4294967295
(1 row)
select 4294967295::uint4 - null::int1;
?column?
----------
(1 row)
select 4294967295::uint4 - null::int2;
?column?
----------
(1 row)
select 4294967295::uint4 - null::int4;
?column?
----------
(1 row)
select 4294967295::uint4 - null::int8;
?column?
----------
(1 row)
select 4294967295::uint4 - null::uint1;
?column?
----------
(1 row)
select 4294967295::uint4 - null::uint2;
?column?
----------
(1 row)
select 4294967295::uint4 - null::uint4;
?column?
----------
(1 row)
select 4294967295::uint4 - null::uint8;
?column?
----------
(1 row)
select 4294967295::uint4 - (-1)::int2;
?column?
------------
4294967296
(1 row)
select 4294967295::uint4 - (-1)::int4;
?column?
------------
4294967296
(1 row)
select 4294967295::uint4 - (-1)::int8;
?column?
------------
4294967296
(1 row)
select 4294967295::uint4 - 9223372036854775807::int8;
ERROR: bigint unsigned out of range
select 4294967295::uint4 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::int1;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::int2;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::int4;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::int8;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::uint1;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::uint2;
ERROR: bigint unsigned out of range
select 0::uint4 - 1::uint4;
ERROR: int unsigned out of range
select 0::uint4 - 1::uint8;
ERROR: bigint unsigned out of range
--uint2
select 65535::uint2 - 0::int1;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::int2;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::int4;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::int8;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::uint1;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::uint2;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::uint4;
?column?
----------
65535
(1 row)
select 65535::uint2 - 0::uint8;
?column?
----------
65535
(1 row)
select 65535::uint2 - null::int1;
?column?
----------
(1 row)
select 65535::uint2 - null::int2;
?column?
----------
(1 row)
select 65535::uint2 - null::int4;
?column?
----------
(1 row)
select 65535::uint2 - null::int8;
?column?
----------
(1 row)
select 65535::uint2 - null::uint1;
?column?
----------
(1 row)
select 65535::uint2 - null::uint2;
?column?
----------
(1 row)
select 65535::uint2 - null::uint4;
?column?
----------
(1 row)
select 65535::uint2 - null::uint8;
?column?
----------
(1 row)
select 65535::uint2 - (-1)::int2;
?column?
----------
65536
(1 row)
select 65535::uint2 - (-1)::int4;
?column?
----------
65536
(1 row)
select 65535::uint2 - (-1)::int8;
?column?
----------
65536
(1 row)
select 65535::uint2 - 2147483647::int4;
ERROR: bigint unsigned out of range
select 65535::uint2 - 9223372036854775807::int8;
ERROR: bigint unsigned out of range
select 65535::uint2 - 4294967295::uint4;
ERROR: bigint unsigned out of range
select 65535::uint2 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::uint2 - 1::int1;
ERROR: int unsigned out of range
select 0::uint2 - 1::int2;
ERROR: int unsigned out of range
select 0::uint2 - 1::int4;
ERROR: bigint unsigned out of range
select 0::uint2 - 1::int8;
ERROR: bigint unsigned out of range
select 0::uint2 - 1::uint1;
ERROR: int unsigned out of range
select 0::uint2 - 1::uint2;
ERROR: int unsigned out of range
select 0::uint2 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::uint2 - 1::uint8;
ERROR: bigint unsigned out of range
--uint1
select 255::uint1 - 0::int1;
?column?
----------
255
(1 row)
select 255::uint1 - 0::int2;
?column?
----------
255
(1 row)
select 255::uint1 - 0::int4;
?column?
----------
255
(1 row)
select 255::uint1 - 0::int8;
?column?
----------
255
(1 row)
select 255::uint1 - 0::uint1;
?column?
----------
255
(1 row)
select 255::uint1 - 0::uint2;
?column?
----------
255
(1 row)
select 255::uint1 - 0::uint4;
?column?
----------
255
(1 row)
select 255::uint1 - 0::uint8;
?column?
----------
255
(1 row)
select 255::uint1 - null::int1;
?column?
----------
(1 row)
select 255::uint1 - null::int2;
?column?
----------
(1 row)
select 255::uint1 - null::int4;
?column?
----------
(1 row)
select 255::uint1 - null::int8;
?column?
----------
(1 row)
select 255::uint1 - null::uint1;
?column?
----------
(1 row)
select 255::uint1 - null::uint2;
?column?
----------
(1 row)
select 255::uint1 - null::uint4;
?column?
----------
(1 row)
select 255::uint1 - null::uint8;
?column?
----------
(1 row)
select 255::uint1 - (-1)::int2;
?column?
----------
256
(1 row)
select 255::uint1 - (-1)::int4;
?column?
----------
256
(1 row)
select 255::uint1 - (-1)::int8;
?column?
----------
256
(1 row)
select 255::uint1 - 32767::int2;
ERROR: int unsigned out of range
select 255::uint1 - 2147483647::int4;
ERROR: bigint unsigned out of range
select 255::uint1 - 9223372036854775807::int8;
ERROR: bigint unsigned out of range
select 255::uint1 - 65535::uint2;
ERROR: int unsigned out of range
select 255::uint1 - 4294967295::uint4;
ERROR: bigint unsigned out of range
select 255::uint1 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::uint1 - 1::int1;
ERROR: int unsigned out of range
select 0::uint1 - 1::int2;
ERROR: int unsigned out of range
select 0::uint1 - 1::int4;
ERROR: bigint unsigned out of range
select 0::uint1 - 1::int8;
ERROR: bigint unsigned out of range
select 0::uint1 - 1::uint1;
ERROR: int unsigned out of range
select 0::uint1 - 1::uint2;
ERROR: int unsigned out of range
select 0::uint1 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::uint1 - 1::uint8;
ERROR: bigint unsigned out of range
--int8
select 9223372036854775807::int8 - 0::uint1;
?column?
---------------------
9223372036854775807
(1 row)
select 9223372036854775807::int8 - 0::uint2;
?column?
---------------------
9223372036854775807
(1 row)
select 9223372036854775807::int8 - 0::uint4;
?column?
---------------------
9223372036854775807
(1 row)
select 9223372036854775807::int8 - 0::uint8;
?column?
---------------------
9223372036854775807
(1 row)
select 9223372036854775807::int8 - null::uint1;
?column?
----------
(1 row)
select 9223372036854775807::int8 - null::uint2;
?column?
----------
(1 row)
select 9223372036854775807::int8 - null::uint4;
?column?
----------
(1 row)
select 9223372036854775807::int8 - null::uint8;
?column?
----------
(1 row)
select 9223372036854775807::int8 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::int8 - 1::uint1;
ERROR: bigint unsigned out of range
select 0::int8 - 1::uint2;
ERROR: bigint unsigned out of range
select 0::int8 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::int8 - 1::uint8;
ERROR: bigint unsigned out of range
--int4
select 2147483647::int4 - 0::uint1;
?column?
------------
2147483647
(1 row)
select 2147483647::int4 - 0::uint2;
?column?
------------
2147483647
(1 row)
select 2147483647::int4 - 0::uint4;
?column?
------------
2147483647
(1 row)
select 2147483647::int4 - 0::uint8;
?column?
------------
2147483647
(1 row)
select 2147483647::int4 - null::uint1;
?column?
----------
(1 row)
select 2147483647::int4 - null::uint2;
?column?
----------
(1 row)
select 2147483647::int4 - null::uint4;
?column?
----------
(1 row)
select 2147483647::int4 - null::uint8;
?column?
----------
(1 row)
select 2147483647::int4 - 4294967295::uint4;
ERROR: bigint unsigned out of range
select 2147483647::int4 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::int4 - 1::uint1;
ERROR: bigint unsigned out of range
select 0::int4 - 1::uint2;
ERROR: bigint unsigned out of range
select 0::int4 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::int4 - 1::uint8;
ERROR: bigint unsigned out of range
--int2
select 32767::int2 - 0::uint1;
?column?
----------
32767
(1 row)
select 32767::int2 - 0::uint2;
?column?
----------
32767
(1 row)
select 32767::int2 - 0::uint4;
?column?
----------
32767
(1 row)
select 32767::int2 - 0::uint8;
?column?
----------
32767
(1 row)
select 32767::int2 - null::uint1;
?column?
----------
(1 row)
select 32767::int2 - null::uint2;
?column?
----------
(1 row)
select 32767::int2 - null::uint4;
?column?
----------
(1 row)
select 32767::int2 - null::uint8;
?column?
----------
(1 row)
select 32767::int2 - 65535::uint2;
ERROR: int unsigned out of range
select 32767::int2 - 4294967295::uint4;
ERROR: bigint unsigned out of range
select 32767::int2 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::int2 - 1::uint1;
ERROR: int unsigned out of range
select 0::int2 - 1::uint2;
ERROR: int unsigned out of range
select 0::int2 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::int2 - 1::uint8;
ERROR: bigint unsigned out of range
--int1
select 127::int1 - 0::uint1;
?column?
----------
127
(1 row)
select 127::int1 - 0::uint2;
?column?
----------
127
(1 row)
select 127::int1 - 0::uint4;
?column?
----------
127
(1 row)
select 127::int1 - 0::uint8;
?column?
----------
127
(1 row)
select 127::int1 - null::uint1;
?column?
----------
(1 row)
select 127::int1 - null::uint2;
?column?
----------
(1 row)
select 127::int1 - null::uint4;
?column?
----------
(1 row)
select 127::int1 - null::uint8;
?column?
----------
(1 row)
select 127::int1 - 65535::uint2;
ERROR: int unsigned out of range
select 127::int1 - 4294967295::uint4;
ERROR: bigint unsigned out of range
select 127::int1 - 18446744073709551615::uint8;
ERROR: bigint unsigned out of range
select 0::int1 - 1::uint1;
ERROR: int unsigned out of range
select 0::int1 - 1::uint2;
ERROR: int unsigned out of range
select 0::int1 - 1::uint4;
ERROR: bigint unsigned out of range
select 0::int1 - 1::uint8;
ERROR: bigint unsigned out of range
drop schema uint_mi cascade;
reset current_schema;