pgsql: Properly initialize SortSupport for ORDER BY rechecks in nodeInd

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Properly initialize SortSupport for ORDER BY rechecks in nodeInd
Date: 2016-06-05 15:53:19
Message-ID: E1b9aMZ-0003pp-0M@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)2603(dot)43889(at)wrigleys(dot)postgresql(dot)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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2016-06-05 21:03:07 pgsql: Fix whitespace
Previous Message Kevin Grittner 2016-06-04 20:21:49 Re: Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <