Re: ALTER TABLE SET ACCESS METHOD on partitioned tables
От | Michael Paquier |
---|---|
Тема | Re: ALTER TABLE SET ACCESS METHOD on partitioned tables |
Дата | |
Msg-id | ZiBsYJr9yC7rySHV@paquier.xyz обсуждение исходный текст |
Ответ на | Re: ALTER TABLE SET ACCESS METHOD on partitioned tables (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
Ответы |
Re: ALTER TABLE SET ACCESS METHOD on partitioned tables
|
Список | pgsql-hackers |
On Wed, Apr 17, 2024 at 10:31:52AM +0200, Alvaro Herrera wrote: > On 2024-Apr-17, Michael Paquier wrote: >> Yeah, that would be easy enough to track but I was wondering about >> adding the relkind instead. Still, one thing that I found confusing >> is the dump generated in this case, as it would mix the SET and the >> ALTER TABLE commands so one reading the dumps may wonder why the SET >> has no effect for a CREATE TABLE PARTITION OF without USING. Perhaps >> that's fine and I just worry too much ;) > > Hmm, maybe we should do a RESET of default_table_access_method before > printing the CREATE TABLE to avoid the confusion. A hard reset would make the business around currTableAM that decides when to generate the SET default_table_access_method queries slightly more complicated, while increasing the number of queries run on the server. >> The extra ALTER commands need to be generated after the object >> definitions, so we'd need a new subroutine similar to >> _selectTableAccessMethod() like a _selectTableAccessMethodNoStorage(). >> Or grouping both together is just simpler? > > I think there should be two routines, since _select* routines just print > a SET command; maybe the new one would be _printAlterTableAM() or > something like that. Having _select() print an ALTER TABLE command > depending on relkind (or the boolean flag) would be confusing, I think. Fine by me to use two routines to generate the two different commands. I am finishing with the attached for now, making dumps, restores and upgrades work happily as far as I've tested. I was also worrying about a need to dump the protocol version to be able to track the relkind in the toc entries, but a45c78e3284b has already done one. The difference in AM handling between relations without storage and relations with storage pushes the relkind logic more within the internals of pg_backup_archiver.c. What do you think? -- Michael
Вложения
В списке pgsql-hackers по дате отправления: