Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY
От | Alvaro Herrera |
---|---|
Тема | Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY |
Дата | |
Msg-id | 20210423233144.GA24241@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
Ответы |
Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY
|
Список | pgsql-hackers |
On 2021-Apr-23, Alvaro Herrera wrote: > I think the patch I posted was too simple. I think a real fix requires > us to keep track of exactly in what way the partdesc is outdated, so > that we can compare to the current situation in deciding to use that > partdesc or build a new one. For example, we could keep track of a list > of OIDs of detached partitions (and it simplifies things a lot if allow > only a single partition in this situation, because it's either zero OIDs > or one OID); or we can save the Xmin of the pg_inherits tuple for the > detached partition (and we can compare that Xmin to our current active > snapshot and decide whether to use that partdesc or not). > > I'll experiment with this a little more and propose a patch later today. This (POC-quality) seems to do the trick. (I restored the API of find_inheritance_children, because it was getting a little obnoxious. I haven't thought this through but I think we should do something like it.) > I don't think it's too much of a problem to state that you need to > finalize one detach before you can do the next one. After all, with > regular detach, you'd have the tables exclusively locked so you can't do > them in parallel anyway. (It also increases the chances that people > will finalize detach operations that went unnoticed.) I haven't added a mechanism to verify this; but with asserts on, this patch will crash if you have more than one. I think the behavior is not necessarily sane with asserts off, since you'll get an arbitrary detach-Xmin assigned to the partdesc, depending on catalog scan order. -- Álvaro Herrera Valdivia, Chile "El hombre nunca sabe de lo que es capaz hasta que lo intenta" (C. Dickens)
Вложения
В списке pgsql-hackers по дате отправления: