Приветствую!
Установлен 64-битный PostgreSQL 9.1 на Windows 7 (64-bit).
Выполняю запрос следующего вида:
SELECT (1<<48)+(1<<32)+(1<<16)+1 AS "Test"; >131074
Получаю результат 131074, что не есть правда.
При этом другие операции с "большими" числами проходят неплохо:
SELECT 281479271743489 + 65535; >281479271809024
Самое интересное, что 32-битный MySQL ту же самую операцию логического сдвига выполняет правильно, возвращая значение 281479271743489.
Как быть, если требуется данный функционал на PostgreSQL?
Решение найдено: SELECT
Решение найдено:
SELECT (int8(1)<<48)+(int8(1)<<32)+(int8(1)<<16)+int8(1) AS "Test";