powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с int как с беззнаковым
13 сообщений из 13, страница 1 из 1
Работа с int как с беззнаковым
    #39216604
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.
В таблице есть столбец "x" со счётчиком, которые обновляются по принципу x = x + y (здесь "y" - некая небольшая положительная величина). Как правильно взаимодействовать с целым типом так, чтобы при переполнении он опрокидывался так-же, как это бы сделал беззнаковый счётчик ?
Или, может быть, как-то изобразить беззнаковый тип ? Может, домен как-то хитро настроить ?
Спасибо.
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39216717
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunjut,

а bigint нельзя использовать?
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39217543
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexius, использую, но оно тоже знаковое.
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39217571
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunjut,

скорей всего без костылей тут тогда не обойтись. т.к. в базе есть только знаковые типы и ошибки с переполнениями судя по коду к ним прибиты.

можно например использовать тип размером больше, чем необходимо и в триггерной функции отбрасывать старшие разряды.
либо обновлять значение через хранимку и перехватывать ошибку с переполнением.

возможно я неправильно понял задачу, для чего это необходимо?
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39220206
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexiusскорей всего без костылей тут тогда не обойтись.
возможно я неправильно понял задачу, для чего это необходимо?
Да, я примерно понял, что прямого пути нет.
Надо сделать счётчики netflow. Я понимаю, что 64-битное целой со знаком в обозримом горизонте времени не переполнится, просто хотелось понять, как концептуально верно решать такую задачу.
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39220366
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunjut,

Можно сделать свой домен на основе существующих типов, повесив ему неотрицательное ограничение.
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39221020
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunjutAlexius, использую, но оно тоже знаковое.


так тем переполнение не будет...
ну т. е. будет, но уже в другой жизни...
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39225252
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorovдомен
Ну, я изначально так и сделал, просто экспериментировать как-то руки не дошли: что будет, если формально должно произойти переполнение - ошибка (величина пытается стать отрицательной) или таки опрокидывание.
Ну, ладно, спишем за не очень большой актуальностью уже :)
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39229230
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что если просто использовать прирост?
- например самое максимальное отрицательное число - это постоянная разница

теперь если нам надо сохранить 500 то в таблице его записываем как 500 + разница (будет чтото типа "минус большое число")
когда из памяти извлекаем то просто отнимаем постоянную разницу мы опять получим 500 и враги сразу непоймут что к чему-)
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39229954
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Legushkaа что если просто использовать прирост?
- например самое максимальное отрицательное число - это постоянная разница

теперь если нам надо сохранить 500 то в таблице его записываем как 500 + разница (будет чтото типа "минус большое число")
когда из памяти извлекаем то просто отнимаем постоянную разницу мы опять получим 500 и враги сразу непоймут что к чему-)
Я не понял немного, дружище. Можешь как-нибудь иначе сформулировать ?
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39230414
IgorNK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunjut,

Не надо изобретать велосипед.

Код: plsql
1.
select (-1)::oid
...
Рейтинг: 0 / 0
Работа с int как с беззнаковым
    #39230483
kunjut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNKkunjut,

Не надо изобретать велосипед.

Код: plsql
1.
select (-1)::oid


Ну, что-ж, вариант неплохой, спасибо :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Работа с int как с беззнаковым
    #39628235
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никто случаем не пробовал pguint (или форки)?
чет у меня валится
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с int как с беззнаковым
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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