title: Postgres GENERATED AS IDENTITY column nullability
body: <p>I want to create a table, which contains a nullable column having <code>GENERATED BY DEFAULT AS IDENTITY</code> option, therefore I run the following query:</p>
  <pre class="lang-sql prettyprint-override"><code>CREATE TABLE my_table (
    generated INTEGER NULL GENERATED BY DEFAULT AS IDENTITY,
    data TEXT NOT NULL
  );
  </code></pre>
  <p>But once I try to insert a row in the table, which <code>generated</code> field is <code>null</code> like this:</p>
  <pre class="lang-sql prettyprint-override"><code>INSERT INTO my_table(generated, data) VALUES(NULL, &quot;some data&quot;);
  </code></pre>
  <p>I get a null-constraint violation error.</p>
  <p>However if I change the order of <code>my_table.generated</code> column properties:</p>
  <pre class="lang-sql prettyprint-override"><code>CREATE TABLE my_table (
    generated INTEGER GENERATED BY DEFAULT AS IDENTITY NULL,
    data TEXT NOT NULL
  );
  </code></pre>
  <p>It inserts rows, which generated field is <code>NULL</code>, without any issues.
  Is this the expected behavior for the case?</p>