pgsql: Change gist stratnum function to use CompareType

Started by Peter Eisentrautover 1 year ago3 messagescomitters
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

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: /messages/by-id/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(-)

#2Melanie Plageman
melanieplageman@gmail.com
In reply to: Peter Eisentraut (#1)
Re: pgsql: Change gist stratnum function to use CompareType

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]https://github.com/postgres/postgres/runs/35644016115 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

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Melanie Plageman (#2)
Re: pgsql: Change gist stratnum function to use CompareType

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.