SQLite: не удается выбрать числовые столбцы со значениями>= 2^31
Согласно документации SQLite, числовые столбцы могут хранить целые числа размером до 8 байт. Однако у меня возникают проблемы с выбором значений после их сохранения:
create table x (a integer, b integer, c integer);
insert into x values ('2147483647', '2147483647', '2147483647');
select * from x;
+------------+------------+------------+
| a | b | c |
+------------+------------+------------+
| 2147483647 | 2147483647 | 2147483647 |
+------------+------------+------------+
1 row in set
insert into x values ('2147483648', '2147483649', '2147483648');
select * from x;
Ничего не происходит - строки не возвращаются
select count(1) from x;
+----------+
| count(1) |
+----------+
| 2 |
+----------+
1 row in set
select substr(a, 1, 5) from x;
+-----------------+
| substr(a, 1, 5) |
+-----------------+
| 21474 |
| 21474 |
+-----------------
Как правильно извлечь фактические значения, сохранив целочисленный тип данных? (Изменение на REAL или TEXT работает, как ожидалось, но другого выбора нет?)
Редактировать: я использовал Navicat для демонстрации выше, но также столкнулся с проблемой с моим фактическим приложением (используя node-sqlite3).