db_atm=# select (1::bigint << 64)-1 as test;
test
------
0
(1 row)
db_atm=# select (1::bigint << 63)-1 as test;
ERROR: bigint out of range
db_atm=# select (1::bigint << 62)-1 as test;
test
---------------------
4611686018427387903
(1 row)
db_atm=# select (1::int << 32)-1 as test;
test
------
0
(1 row)
db_atm=# select (1::int << 31)-1 as test;
ERROR: integer out of range
db_atm=# select (1::int << 30)-1 as test;
test
------------
1073741823
(1 row)
db_atm=# select (1::bigint << 64);
?column?
----------
1
(1 row)
db_atm=# select (1::bigint << 65);
?column?
----------
2
(1 row)
db_atm=# select (1::bigint << 66);
?column?
----------
4
(1 row)
Coniglio Sgabbiato ha scritto: