pgsql: Add optimizer and executor support for parallel index scans.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add optimizer and executor support for parallel index scans.
Date: 2017-02-15 18:56:43
Message-ID: E1ce4kt-0004Yr-4X@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Add optimizer and executor support for parallel index scans.

In combination with 569174f1be92be93f5366212cc46960d28a5c5cd, which
taught the btree AM how to perform parallel index scans, this allows
parallel index scan plans on btree indexes. This infrastructure
should be general enough to support parallel index scans for other
index AMs as well, if someone updates them to support parallel
scans.

Amit Kapila, reviewed and tested by Anastasia Lubennikova, Tushar
Ahuja, and Haribabu Kommi, and me.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/5262f7a4fc44f651241d2ff1fa688dd664a34874

Modified Files
--------------
contrib/bloom/blcost.c | 4 +-
contrib/bloom/bloom.h | 2 +-
contrib/bloom/blutils.c | 1 +
doc/src/sgml/indexam.sgml | 2 +
src/backend/access/brin/brin.c | 1 +
src/backend/access/gin/ginutil.c | 1 +
src/backend/access/gist/gist.c | 1 +
src/backend/access/hash/hash.c | 1 +
src/backend/access/nbtree/nbtree.c | 1 +
src/backend/access/spgist/spgutils.c | 1 +
src/backend/executor/execParallel.c | 12 ++
src/backend/executor/nodeIndexscan.c | 153 +++++++++++++++++++++++---
src/backend/optimizer/path/allpaths.c | 4 +-
src/backend/optimizer/path/costsize.c | 53 ++++++++-
src/backend/optimizer/path/indxpath.c | 67 ++++++++++-
src/backend/optimizer/plan/planner.c | 2 +-
src/backend/optimizer/util/pathnode.c | 19 ++--
src/backend/optimizer/util/plancat.c | 1 +
src/backend/utils/adt/selfuncs.c | 24 +++-
src/include/access/amapi.h | 5 +-
src/include/executor/nodeIndexscan.h | 4 +
src/include/nodes/execnodes.h | 2 +
src/include/nodes/relation.h | 1 +
src/include/optimizer/cost.h | 2 +-
src/include/optimizer/pathnode.h | 3 +-
src/include/optimizer/paths.h | 2 +
src/include/utils/index_selfuncs.h | 18 ++-
src/test/regress/expected/select_parallel.out | 23 ++++
src/test/regress/sql/select_parallel.sql | 11 ++
29 files changed, 366 insertions(+), 55 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2017-02-15 19:44:33 pgsql: Fix YA unwanted behavioral difference with operator_precedence_w
Previous Message Robert Haas 2017-02-15 18:38:09 pgsql: Replace min_parallel_relation_size with two new GUCs.