integer input functions : interesting limit behaviour
От | Pierre Frédéric Caillaud |
---|---|
Тема | integer input functions : interesting limit behaviour |
Дата | |
Msg-id | op.uzxqv2grcke6l8@soyouz обсуждение исходный текст |
Ответы |
Re: integer input functions : interesting limit behaviour
|
Список | pgsql-hackers |
I was looking in the int*in() functions and found some interesting limit behaviours : * Here, the most negative value is sometimes accepted, sometimes not : test=> SELECT -2147483648::INTEGER; ERREUR: entier en dehors des limites test=> SELECT '-2147483648'::INTEGER; int4 ------------- -2147483648 * Same for smallint : test=> SELECT -32768::SMALLINT; ERREUR: smallint en dehors des limites test=> SELECT '-32768'::SMALLINT; int2 -------- -32768 (1 ligne) * For BIGINT : test=> SELECT -9223372036854775808::BIGINT; ERREUR: bigint en dehors des limites test=> SELECT '-9223372036854775808'::BIGINT; int8 ---------------------- -9223372036854775808 (1 ligne) Temps : 0,185 ms test=> SELECT '-000000009223372036854775808'::BIGINT; ERREUR: la valeur « -000000009223372036854775808 » est en dehors des limites du type bigint Interesting, isn't it ? I guess it's good to reject -2147483648::INTEGER because this is ugly : test=> CREATE TABLE foo AS (SELECT '-2147483648'::INTEGER AS x); test=> SELECT -x FROM foo; ERREUR: entier en dehors des limites I can make a fix...
В списке pgsql-hackers по дате отправления: