postgresql/contrib/btree_gist
Tom Lane b5febc1d12 Fix IOS planning when only some index columns can return an attribute.
Since 9.5, it's possible that some but not all columns of an index
support returning the indexed value for index-only scans.  If the
same indexed column appears in index columns that behave both ways,
check_index_only() supposed that it'd be OK to do an index-only scan
testing that column; but that fails if we have to recheck the indexed
condition on one of the columns that doesn't support this.

In principle we could make this work by remapping the recheck expressions
to pull the value from a column that does support returning the indexed
value.  But such cases are so weird and rare that, at least for now,
it doesn't seem worth the trouble.  Instead, just teach check_index_only
that a value is returnable only if all the index columns containing it
are returnable, rather than any of them.

Per report from David Pereiro Lagares.  Back-patch to 9.5 where the
possibility of this situation appeared.

Kyotaro Horiguchi

Discussion: https://postgr.es/m/1516210494.1798.16.camel@nlpgo.com
2018-03-01 15:35:03 -05:00
..
data Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
expected Fix IOS planning when only some index columns can return an attribute. 2018-03-01 15:35:03 -05:00
sql Fix IOS planning when only some index columns can return an attribute. 2018-03-01 15:35:03 -05:00
.gitignore Support "make check" in contrib 2011-04-25 22:27:11 +03:00
btree_bit.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_bytea.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_cash.c Consistently use PG_INT(16|32|64)_(MIN|MAX). 2017-12-12 18:19:13 -08:00
btree_date.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_enum.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_float4.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_float8.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_gist--1.0--1.1.sql Add index-only scan support to btree_gist. 2015-03-27 23:35:16 +02:00
btree_gist--1.1--1.2.sql Handle contrib's GIN/GIST support function signature changes honestly. 2016-06-09 16:44:25 -04:00
btree_gist--1.2--1.3.sql Add uuid to the set of types supported by contrib/btree_gist. 2016-11-29 14:08:34 -05:00
btree_gist--1.2.sql Handle contrib's GIN/GIST support function signature changes honestly. 2016-06-09 16:44:25 -04:00
btree_gist--1.3--1.4.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
btree_gist--1.4--1.5.sql Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
btree_gist--unpackaged--1.0.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
btree_gist.c Create function prototype as part of PG_FUNCTION_INFO_V1 macro 2014-04-18 00:03:19 -04:00
btree_gist.control Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
btree_gist.h Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
btree_inet.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_int2.c Consistently use PG_INT(16|32|64)_(MIN|MAX). 2017-12-12 18:19:13 -08:00
btree_int4.c Consistently use PG_INT(16|32|64)_(MIN|MAX). 2017-12-12 18:19:13 -08:00
btree_int8.c Consistently use PG_INT(16|32|64)_(MIN|MAX). 2017-12-12 18:19:13 -08:00
btree_interval.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_macaddr8.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_macaddr.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_numeric.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_oid.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
btree_text.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_time.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_ts.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_utils_num.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_utils_num.h Use new overflow aware integer operations. 2017-12-12 16:55:37 -08:00
btree_utils_var.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
btree_utils_var.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
btree_uuid.c Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
Makefile Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00