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(-)
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 < |