pgsql: Per-column collation support

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема pgsql: Per-column collation support
Дата
Msg-id E1Pmumx-0008NA-P9@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Per-column collation support

This adds collation support for columns and domains, a COLLATE clause
to override it per expression, and B-tree index support.

Peter Eisentraut
reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=414c5a2ea65cbd38d79ffdf9b1fde7cc75c134e0

Modified Files
--------------
config/c-library.m4                              |   29 +
configure                                        |  108 ++++
configure.in                                     |    2 +
contrib/btree_gin/btree_gin.c                    |    4 +-
contrib/btree_gist/btree_text.c                  |   13 +-
contrib/btree_gist/btree_utils_var.c             |    3 +-
contrib/citext/citext.c                          |   35 +-
contrib/citext/citext.sql.in                     |    3 +-
contrib/ltree/lquery_op.c                        |    5 +-
doc/src/sgml/catalogs.sgml                       |  110 ++++
doc/src/sgml/charset.sgml                        |  164 +++++
doc/src/sgml/func.sgml                           |   15 +-
doc/src/sgml/indices.sgml                        |   42 ++
doc/src/sgml/ref/create_domain.sgml              |   12 +
doc/src/sgml/ref/create_index.sgml               |   16 +-
doc/src/sgml/ref/create_table.sgml               |   13 +-
doc/src/sgml/ref/create_type.sgml                |   11 +
doc/src/sgml/regress.sgml                        |   21 +
doc/src/sgml/syntax.sgml                         |   48 ++
src/backend/access/common/scankey.c              |   13 +
src/backend/access/common/tupdesc.c              |   35 +-
src/backend/access/gin/ginutil.c                 |    3 +
src/backend/access/index/indexam.c               |    2 +
src/backend/access/nbtree/nbtsearch.c            |    4 +
src/backend/bootstrap/bootstrap.c                |   50 +-
src/backend/catalog/Makefile                     |    2 +-
src/backend/catalog/genbki.pl                    |    1 +
src/backend/catalog/heap.c                       |    7 +-
src/backend/catalog/index.c                      |   15 +-
src/backend/catalog/namespace.c                  |  154 +++++
src/backend/catalog/pg_type.c                    |    5 +-
src/backend/catalog/system_views.sql             |    4 +
src/backend/catalog/toasting.c                   |    6 +-
src/backend/commands/analyze.c                   |    4 +
src/backend/commands/dbcommands.c                |    4 +-
src/backend/commands/functioncmds.c              |    4 +-
src/backend/commands/indexcmds.c                 |   26 +-
src/backend/commands/seclabel.c                  |    3 +
src/backend/commands/sequence.c                  |   20 +-
src/backend/commands/tablecmds.c                 |   54 ++-
src/backend/commands/typecmds.c                  |   31 +-
src/backend/commands/view.c                      |    3 +-
src/backend/executor/execQual.c                  |   37 +-
src/backend/executor/execTuples.c                |   12 +-
src/backend/executor/nodeAgg.c                   |   11 +-
src/backend/executor/nodeFunctionscan.c          |    7 +-
src/backend/executor/nodeIndexscan.c             |   11 +
src/backend/executor/nodeMergeAppend.c           |    3 +
src/backend/executor/nodeMergejoin.c             |    4 +
src/backend/executor/nodeSort.c                  |    1 +
src/backend/executor/nodeSubplan.c               |    2 +-
src/backend/executor/nodeWindowAgg.c             |    7 +-
src/backend/nodes/copyfuncs.c                    |   46 ++
src/backend/nodes/equalfuncs.c                   |   40 ++
src/backend/nodes/makefuncs.c                    |   17 +-
src/backend/nodes/nodeFuncs.c                    |  230 +++++++
src/backend/nodes/outfuncs.c                     |   53 ++
src/backend/nodes/readfuncs.c                    |   39 ++
src/backend/optimizer/path/costsize.c            |    4 +
src/backend/optimizer/path/indxpath.c            |   75 ++-
src/backend/optimizer/path/pathkeys.c            |   32 +-
src/backend/optimizer/plan/createplan.c          |   64 ++-
src/backend/optimizer/plan/planagg.c             |    3 +-
src/backend/optimizer/plan/setrefs.c             |    3 +
src/backend/optimizer/plan/subselect.c           |   40 +-
src/backend/optimizer/prep/prepjointree.c        |    1 +
src/backend/optimizer/prep/preptlist.c           |    4 +
src/backend/optimizer/prep/prepunion.c           |   21 +-
src/backend/optimizer/util/clauses.c             |   49 ++-
src/backend/optimizer/util/plancat.c             |    4 +
src/backend/optimizer/util/predtest.c            |    1 +
src/backend/parser/analyze.c                     |   17 +-
src/backend/parser/gram.y                        |   50 ++-
src/backend/parser/parse_agg.c                   |    6 +
src/backend/parser/parse_clause.c                |   10 +-
src/backend/parser/parse_coerce.c                |  132 ++++-
src/backend/parser/parse_cte.c                   |   26 +-
src/backend/parser/parse_expr.c                  |   53 ++
src/backend/parser/parse_func.c                  |   15 +-
src/backend/parser/parse_node.c                  |    8 +-
src/backend/parser/parse_oper.c                  |   16 +
src/backend/parser/parse_param.c                 |    3 +
src/backend/parser/parse_relation.c              |   33 +-
src/backend/parser/parse_target.c                |    9 +
src/backend/parser/parse_type.c                  |   97 +++-
src/backend/parser/parse_utilcmd.c               |    9 +-
src/backend/rewrite/rewriteHandler.c             |    2 +
src/backend/tsearch/ts_locale.c                  |   28 +-
src/backend/tsearch/wparser_def.c                |    6 +-
src/backend/utils/adt/arrayfuncs.c               |    5 +-
src/backend/utils/adt/format_type.c              |   25 +-
src/backend/utils/adt/formatting.c               |  140 +++--
src/backend/utils/adt/like.c                     |   16 +-
src/backend/utils/adt/oracle_compat.c            |    9 +-
src/backend/utils/adt/pg_locale.c                |  219 ++++++-
src/backend/utils/adt/ruleutils.c                |   77 +++-
src/backend/utils/adt/selfuncs.c                 |   46 +-
src/backend/utils/adt/varchar.c                  |   21 +-
src/backend/utils/adt/varlena.c                  |   34 +-
src/backend/utils/cache/lsyscache.c              |   94 +++
src/backend/utils/cache/relcache.c               |   35 +
src/backend/utils/cache/syscache.c               |   23 +
src/backend/utils/errcodes.txt                   |    2 +
src/backend/utils/fmgr/fmgr.c                    |   66 ++
src/backend/utils/fmgr/funcapi.c                 |    4 +-
src/backend/utils/mb/mbutils.c                   |   10 +-
src/backend/utils/sort/tuplesort.c               |    9 +-
src/bin/initdb/initdb.c                          |  189 ++++++-
src/bin/pg_dump/pg_dump.c                        |   47 ++-
src/bin/psql/describe.c                          |   23 +-
src/include/access/skey.h                        |    2 +
src/include/access/tupdesc.h                     |    6 +-
src/include/catalog/catversion.h                 |    2 +-
src/include/catalog/index.h                      |    1 +
src/include/catalog/indexing.h                   |    5 +
src/include/catalog/namespace.h                  |    4 +
src/include/catalog/pg_attribute.h               |   14 +-
src/include/catalog/pg_class.h                   |    4 +-
src/include/catalog/pg_collation.h               |   62 ++
src/include/catalog/pg_index.h                   |   12 +-
src/include/catalog/pg_proc.h                    |    6 +-
src/include/catalog/pg_type.h                    |  284 +++++----
src/include/catalog/pg_type_fn.h                 |    3 +-
src/include/commands/vacuum.h                    |    3 +-
src/include/fmgr.h                               |   18 +
src/include/mb/pg_wchar.h                        |    4 +-
src/include/nodes/makefuncs.h                    |    5 +-
src/include/nodes/nodeFuncs.h                    |    2 +
src/include/nodes/nodes.h                        |    1 +
src/include/nodes/parsenodes.h                   |   15 +-
src/include/nodes/pg_list.h                      |    9 +
src/include/nodes/plannodes.h                    |    4 +
src/include/nodes/primnodes.h                    |   29 +
src/include/nodes/relation.h                     |    3 +
src/include/optimizer/subselect.h                |    2 +-
src/include/parser/parse_agg.h                   |    1 +
src/include/parser/parse_coerce.h                |    2 +
src/include/parser/parse_node.h                  |    1 +
src/include/parser/parse_type.h                  |   11 +-
src/include/parser/parsetree.h                   |    2 +-
src/include/pg_config.h.in                       |    6 +
src/include/port.h                               |    2 +-
src/include/utils/builtins.h                     |    4 +-
src/include/utils/formatting.h                   |    6 +-
src/include/utils/lsyscache.h                    |    4 +
src/include/utils/pg_locale.h                    |   23 +-
src/include/utils/rel.h                          |    1 +
src/include/utils/selfuncs.h                     |    3 +-
src/include/utils/syscache.h                     |    2 +
src/include/utils/tuplesort.h                    |    4 +-
src/pl/plpgsql/src/pl_comp.c                     |    2 +-
src/port/chklocale.c                             |   21 +-
src/test/regress/GNUmakefile                     |    6 +-
src/test/regress/expected/collate.linux.utf8.out |  734 ++++++++++++++++++++++
src/test/regress/expected/sanity_check.out       |    3 +-
src/test/regress/sql/collate.linux.utf8.sql      |  224 +++++++
156 files changed, 4519 insertions(+), 582 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Fix typo, by Kevin Grittner.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix merge conflict.