Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / int8 / 3 сообщений из 3, страница 1 из 1
15.11.2005, 01:14
    #33377817
drew-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
int8
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TABLE prices
(
  id serial NOT NULL,
  incl_in int8 NOT NULL DEFAULT  0 ,
  incl_out int8 NOT NULL DEFAULT  0 
)
запрос выполняется:
Код: plaintext
UPDATE prices SET incl_in= 2047 * 1024 * 1024  WHERE id= 15 ;

возникает ошибка: ERROR: integer out of range
Код: plaintext
UPDATE prices SET incl_in= 2049 * 1024 * 1024  WHERE id= 15 ;

через pgAdmin ручками 2049*1024*1024 ставится
ничего не понимаю. где косяк?
...
Рейтинг: 0 / 0
15.11.2005, 03:30
    #33377853
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
int8
Это фича многих интерпретаторов. Парсер недостаточно умен для того чтобы определить тип получаемой константы. Все три множителя входят в диапазон int4 - и результат подразумевается int4.
Поможет явное приведение типа: 2049*1024*1024::int8
...
Рейтинг: 0 / 0
15.11.2005, 13:47
    #33379028
drew0-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
int8
точно! спасибо! как же я не сообразил про приведение типов! =)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / int8 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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