Files
Tom Lane c86de6d4bb Pre-beta mechanical code beautification, step 1: run pgindent.
Update typedefs.list from the buildfarm, and run pgindent.
The changes from the new typedefs list are pretty minimal,
since we'd been pretty good (not perfect) about updating
typedefs.list by hand.  But the pgindent behavior changes
installed by d927b9df3, 447ebfcb5, and 22c48a12f add up
to make this a relatively sizable diff.
2026-05-13 10:34:17 -04:00

85 lines
1.8 KiB
C

/*
* contrib/btree_gist/btree_gist.c
*/
#include "postgres.h"
#include "access/cmptype.h"
#include "access/stratnum.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC_EXT(
.name = "btree_gist",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(gbt_decompress);
PG_FUNCTION_INFO_V1(gbtreekey_in);
PG_FUNCTION_INFO_V1(gbtreekey_out);
PG_FUNCTION_INFO_V1(gist_translate_cmptype_btree);
/**************************************************
* In/Out for keys
**************************************************/
Datum
gbtreekey_in(PG_FUNCTION_ARGS)
{
Oid typioparam = PG_GETARG_OID(1);
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot accept a value of type %s",
format_type_extended(typioparam, -1,
FORMAT_TYPE_ALLOW_INVALID))));
PG_RETURN_VOID(); /* keep compiler quiet */
}
Datum
gbtreekey_out(PG_FUNCTION_ARGS)
{
/* Sadly, we do not receive any indication of the specific type */
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot display a value of type %s", "gbtreekey?")));
PG_RETURN_VOID(); /* keep compiler quiet */
}
/*
* GiST DeCompress methods
* do not do anything.
*/
Datum
gbt_decompress(PG_FUNCTION_ARGS)
{
PG_RETURN_POINTER(PG_GETARG_POINTER(0));
}
/*
* Returns the btree number for supported operators, otherwise invalid.
*/
Datum
gist_translate_cmptype_btree(PG_FUNCTION_ARGS)
{
CompareType cmptype = PG_GETARG_INT32(0);
switch (cmptype)
{
case COMPARE_EQ:
PG_RETURN_UINT16(BTEqualStrategyNumber);
case COMPARE_LT:
PG_RETURN_UINT16(BTLessStrategyNumber);
case COMPARE_LE:
PG_RETURN_UINT16(BTLessEqualStrategyNumber);
case COMPARE_GT:
PG_RETURN_UINT16(BTGreaterStrategyNumber);
case COMPARE_GE:
PG_RETURN_UINT16(BTGreaterEqualStrategyNumber);
default:
PG_RETURN_UINT16(InvalidStrategy);
}
}