From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Advice wanted on backend memory management |
Date: | 1999-05-04 16:07:55 |
Message-ID: | 309.925834075@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I want to change hashjoin's use of a fixed-size overflow area for tuples
that don't fit into the hashbucket they ought to go in. Since it's
always possible for an improbably large number of tuples to hash into the
same hashbucket, the overflow area itself can overflow; without the
ability to recover from that, hashjoin is inherently unreliable.
So I think this is an important thing to fix.
To do this, I need to be able to allocate chunks of space that I will
later want to give back all at once (at the end of a hash pass).
Seems to me like a job for palloc and a special memory context ---
but I see no way in mcxt.h to create a new memory context. How do
I do that? Also, I'd want the new context to be a "sub-context" of
the regular execution context, in the sense that it should automatically
get released if we exit via elog(ERROR). What are the appropriate
calls to be using for this? If there's documentation about this stuff,
I haven't found it :-(
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 1999-05-04 16:20:29 | Re: [HACKERS] major flaw in 6.5beta1??? (UPDATE/INSERT waiting) |
Previous Message | Oleg Bartunov | 1999-05-04 15:46:20 | Re: [HACKERS] adate::Date is equiv. to adate if adate is type of Date ? |