Обсуждение: pgsql: Change gist stratnum function to use CompareType
Change gist stratnum function to use CompareType This changes commit 7406ab623fe in that the gist strategy number mapping support function is changed to use the CompareType enum as input, instead of the "well-known" RT*StrategyNumber strategy numbers. This is a bit cleaner, since you are not dealing with two sets of strategy numbers. Also, this will enable us to subsume this system into a more general system of using CompareType to define operator semantics across index methods. Discussion: https://www.postgresql.org/message-id/flat/E72EAA49-354D-4C2E-8EB9-255197F55330@enterprisedb.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/630f9a43cece93cb4a5c243b30e34abce6a89514 Modified Files -------------- contrib/btree_gist/btree_gist--1.7--1.8.sql | 54 ++++++++++++++-------------- contrib/btree_gist/btree_gist.c | 15 ++++---- contrib/btree_gist/expected/stratnum.out | 4 +-- contrib/btree_gist/sql/stratnum.sql | 4 +-- doc/src/sgml/gist.sgml | 24 ++++++------- doc/src/sgml/xindex.sgml | 2 +- src/backend/access/gist/gistutil.c | 35 +++++++++++++----- src/backend/access/gist/gistvalidate.c | 2 +- src/backend/catalog/pg_constraint.c | 20 +++++------ src/backend/commands/indexcmds.c | 50 +++++++++++++------------- src/backend/commands/tablecmds.c | 10 +++--- src/backend/executor/execReplication.c | 2 +- src/include/access/gist.h | 3 +- src/include/catalog/pg_amproc.dat | 12 +++---- src/include/catalog/pg_proc.dat | 6 ++-- src/include/commands/defrem.h | 4 +-- src/include/nodes/primnodes.h | 4 ++- src/test/regress/expected/misc_functions.out | 16 ++++----- src/test/regress/sql/misc_functions.sql | 4 +-- 19 files changed, 145 insertions(+), 126 deletions(-)
On Wed, Jan 15, 2025 at 5:41 AM Peter Eisentraut <peter@eisentraut.org> wrote: > > Change gist stratnum function to use CompareType > > This changes commit 7406ab623fe in that the gist strategy number > mapping support function is changed to use the CompareType enum as > input, instead of the "well-known" RT*StrategyNumber strategy numbers. > > This is a bit cleaner, since you are not dealing with two sets of > strategy numbers. Also, this will enable us to subsume this system > into a more general system of using CompareType to define operator > semantics across index methods. This appears to fail the headers_cpluspluscheck job in CI [1] with /tmp/cirrus-ci-build/src/include/access/gist.h:251:63: error: use of enum ‘CompareType’ without previous declaration 251 | extern StrategyNumber GistTranslateStratnum(Oid opclass, enum CompareType cmp); - Melanie [1] https://github.com/postgres/postgres/runs/35644016115
On 15.01.25 22:36, Melanie Plageman wrote: > On Wed, Jan 15, 2025 at 5:41 AM Peter Eisentraut <peter@eisentraut.org> wrote: >> >> Change gist stratnum function to use CompareType >> >> This changes commit 7406ab623fe in that the gist strategy number >> mapping support function is changed to use the CompareType enum as >> input, instead of the "well-known" RT*StrategyNumber strategy numbers. >> >> This is a bit cleaner, since you are not dealing with two sets of >> strategy numbers. Also, this will enable us to subsume this system >> into a more general system of using CompareType to define operator >> semantics across index methods. > > This appears to fail the headers_cpluspluscheck job in CI [1] with > > /tmp/cirrus-ci-build/src/include/access/gist.h:251:63: error: use of > enum ‘CompareType’ without previous declaration > 251 | extern StrategyNumber GistTranslateStratnum(Oid opclass, enum > CompareType cmp); Fixed, thanks.