powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
6 сообщений из 6, страница 1 из 1
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376855
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Однажды воскресным утром случилось следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select -9223372036854775808 + 9223372036854775807 from rdb$database;

                  ADD
=====================
                   -1 -- OK

SQL> select  9223372036854775807 + (-9223372036854775808) from rdb$database;

                  ADD
=====================
                   -1 -- OK

SQL> select  9223372036854775807 - 9223372036854775808 from rdb$database;
Statement failed, SQLSTATE = 22003
Dynamic SQL Error
-SQL error code = -104
-arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range

PS. LI-T3.0.0.30616, да и на других тоже самое, скорее всего
PS-2. "Даёшь длинную целочисленную арифметику в ФБ-3!" :-)
...
Рейтинг: 0 / 0
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376859
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

2.5.3 даёт тот же результат
...
Рейтинг: 0 / 0
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376862
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там какой-то трабл не с первым числом, а именно с MIN_BIGINT (т.е. с -9223372036854775808):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select  1 - 9223372036854775807 from rdb$database;

             SUBTRACT
=====================
 -9223372036854775806

SQL> select  1 - 9223372036854775808 from rdb$database;
Statement failed, SQLSTATE = 22003
Dynamic SQL Error
-SQL error code = -104
-arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range
...
Рейтинг: 0 / 0
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376864
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидТам какой-то трабл не с первым числом, а именно с MIN_BIGINT (т.е. с
-9223372036854775808):
Вот только в твоём примере нет MIN_BIGINT. Там есть вычитание положительного числа, на
единицу большего чем MAX_BIGINT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376866
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

+1
...
Рейтинг: 0 / 0
Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
    #38376868
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovвычитание положительного числа, на единицу большего чем MAX_BIGINT.гм... да, заклинило что-то мну... :-)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложение граничных значений для типа bigint: раскрытие скобок ведет к num overflow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]