mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-07-18 09:41:08 +02:00
pg_dump: Fix dump of generated columns in partitions
The previous fix for dumping of inherited generated columns
(0bf83648a5
) must not be applied to
partitions, since, unlike normal inherited tables, they are always
dumped separately and reattached.
Reported-by: Santosh Udupi <email@hitha.net>
Discussion: https://www.postgresql.org/message-id/flat/CACLRvHZ4a-%2BSM_159%2BtcrHdEqxFrG%3DW4gwTRnwf7Oj0UNj5R2A%40mail.gmail.com
This commit is contained in:
parent
13ff139a23
commit
bdaa0d2d72
@ -446,9 +446,11 @@ flagInhIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
|
||||
* - Detect child columns that have a generation expression when their parents
|
||||
* also have one. Generation expressions are always inherited, so there is
|
||||
* no need to set them again in child tables, and there is no syntax for it
|
||||
* either. (Exception: In binary upgrade mode we dump them because
|
||||
* inherited tables are recreated standalone first and then reattached to
|
||||
* the parent.)
|
||||
* either. Exceptions: If it's a partition or we are in binary upgrade
|
||||
* mode, we dump them because in those cases inherited tables are recreated
|
||||
* standalone first and then reattached to the parent. (See also the logic
|
||||
* in dumpTableSchema().) In that situation, the generation expressions
|
||||
* must match the parent, enforced by ALTER TABLE.
|
||||
*
|
||||
* modifies tblinfo
|
||||
*/
|
||||
@ -551,7 +553,7 @@ flagInhAttrs(DumpOptions *dopt, TableInfo *tblinfo, int numTables)
|
||||
}
|
||||
|
||||
/* Remove generation expression from child */
|
||||
if (foundGenerated && !dopt->binary_upgrade)
|
||||
if (foundGenerated && !tbinfo->ispartition && !dopt->binary_upgrade)
|
||||
tbinfo->attrdefs[j] = NULL;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user