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

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 586b98f) | patch
Add text-vs-name cross-type operators, and unify name_ops with text_ops.
2018年12月19日 22:46:07 +0000 (17:46 -0500)
2018年12月19日 22:46:25 +0000 (17:46 -0500)
commit 2ece7c07dc9a14667c64f107686573590b7e45c3
Add text-vs-name cross-type operators, and unify name_ops with text_ops.

Now that name comparison has effectively the same behavior as text
comparison, we might as well merge the name_ops opfamily into text_ops,
allowing cross-type comparisons to be processed without forcing a
datatype coercion first. We need do little more than add cross-type
operators to make the opfamily complete, and fix one or two places
in the planner that assumed text_ops was a single-datatype opfamily.

I chose to unify hash name_ops into hash text_ops as well, since the
types have compatible hashing semantics. This allows marking the
new cross-type equality operators as oprcanhash.

(Note: this doesn't remove the name_ops opclasses, so there's no
breakage of index definitions. Those opclasses are just reparented
into the text_ops opfamily.)

Discussion: https://postgr.es/m/15938.1544377821@sss.pgh.pa.us
13 files changed:
src/backend/optimizer/path/indxpath.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/include/catalog/catversion.h diff | blob | blame | history
src/include/catalog/pg_amop.dat diff | blob | blame | history
src/include/catalog/pg_amproc.dat diff | blob | blame | history
src/include/catalog/pg_opclass.dat diff | blob | blame | history
src/include/catalog/pg_operator.dat diff | blob | blame | history
src/include/catalog/pg_opfamily.dat diff | blob | blame | history
src/include/catalog/pg_proc.dat diff | blob | blame | history
src/test/regress/expected/opr_sanity.out diff | blob | blame | history
src/test/regress/expected/regex.out diff | blob | blame | history
src/test/regress/expected/select_views.out diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

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