title: Lower bound for Postgres integer type out of range?
body: <p>Per Postgres <a href="https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-NUMERIC-TABLE" rel="nofollow noreferrer">documentation</a>, an <code>integer</code> type is defined between <code>-2147483648</code> and <code>+2147483647</code>.<br />
  I thought that these boundaries were inclusive, but if I try:</p>
  <pre><code>select -2147483648 = -2147483648::int4
  </code></pre>
  <p>an <code>Integer out of range error</code> is raised.</p>
  <p>The upper bound seems to be casted properly:</p>
  <pre><code>
  # select 2147483647 = 2147483647::int4;
   ?column? 
  ----------
   t
  (1 row)
  </code></pre>
  <p>And if I increase the lower bound by one it works fine as well:</p>
  <pre><code># select -2147483647 = -2147483647::int4;
   ?column? 
  ----------
   t
  (1 row)
  </code></pre>
  <p>The same result is applied to <code>smallint</code>.
  Is there something obvious that I'm missing here, or are lower bounds excluded for Postgres numeric types?</p>