47#include "utils/fmgrprotos.h"
70#define SPGIST_MAX_PREFIX_LENGTH Max((int) (BLCKSZ - 258 * 16 - 100), 32)
82#define SPG_STRATEGY_ADDITION (10)
83#define SPG_IS_COLLATION_AWARE_STRATEGY(s) ((s) > SPG_STRATEGY_ADDITION \
84 && (s) != RTPrefixStrategyNumber)
432 text *reconstructedValue;
551 elog(
ERROR,
"unrecognized strategy number: %d",
579 int level = in->
level;
691 elog(
ERROR,
"unrecognized strategy number: %d",
#define Assert(condition)
Datum datumCopy(Datum value, bool typByVal, int typLen)
#define palloc_object(type)
#define palloc_array(type, count)
Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2)
#define DatumGetTextPP(X)
#define PG_GETARG_POINTER(n)
#define PG_GET_COLLATION()
#define PG_RETURN_BOOL(x)
static int pg_cmp_s16(int16 a, int16 b)
bool pg_verifymbstr(const char *mbstr, int len, bool noError)
pg_locale_t pg_newlocale_from_collation(Oid collid)
#define qsort(a, b, c, d)
static bool DatumGetBool(Datum X)
static Datum PointerGetDatum(const void *X)
static Datum Int16GetDatum(int16 X)
static Pointer DatumGetPointer(Datum X)
static int16 DatumGetInt16(Datum X)
Datum spg_text_config(PG_FUNCTION_ARGS)
static int commonPrefix(const char *a, const char *b, int lena, int lenb)
#define SPG_IS_COLLATION_AWARE_STRATEGY(s)
static int cmpNodePtr(const void *a, const void *b)
#define SPGIST_MAX_PREFIX_LENGTH
#define SPG_STRATEGY_ADDITION
Datum spg_text_leaf_consistent(PG_FUNCTION_ARGS)
Datum spg_text_inner_consistent(PG_FUNCTION_ARGS)
static Datum formTextDatum(const char *data, int datalen)
Datum spg_text_choose(PG_FUNCTION_ARGS)
static bool searchChar(const Datum *nodeLabels, int nNodes, int16 c, int *i)
Datum spg_text_picksplit(PG_FUNCTION_ARGS)
#define RTPrefixStrategyNumber
#define BTGreaterStrategyNumber
#define BTLessStrategyNumber
#define BTEqualStrategyNumber
#define BTLessEqualStrategyNumber
#define BTGreaterEqualStrategyNumber
StrategyNumber sk_strategy
spgChooseResultType resultType
struct spgChooseOut::@54::@57 splitTuple
struct spgChooseOut::@54::@56 addNode
union spgChooseOut::@54 result
struct spgChooseOut::@54::@55 matchNode
Datum * reconstructedValues
static Size VARSIZE_ANY_EXHDR(const void *PTR)
static char * VARDATA(const void *PTR)
static char * VARDATA_ANY(const void *PTR)
static void SET_VARSIZE_SHORT(void *PTR, Size len)
static void SET_VARSIZE(void *PTR, Size len)
int varstr_cmp(const char *arg1, int len1, const char *arg2, int len2, Oid collid)
Datum text_starts_with(PG_FUNCTION_ARGS)