pgsql: Optimize multi-batch hash joins when the outer relation has a

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Optimize multi-batch hash joins when the outer relation has a
Date: 2009-03-21 00:04:40
Message-ID: 20090321000440.72E57754ADE@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Optimize multi-batch hash joins when the outer relation has a nonuniform
distribution, by creating a special fast path for the (first few) most common
values of the outer relation. Tuples having hashvalues matching the MCVs
are effectively forced to be in the first batch, so that we never write
them out to the batch temp files.

Bryce Cutt and Ramon Lawrence, with some editorialization by me.

Modified Files:
--------------
pgsql/src/backend/executor:
nodeHash.c (r1.117 -> r1.118)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHash.c?r1=1.117&r2=1.118)
nodeHashjoin.c (r1.97 -> r1.98)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHashjoin.c?r1=1.97&r2=1.98)
pgsql/src/backend/nodes:
copyfuncs.c (r1.426 -> r1.427)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.426&r2=1.427)
outfuncs.c (r1.354 -> r1.355)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.354&r2=1.355)
pgsql/src/backend/optimizer/path:
costsize.c (r1.204 -> r1.205)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c?r1=1.204&r2=1.205)
pgsql/src/backend/optimizer/plan:
createplan.c (r1.255 -> r1.256)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.255&r2=1.256)
pgsql/src/include/executor:
hashjoin.h (r1.49 -> r1.50)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/hashjoin.h?r1=1.49&r2=1.50)
nodeHash.h (r1.46 -> r1.47)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeHash.h?r1=1.46&r2=1.47)
pgsql/src/include/nodes:
execnodes.h (r1.201 -> r1.202)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h?r1=1.201&r2=1.202)
plannodes.h (r1.108 -> r1.109)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/plannodes.h?r1=1.108&r2=1.109)

Browse pgsql-committers by date

  From Date Subject
Next Message User Hinoue 2009-03-21 03:29:12 psqlodbc - psqlodbc: Fix an inconsistent declaration of a function.
Previous Message User C2main 2009-03-20 16:25:20 muninpgplugins - muninpgplugins: adding pod, compliant with upstream