Re: [GENERAL] SELECT x'00000000F'::int leading zeros causes "integerout of range"

Поиск
Список
Период
Сортировка
От Melvin Davidson
Тема Re: [GENERAL] SELECT x'00000000F'::int leading zeros causes "integerout of range"
Дата
Msg-id CANu8Fiw=cBcEdOA4VtXieDY4bswmUyWF7xmA+pgg7QyHp_XwHA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [GENERAL] SELECT x'00000000F'::int leading zeros causes "integer out of range"  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general


On Fri, Feb 24, 2017 at 2:13 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Justin Pryzby <pryzby@telsasoft.com> writes:
> Is this expected behavior ?
>       ts=# SELECT x'00000000F'::int;
>       ERROR:  22003: integer out of range
>       LOCATION:  bittoint4, varbit.c:1575

Yes.  The provided operation is "convert a bitstring of up to 32 bits
to an integer".  It's not "guess whether it's okay to throw away some
bits to make an integer".

As an example, even if you think it's obvious that it would be okay
to convert that bitstring to "15", would it be all right to convert
x'FFFFFFFFF' to "-1" ?

                        regards, tom lane


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


In addition to what Tom said

SELECT x'00000000F'::bigint;

works just fine.

IOW, int = 4 bytes, while bigint = 8 bytes.
--
Melvin Davidson
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] SELECT x'00000000F'::int leading zeros causes "integer out of range"
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: [GENERAL] SELECT x'00000000F'::int leading zeros causes "integerout of range"