Make pg_dump emit ATTACH PARTITION instead of PARTITION OF
Alvaro Herrera <alvherre@alvh.no-ip.org>
Make pg_dump emit ATTACH PARTITION instead of PARTITION OF Using PARTITION OF can result in column ordering being changed from the database being dumped, if the partition uses a column layout different from the parent's. It's not pg_dump's job to editorialize on table definitions, so this is not acceptable; back-patch all the way back to pg10, where partitioned tables where introduced. This change also ensures that partitions end up in the correct tablespace, if different from the parent's; this is an oversight in ca4103025dfe (in pg12 only). Partitioned indexes (in pg11) don't have this problem, because they're already created as independent indexes and attached to their parents afterwards. This change also has the advantage that the partition is restorable from the dump (as a standalone table) even if its parent table isn't restored. Author: David Rowley Reviewed-by: Álvaro Herrera Discussion: https://postgr.es/m/CAKJS1f_1c260nOt_vBJ067AZ3JXptXVRohDVMLEBmudX1YEx-A@mail.gmail.com Discussion: https://postgr.es/m/20190423185007.GA27954@alvherre.pgsql
Files
| Path | Change | +/− |
|---|---|---|
| src/bin/pg_dump/pg_dump.c | modified | +51 −72 |
| src/bin/pg_dump/t/002_pg_dump.pl | modified | +9 −3 |
Discussion
- pg_dump partitions can lead to inconsistent state after restore 6 messages · 2019-04-23 → 2019-06-21
- pg_dump is broken for partition tablespaces 57 messages · 2019-03-06 → 2019-04-25