| 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: | [email protected] | 
| Views: | Whole Thread | Raw Message | 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
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/8a859691d548dc4733b8bb302c624fbc012db534
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 < |