pgsql: Fix some issues in new hashtable size calculations in nodeHash.c

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix some issues in new hashtable size calculations in nodeHash.c
Date: 2015-10-04 18:07:08
Message-ID: E1Zingi-0003L0-2E@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix some issues in new hashtable size calculations in nodeHash.c.

Limit the size of the hashtable pointer array to not more than
MaxAllocSize, per reports from Kouhei Kaigai and others of "invalid memory
alloc request size" failures. There was discussion of allowing the array
to get larger than that by using the "huge" palloc API, but so far no proof
that that is actually a good idea, and at this point in the 9.5 cycle major
changes from old behavior don't seem like the way to go.

Fix a rather serious secondary bug in the new code, which was that it
didn't ensure nbuckets remained a power of 2 when recomputing it for the
multiple-batch case.

Clean up sloppy division of labor between ExecHashIncreaseNumBuckets and
its sole call site.

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/ca5b42d85486f814b3b510e436157f443fd73683

Modified Files
--------------
src/backend/executor/nodeHash.c | 60 +++++++++++++++++++--------------------
src/include/executor/hashjoin.h | 2 +-
2 files changed, 31 insertions(+), 31 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2015-10-04 18:17:39 pgsql: Fix possible "invalid memory alloc request size" failure in node
Previous Message Andrew Dunstan 2015-10-04 17:48:41 pgsql: Disallow invalid path elements in jsonb_set