• Tom Lane's avatar
    Disable recheck_on_update optimization to avoid crashes. · 5d28c9bd
    Tom Lane authored
    The code added by commit c203d6cf 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
    5d28c9bd
create_index.sgml 32.2 KB