Re: [Patch] Temporary tables that do not bloat pg_catalog (a.k.a fast temp tables)
От | Claudio Freire |
---|---|
Тема | Re: [Patch] Temporary tables that do not bloat pg_catalog (a.k.a fast temp tables) |
Дата | |
Msg-id | CAGTBQpZdTxsTM7sioDWsWS_7fQu96Pz__cg1E93o-L6bhEfNbg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [Patch] Temporary tables that do not bloat pg_catalog (a.k.a fast temp tables) (Alvaro Herrera <alvherre@2ndquadrant.com>) |
Список | pgsql-hackers |
On Wed, Aug 24, 2016 at 2:04 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Claudio Freire wrote: > >> After looking at it from a birdseye view, I agree it's conceptually >> complex (reading HeapTupleSatisfiesSelf already makes one dizzy). >> >> But other than that, the implementation seems rather simple. It seems >> to me, if one figures out that it is safe to do so (a-priori, xmin not >> committed, xmax is current transaction), it would simply be a matter >> of chasing the HOT chain root, setting all LP except the first to >> LP_UNUSED and the first one to LP_DEAD. >> >> Of course I may be missing a ton of stuff. > > What you seem to be missing is that rows corresponding to temp tables > are not "visible to its own transaction only". The rows are valid > after the transaction is gone; what makes the tables temporary is the > fact that they are in a temporary schema. And what makes them invisible > to one backend is the fact that they are in the temporary schema for > another backend. Not that they are uncommitted. Yeah, I was thinking of "on commit drop" behavior, but granted there's all the others.
В списке pgsql-hackers по дате отправления: