問題タブ [postgresql-11]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - PostgreSQL の負の整数オーバーフロー
tinyint 拡張機能を使用して Postgres でいくつかのテストを行っていたときに、その範囲に関して驚くべきことに遭遇しました。入力すると、まったく期待していなかっselect -128::tinyint
たメッセージが表示されました。ERROR: tinyint out of range
負の数が正の最大値 (1 バイト整数の場合は 127) よりも 1 大きい (または小さい) 必要があると仮定すると、拡張機能のバグだと思いましたが、拡張されていない数値でこれを試してみると、まったく同じことがわかりました。ハプニング。
select -32768::smallint
→範囲外
select -2147483648::integer
→範囲外
select -9223372036854775808::bigint
→範囲外
数値データ型のドキュメント ( https://www.postgresql.org/docs/current/datatype-numeric.html )を参照すると、これらの数値はすべて可能である必要があります-32767
。なぜこれが起こっているのか、またはこれは他の人々のコピーでも起こるのでしょうか.-2147483647
-9223372036854775807
ubuntu 16.xデスクトップでpostgresql 10とpostgresql 11の両方を使用してみました。