pgsql: Avoid collation dependence in indexes of system catalogs.
От | Tom Lane |
---|---|
Тема | pgsql: Avoid collation dependence in indexes of system catalogs. |
Дата | |
Msg-id | E1YujkE-0005Tw-0q@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Avoid collation dependence in indexes of system catalogs. 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 :-( Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/0b28ea79c044a0d3779081dc909a6dc0ce93b991 Modified Files -------------- src/include/catalog/catversion.h | 2 +- src/include/catalog/indexing.h | 6 +-- src/test/regress/expected/opr_sanity.out | 83 ++++++++++++++++++++++++++++-- src/test/regress/sql/opr_sanity.sql | 73 ++++++++++++++++++++++++-- 4 files changed, 154 insertions(+), 10 deletions(-)
В списке pgsql-committers по дате отправления: