Re: ATTACH PARTITION seems to ignore column generation status

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Amit Langote <amitlangote09@gmail.com>, pgsql-hackers@lists.postgresql.org, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2023-02-16T18:05:42Z
Lists: pgsql-hackers
On 2023-Feb-16, Alexander Lakhin wrote:

> I've encountered a query that triggers an assert added in that commit:
> CREATE TABLE t(a int, b int GENERATED ALWAYS AS (a) STORED) PARTITION BY
> RANGE (a);
> CREATE TABLE tp PARTITION OF t(b DEFAULT 1) FOR VALUES FROM (0) to (1);

It seems wrong that this command is accepted.  It should have given an
error, because the partition is not allowed to override the generation
of the value that is specified in the parent table.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"Pido que me den el Nobel por razones humanitarias" (Nicanor Parra)



Commits

  1. Fix check for child column generation status matching parent.

  2. Doc: fix silly thinko in 8bf6ec3ba.

  3. Improve handling of inherited GENERATED expressions.

  4. Fix calculation of which GENERATED columns need to be updated.