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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Revert "Change pg_seclabel.provider and pg_shseclabel.provider t
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Fix off-by-one error in Assertion.