postgresql/src/backend
Tom Lane 5d28c9bd73 Disable recheck_on_update optimization to avoid crashes.
The code added by commit c203d6cf8 causes a crash in at least one case,
where a potentially-optimizable expression index has a storage type
different from the input data type.  A cursory code review turned up
numerous other problems that seem impractical to fix on short notice.

Andres argued for revert of that patch some time ago, and if additional
senior committers had been paying attention, that's likely what would
have happened, but we were not :-(

At this point we can't just revert, at least not in v11, because that would
mean an ABI break for code touching relcache entries.  And we should not
remove the (also buggy) support for the recheck_on_update index reloption,
since it might already be used in some databases in the field.  So this
patch just does the as-little-invasive-as-possible measure of disabling
the feature as though recheck_on_update were forced off for all indexes.
I also removed the related regression tests (which would otherwise fail)
and the user-facing documentation of the reloption.

We should undertake a more thorough code cleanup if the patch can't be
fixed, but not under the extreme time pressure of being already overdue
for 11.1 release.

Per report from Ondřej Bouda and subsequent private discussion among
pgsql-release.

Discussion: https://postgr.es/m/20181106185255.776mstcyehnc63ty@alvherre.pgsql
2018-11-06 18:33:28 -05:00
..
access Use pg_pread() and pg_pwrite() for data files and WAL. 2018-11-07 09:51:50 +13:00
bootstrap Install a check for mis-linking of src/port and src/common functions. 2018-09-09 12:23:23 -04:00
catalog Switch pg_promote to be parallel-safe 2018-11-06 14:11:21 +09:00
commands Block creation of partitions with open references to its parent 2018-11-05 11:04:02 +09:00
executor Fix unused-variable warning. 2018-11-04 11:20:59 -05:00
foreign Correct constness of a few variables. 2018-10-15 21:01:14 -07:00
jit Prevent generating EEOP_AGG_STRICT_INPUT_CHECK operations when nargs == 0. 2018-11-03 15:55:23 -07:00
lib Rename rbtree.c functions to use "rbt" prefix not "rb" prefix. 2018-11-06 13:25:24 -05:00
libpq Server-side fix for delayed NOTIFY and SIGTERM processing. 2018-10-19 21:39:21 -04:00
main Update copyright for 2018 2018-01-02 23:30:12 -05:00
nodes Correct attach/detach logic for FKs in partitions 2018-10-12 12:37:37 -03:00
optimizer Optimize nested ConvertRowtypeExpr nodes. 2018-11-06 21:10:10 +00:00
parser Fix interaction of CASE and ArrayCoerceExpr. 2018-10-30 15:26:11 -04:00
partitioning Centralize executor's opening/closing of Relations for rangetable entries. 2018-10-04 14:03:42 -04:00
po Translation updates 2018-06-25 12:37:18 +02:00
port Fix spelling errors and typos in comments 2018-11-02 13:56:52 +01:00
postmaster Add pg_promote function 2018-10-25 09:46:00 +09:00
regex Clean up warnings from -Wimplicit-fallthrough. 2018-05-01 19:35:08 -04:00
replication Fix copy-paste error in errhint() introduced in 691d79a079. 2018-11-05 12:05:38 -08:00
rewrite Change rewriter/planner/executor/plancache to depend on RTE rellockmode. 2018-10-02 14:43:09 -04:00
snowball Sync our Snowball stemmer dictionaries with current upstream. 2018-09-24 17:29:38 -04:00
statistics Fix typos. 2018-08-27 09:32:59 +12:00
storage Remove set-but-unused variable. 2018-11-07 12:06:43 +13:00
tcop Server-side fix for delayed NOTIFY and SIGTERM processing. 2018-10-19 21:39:21 -04:00
tsearch Make ts_locale.c's character-type functions cope with UTF-16. 2018-11-03 13:56:10 -04:00
utils Disable recheck_on_update optimization to avoid crashes. 2018-11-06 18:33:28 -05:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Refactor dlopen() support 2018-09-06 11:33:04 +02:00
nls.mk Translation updates 2018-06-25 12:37:18 +02:00