postgresql/src/backend/utils
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
..
adt Fix spelling errors and typos in comments 2018-11-02 13:56:52 +01:00
cache Disable recheck_on_update optimization to avoid crashes. 2018-11-06 18:33:28 -05:00
error Implement %m in src/port/snprintf.c, and teach elog.c to rely on that. 2018-09-26 13:31:56 -04:00
fmgr Drop const cast from dlsym() calls 2018-10-23 14:35:59 +02:00
hash Allow memory contexts to have both fixed and variable ident strings. 2018-03-27 16:46:51 -04:00
init Refactor pid, random seed and start time initialization. 2018-10-19 13:59:28 +13:00
mb Const-ify a few more large static tables. 2018-10-17 15:32:47 -04:00
misc GUC: adjust effective_cache_size SQL descriptions 2018-11-06 13:40:03 -05:00
mmgr Simplify use of AllocSetContextCreate() wrapper macro. 2018-10-12 14:26:56 -04:00
resowner Use a ResourceOwner to track buffer pins in all cases. 2018-07-18 12:15:16 -04:00
sort Adjust trace_sort log messages. 2018-11-01 09:18:57 -07:00
time Fix misc typos, mostly in comments. 2018-07-18 16:17:32 +03:00
.gitignore Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
Gen_dummy_probes.pl Clean up some perlcritic warnings 2018-05-07 15:35:32 -04:00
Gen_dummy_probes.sed Update copyright for 2018 2018-01-02 23:30:12 -05:00
Gen_fmgrtab.pl Reorder FmgrBuiltin members, saving 25% in size. 2018-10-16 14:51:18 -07:00
Makefile Suppress compiler warnings when building with --enable-dtrace. 2018-05-07 13:44:09 -04:00
errcodes.txt Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
generate-errcodes.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
probes.d Support parallel btree index builds. 2018-02-02 13:32:44 -05:00