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-21T07:43:05Z
Lists: pgsql-bugs

Attachments

On Sat, Dec 21, 2019 at 6:10 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Thomas Munro <thomas.munro@gmail.com> writes:
> > I ran the 150MB 4096 batch "sevenb" self-join with the "rotate" patch,
> > and it worked as expected.  I'm now planning to commit that version,
> > unless there are objections or someone wants to argue for a different
> > way to spell rotate() etc.
>
> FWIW, I do want to argue for a different way to spell that.  It seems
> like a mighty generic function name --- in particular, there's no
> hint of the word width we're rotating in.  Maybe "rotate32" would be
> good enough, though I'm tempted to propose "pg_rotate32" or "rotate_bit32"
> or some other variation on that.

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.

Commits

  1. Rotate instead of shifting hash join batch number.