Re: BUG #16104: Invalid DSA Memory Alloc Request in Parallel Hash

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Andres Freund <andres@anarazel.de>, James Coleman <jtc331@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-12-24T00:29:13Z
Lists: pgsql-bugs
On Sun, Dec 22, 2019 at 4:02 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Thomas Munro <thomas.munro@gmail.com> writes:
> > Yeah, I suppose it would be nice to get something reusable out of this
> > rather than a local definition only.  The other important
> > characteristic is the direction of rotation, so here's a version that
> > defines pg_rotate_right32() in pg_bitutils.h.  In back-branches
> > without that header we could define it locally.
>
> That looks like a good approach.  One thought is that you could rely
> on BITS_PER_BYTE from c.h, rather than CHAR_BIT; then you don't have
> to #include <limits.h> in bitutils.h, which seems like header creep
> we could do without.  (I think most other places that want this
> constant use BITS_PER_BYTE, too.)

Done, and pushed.

I'm hoping to look into wider hashing support which will give better
results on big joins soon, but not in time for 13.



Commits

  1. Rotate instead of shifting hash join batch number.