git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: ea42cc1) | patch
ICU support
2017年3月23日 19:25:34 +0000 (15:25 -0400)
2017年3月23日 19:28:48 +0000 (15:28 -0400)
commit eccfef81e1f73ee41f1d8bfe4fa4e80576945048
ICU support

Add a column collprovider to pg_collation that determines which library
provides the collation data. The existing choices are default and libc,
and this adds an icu choice, which uses the ICU4C library.

The pg_locale_t type is changed to a union that contains the
provider-specific locale handles. Users of locale information are
changed to look into that struct for the appropriate handle to use.

Also add a collversion column that records the version of the collation
when it is created, and check at run time whether it is still the same.
This detects potentially incompatible library upgrades that can corrupt
indexes and other structures. This is currently only supported by
ICU-provided collations.

initdb initializes the default collation set as before from the `locale
-a` output but also adds all available ICU locales with a "-x-icu"
appended.

Currently, ICU-provided collations can only be explicitly named
collations. The global database locales are still always libc-provided.

ICU support is enabled by configure --with-icu.

Reviewed-by: Thomas Munro <thomas.munro@enterprisedb.com>
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
45 files changed:
aclocal.m4 diff | blob | blame | history
config/pkg.m4 [new file with mode: 0644] blob
configure diff | blob | blame | history
configure.in diff | blob | blame | history
doc/src/sgml/catalogs.sgml diff | blob | blame | history
doc/src/sgml/charset.sgml diff | blob | blame | history
doc/src/sgml/func.sgml diff | blob | blame | history
doc/src/sgml/installation.sgml diff | blob | blame | history
doc/src/sgml/mvcc.sgml diff | blob | blame | history
doc/src/sgml/ref/alter_collation.sgml diff | blob | blame | history
doc/src/sgml/ref/create_collation.sgml diff | blob | blame | history
src/Makefile.global.in diff | blob | blame | history
src/backend/Makefile diff | blob | blame | history
src/backend/catalog/pg_collation.c diff | blob | blame | history
src/backend/commands/collationcmds.c diff | blob | blame | history
src/backend/common.mk diff | blob | blame | history
src/backend/nodes/copyfuncs.c diff | blob | blame | history
src/backend/nodes/equalfuncs.c diff | blob | blame | history
src/backend/parser/gram.y diff | blob | blame | history
src/backend/regex/regc_pg_locale.c diff | blob | blame | history
src/backend/tcop/utility.c diff | blob | blame | history
src/backend/utils/adt/formatting.c diff | blob | blame | history
src/backend/utils/adt/like.c diff | blob | blame | history
src/backend/utils/adt/pg_locale.c diff | blob | blame | history
src/backend/utils/adt/selfuncs.c diff | blob | blame | history
src/backend/utils/adt/varlena.c diff | blob | blame | history
src/backend/utils/mb/encnames.c diff | blob | blame | history
src/bin/initdb/initdb.c diff | blob | blame | history
src/bin/pg_dump/pg_dump.c diff | blob | blame | history
src/bin/pg_dump/t/002_pg_dump.pl diff | blob | blame | history
src/bin/psql/describe.c diff | blob | blame | history
src/include/catalog/pg_collation.h diff | blob | blame | history
src/include/catalog/pg_collation_fn.h diff | blob | blame | history
src/include/catalog/pg_proc.h diff | blob | blame | history
src/include/commands/collationcmds.h diff | blob | blame | history
src/include/mb/pg_wchar.h diff | blob | blame | history
src/include/nodes/nodes.h diff | blob | blame | history
src/include/nodes/parsenodes.h diff | blob | blame | history
src/include/pg_config.h.in diff | blob | blame | history
src/include/utils/pg_locale.h diff | blob | blame | history
src/test/regress/GNUmakefile diff | blob | blame | history
src/test/regress/expected/collate.icu.out [new file with mode: 0644] blob
src/test/regress/expected/collate.linux.utf8.out diff | blob | blame | history
src/test/regress/sql/collate.icu.sql [new file with mode: 0644] blob
src/test/regress/sql/collate.linux.utf8.sql diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /