pgsql: Properly initialize SortSupport for ORDER BY rechecks in nodeInd - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Properly initialize SortSupport for ORDER BY rechecks in nodeInd
Date
Msg-id E1b9aMZ-0003pp-0M@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Properly initialize SortSupport for ORDER BY rechecks in nodeIndexscan.c.

Fix still another bug in commit 35fcb1b3d: it failed to fully initialize
the SortSupport states it introduced to allow the executor to re-check
ORDER BY expressions containing distance operators.  That led to a null
pointer dereference if the sortsupport code tried to use ssup_cxt.  The
problem only manifests in narrow cases, explaining the lack of previous
field reports.  It requires a GiST-indexable distance operator that lacks
SortSupport and is on a pass-by-ref data type, which among core+contrib
seems to be only btree_gist's interval opclass; and it requires the scan
to be done as an IndexScan not an IndexOnlyScan, which explains how
btree_gist's regression test didn't catch it.  Per bug #14134 from
Jihyun Yu.

Peter Geoghegan

Report: <20160511154904.2603.43889@wrigleys.postgresql.org>

Branch
------
REL9_5_STABLE

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

Modified Files
--------------
contrib/btree_gist/expected/interval.out | 18 ++++++++++++++++++
contrib/btree_gist/sql/interval.sql      |  6 ++++++
src/backend/executor/nodeIndexscan.c     | 15 +++++++++++++--
3 files changed, 37 insertions(+), 2 deletions(-)


pgsql-committers by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <
Next
From: Tom Lane
Date:
Subject: pgsql: Properly initialize SortSupport for ORDER BY rechecks in nodeInd