mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Rename gist stratnum support function
Commit7406ab623f
added a gist support function that we internally refer to by the symbol GIST_STRATNUM_PROC. This translated from "well-known" strategy numbers to opfamily-specific strategy numbers. However, we later (commit630f9a43ce
) changed this to fit into index-AM-level compare type mapping, so this function actually now maps from compare type to opfamily-specific strategy numbers. So this name is no longer fitting. Moreover, the index AM level also supports the opposite, a function to map from strategy number to compare type. This is currently not supported in gist, but one might wonder what this function is supposed to be called when it is added. This patch changes the naming of the gist-level functionality to be more in line with the index-AM-level functionality. This makes sense because these are essentially the same thing on different levels. This also changes the names of the externally visible functions that are provided for use as such a support function. Reviewed-by: Paul A Jungwirth <pj@illuminatedcomputing.com> Discussion: https://www.postgresql.org/message-id/37ebb1d9-9036-485f-a215-e55435689917%40eisentraut.org
This commit is contained in:
@ -1058,11 +1058,11 @@ gistGetFakeLSN(Relation rel)
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a stratnum support function for GiST opclasses that use the
|
||||
* RT*StrategyNumber constants.
|
||||
* This is a stratnum translation support function for GiST opclasses that use
|
||||
* the RT*StrategyNumber constants.
|
||||
*/
|
||||
Datum
|
||||
gist_stratnum_common(PG_FUNCTION_ARGS)
|
||||
gist_translate_cmptype_common(PG_FUNCTION_ARGS)
|
||||
{
|
||||
CompareType cmptype = PG_GETARG_INT32(0);
|
||||
|
||||
@ -1090,9 +1090,9 @@ gist_stratnum_common(PG_FUNCTION_ARGS)
|
||||
/*
|
||||
* Returns the opclass's private stratnum used for the given compare type.
|
||||
*
|
||||
* Calls the opclass's GIST_STRATNUM_PROC support function, if any,
|
||||
* and returns the result.
|
||||
* Returns InvalidStrategy if the function is not defined.
|
||||
* Calls the opclass's GIST_TRANSLATE_CMPTYPE_PROC support function, if any,
|
||||
* and returns the result. Returns InvalidStrategy if the function is not
|
||||
* defined.
|
||||
*/
|
||||
StrategyNumber
|
||||
gisttranslatecmptype(CompareType cmptype, Oid opfamily)
|
||||
@ -1101,7 +1101,7 @@ gisttranslatecmptype(CompareType cmptype, Oid opfamily)
|
||||
Datum result;
|
||||
|
||||
/* Check whether the function is provided. */
|
||||
funcid = get_opfamily_proc(opfamily, ANYOID, ANYOID, GIST_STRATNUM_PROC);
|
||||
funcid = get_opfamily_proc(opfamily, ANYOID, ANYOID, GIST_TRANSLATE_CMPTYPE_PROC);
|
||||
if (!OidIsValid(funcid))
|
||||
return InvalidStrategy;
|
||||
|
||||
|
@ -138,7 +138,7 @@ gistvalidate(Oid opclassoid)
|
||||
ok = check_amproc_signature(procform->amproc, VOIDOID, true,
|
||||
1, 1, INTERNALOID);
|
||||
break;
|
||||
case GIST_STRATNUM_PROC:
|
||||
case GIST_TRANSLATE_CMPTYPE_PROC:
|
||||
ok = check_amproc_signature(procform->amproc, INT2OID, true,
|
||||
1, 1, INT4OID) &&
|
||||
procform->amproclefttype == ANYOID &&
|
||||
@ -265,7 +265,7 @@ gistvalidate(Oid opclassoid)
|
||||
if (i == GIST_DISTANCE_PROC || i == GIST_FETCH_PROC ||
|
||||
i == GIST_COMPRESS_PROC || i == GIST_DECOMPRESS_PROC ||
|
||||
i == GIST_OPTIONS_PROC || i == GIST_SORTSUPPORT_PROC ||
|
||||
i == GIST_STRATNUM_PROC)
|
||||
i == GIST_TRANSLATE_CMPTYPE_PROC)
|
||||
continue; /* optional methods */
|
||||
ereport(INFO,
|
||||
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
|
||||
@ -336,7 +336,7 @@ gistadjustmembers(Oid opfamilyoid,
|
||||
case GIST_FETCH_PROC:
|
||||
case GIST_OPTIONS_PROC:
|
||||
case GIST_SORTSUPPORT_PROC:
|
||||
case GIST_STRATNUM_PROC:
|
||||
case GIST_TRANSLATE_CMPTYPE_PROC:
|
||||
/* Optional, so force it to be a soft family dependency */
|
||||
op->ref_is_hard = false;
|
||||
op->ref_is_family = true;
|
||||
|
@ -40,7 +40,7 @@
|
||||
#define GIST_FETCH_PROC 9
|
||||
#define GIST_OPTIONS_PROC 10
|
||||
#define GIST_SORTSUPPORT_PROC 11
|
||||
#define GIST_STRATNUM_PROC 12
|
||||
#define GIST_TRANSLATE_CMPTYPE_PROC 12
|
||||
#define GISTNProcs 12
|
||||
|
||||
/*
|
||||
|
@ -57,6 +57,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 202505071
|
||||
#define CATALOG_VERSION_NO 202506021
|
||||
|
||||
#endif
|
||||
|
@ -533,7 +533,7 @@
|
||||
amprocrighttype => 'box', amprocnum => '8', amproc => 'gist_box_distance' },
|
||||
{ amprocfamily => 'gist/box_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
|
||||
amprocrighttype => 'polygon', amprocnum => '1',
|
||||
amproc => 'gist_poly_consistent' },
|
||||
@ -555,7 +555,7 @@
|
||||
amproc => 'gist_poly_distance' },
|
||||
{ amprocfamily => 'gist/poly_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
|
||||
amprocrighttype => 'circle', amprocnum => '1',
|
||||
amproc => 'gist_circle_consistent' },
|
||||
@ -576,7 +576,7 @@
|
||||
amproc => 'gist_circle_distance' },
|
||||
{ amprocfamily => 'gist/circle_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
|
||||
amprocrighttype => 'tsvector', amprocnum => '1',
|
||||
amproc => 'gtsvector_consistent(internal,tsvector,int2,oid,internal)' },
|
||||
@ -636,7 +636,7 @@
|
||||
amproc => 'range_sortsupport' },
|
||||
{ amprocfamily => 'gist/range_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
|
||||
amprocrighttype => 'inet', amprocnum => '1',
|
||||
amproc => 'inet_gist_consistent' },
|
||||
@ -655,7 +655,7 @@
|
||||
amprocrighttype => 'inet', amprocnum => '9', amproc => 'inet_gist_fetch' },
|
||||
{ amprocfamily => 'gist/network_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
{ amprocfamily => 'gist/multirange_ops', amproclefttype => 'anymultirange',
|
||||
amprocrighttype => 'anymultirange', amprocnum => '1',
|
||||
amproc => 'multirange_gist_consistent' },
|
||||
@ -676,7 +676,7 @@
|
||||
amproc => 'range_gist_same' },
|
||||
{ amprocfamily => 'gist/multirange_ops', amproclefttype => 'any',
|
||||
amprocrighttype => 'any', amprocnum => '12',
|
||||
amproc => 'gist_stratnum_common' },
|
||||
amproc => 'gist_translate_cmptype_common' },
|
||||
|
||||
# gin
|
||||
{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray',
|
||||
|
@ -12543,9 +12543,9 @@
|
||||
|
||||
# GiST stratnum implementations
|
||||
{ oid => '8047', descr => 'GiST support',
|
||||
proname => 'gist_stratnum_common', prorettype => 'int2',
|
||||
proname => 'gist_translate_cmptype_common', prorettype => 'int2',
|
||||
proargtypes => 'int4',
|
||||
prosrc => 'gist_stratnum_common' },
|
||||
prosrc => 'gist_translate_cmptype_common' },
|
||||
|
||||
# AIO related functions
|
||||
{ oid => '9200', descr => 'information about in-progress asynchronous IOs',
|
||||
|
@ -890,17 +890,17 @@ SELECT pg_column_toast_chunk_id(a) IS NULL,
|
||||
|
||||
DROP TABLE test_chunk_id;
|
||||
DROP FUNCTION explain_mask_costs(text, bool, bool, bool, bool);
|
||||
-- test stratnum support functions
|
||||
SELECT gist_stratnum_common(7);
|
||||
gist_stratnum_common
|
||||
----------------------
|
||||
3
|
||||
-- test stratnum translation support functions
|
||||
SELECT gist_translate_cmptype_common(7);
|
||||
gist_translate_cmptype_common
|
||||
-------------------------------
|
||||
3
|
||||
(1 row)
|
||||
|
||||
SELECT gist_stratnum_common(3);
|
||||
gist_stratnum_common
|
||||
----------------------
|
||||
18
|
||||
SELECT gist_translate_cmptype_common(3);
|
||||
gist_translate_cmptype_common
|
||||
-------------------------------
|
||||
18
|
||||
(1 row)
|
||||
|
||||
-- relpath tests
|
||||
|
@ -400,9 +400,9 @@ SELECT pg_column_toast_chunk_id(a) IS NULL,
|
||||
DROP TABLE test_chunk_id;
|
||||
DROP FUNCTION explain_mask_costs(text, bool, bool, bool, bool);
|
||||
|
||||
-- test stratnum support functions
|
||||
SELECT gist_stratnum_common(7);
|
||||
SELECT gist_stratnum_common(3);
|
||||
-- test stratnum translation support functions
|
||||
SELECT gist_translate_cmptype_common(7);
|
||||
SELECT gist_translate_cmptype_common(3);
|
||||
|
||||
|
||||
-- relpath tests
|
||||
|
Reference in New Issue
Block a user