• Tom Lane's avatar
    Avoid collation dependence in indexes of system catalogs. · 0b28ea79
    Tom Lane authored
    No index in template0 should have collation-dependent ordering, especially
    not indexes on shared catalogs.  For most textual columns we avoid this
    issue by using type "name" (which sorts per strcmp()).  However there are a
    few indexed columns that we'd prefer to use "text" for, and for that, the
    default opclass text_ops is unsafe.  Fortunately, text_pattern_ops is safe
    (it sorts per memcmp()), and it has no real functional disadvantage for our
    purposes.  So change the indexes on pg_seclabel.provider and
    pg_shseclabel.provider to use text_pattern_ops.
    
    In passing, also mark pg_replication_origin.roname as using
    text_pattern_ops --- for some reason it was labeled varchar_pattern_ops
    which is just wrong, even though it accidentally worked.
    
    Add regression test queries to catch future errors of these kinds.
    
    We still can't do anything about the misdeclared pg_seclabel and
    pg_shseclabel indexes in back branches :-(
    0b28ea79
opr_sanity.out 74.5 KB