Excerpts from Tom Lane's message of sáb sep 10 19:03:23 -0300 2011: > I'm considering inventing a new mcxt.c primitive, > > void MemoryContextSetParent(MemoryContext context, MemoryContext new_parent); > > which would have the effect of delinking "context" from its current > parent context and attaching it as a child of the new specified parent. > (Any child contexts that it has would naturally follow along.) > Because of the way that mcxt.c handles parent/child links, there is no > palloc required and so the operation cannot fail.
Interesting. I wonder whether we could use this somehow to fix performance problems in certain subtransaction code paths that "reassign stuff to the parent"; instead of moving pointers or memory around, perhaps we could do something like this. Not that I have actually looked into it. -- Álvaro Herrera <alvhe...@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers