|From:||Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>|
|To:||Justin Pryzby <pryzby(at)telsasoft(dot)com>|
|Cc:||Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, David Rowley <drowley(at)postgresql(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org|
|Subject:||Re: pg_dump, ATTACH, and independently restorable child partitions|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
Justin Pryzby <pryzby(at)telsasoft(dot)com> writes:
> [ v5-0001-pg_dump-output-separate-object-for-ALTER-TABLE.AT.patch ]
Pushed with mostly cosmetic edits.
One thing I changed that isn't cosmetic is that I set the ArchiveEntry's
owner to be the owner of the child table. Although we aren't going to
do any sort of ALTER OWNER on this, it's still important that the owner
be marked as someone who has the right permissions to issue the ALTER.
The default case is that the original user will issue the ATTACH, which
basically only works if you run the restore as superuser. It looks to
me like you copied this decision from the INDEX ATTACH code, which is
just as broken --- I'm going to go fix/backpatch that momentarily.
Another thing that bothers me still is that it's not real clear that
this code plays nicely with selective dumps, because it's not doing
anything to set the dobj.dump field in a non-default way (which in
turn means that the dobj.dump test in dumpTableAttach can never fire).
It seems like it might be possible to emit a TABLE ATTACH object
even though one or both of the referenced tables didn't get dumped.
In some desultory testing I couldn't get that to actually happen, but
maybe I just didn't push on it in the right way. I'd be happier about
this if we set the flags with something along the lines of
attachinfo->dobj.dump = attachinfo->parentTbl->dobj.dump &
regards, tom lane
|Next Messagefirstname.lastname@example.org||2021-01-12 03:04:54||RE: POC: postgres_fdw insert batching|
|Previous Message||Michael Paquier||2021-01-12 02:26:51||Re: Moving other hex functions to /common|