43#include "utils/fmgrprotos.h"
340 which = (1 << 1) | (1 << 2);
403 elog(
ERROR,
"unrecognized range strategy: %d", strategy);
432 which = (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5);
454 bool inclusive =
true;
470 lower.inclusive =
true;
471 lower.infinite =
false;
475 upper.inclusive =
true;
476 upper.infinite =
false;
580 which1 = (1 << 1) | (1 << 4);
582 which1 = (1 << 2) | (1 << 3);
596 which2 = (1 << 1) | (1 << 2);
598 which2 = (1 << 3) | (1 << 4);
621 which &= (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4);
653 elog(
ERROR,
"unrecognized range strategy: %d", strategy);
668 which &= (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4);
685 which &= (1 << 1) | (1 << 2) | (1 << 5);
700 if (
cmp > 0 || (!inclusive &&
cmp == 0))
701 which &= (1 << 3) | (1 << 4) | (1 << 5);
712 which &= (1 << 1) | (1 << 4) | (1 << 5);
727 if (
cmp > 0 || (!inclusive &&
cmp == 0))
728 which &= (1 << 2) | (1 << 3) | (1 << 5);
986 elog(
ERROR,
"unrecognized range strategy: %d",
#define Assert(condition)
Datum datumCopy(Datum value, bool typByVal, int typLen)
#define palloc_array(type, count)
#define PG_GETARG_POINTER(n)
#define PG_RETURN_BOOL(x)
Datum lower(PG_FUNCTION_ARGS)
Datum upper(PG_FUNCTION_ARGS)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
void qsort_arg(void *base, size_t nel, size_t elsize, qsort_arg_comparator cmp, void *arg)
static Datum PointerGetDatum(const void *X)
static Pointer DatumGetPointer(Datum X)
int range_cmp_bounds(TypeCacheEntry *typcache, const RangeBound *b1, const RangeBound *b2)
RangeType * range_serialize(TypeCacheEntry *typcache, RangeBound *lower, RangeBound *upper, bool empty, struct Node *escontext)
bool range_contained_by_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_contains_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_after_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool bounds_adjacent(TypeCacheEntry *typcache, RangeBound boundA, RangeBound boundB)
bool range_overlaps_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_before_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_overright_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_contains_elem_internal(TypeCacheEntry *typcache, const RangeType *r, Datum val)
void range_deserialize(TypeCacheEntry *typcache, const RangeType *range, RangeBound *lower, RangeBound *upper, bool *empty)
bool range_eq_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
bool range_adjacent_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
TypeCacheEntry * range_get_typcache(FunctionCallInfo fcinfo, Oid rngtypid)
bool range_overleft_internal(TypeCacheEntry *typcache, const RangeType *r1, const RangeType *r2)
#define RANGESTRAT_OVERLAPS
static RangeType * DatumGetRangeTypeP(Datum X)
#define RANGESTRAT_BEFORE
#define RANGESTRAT_OVERRIGHT
#define RANGESTRAT_OVERLEFT
#define RANGESTRAT_CONTAINED_BY
static Datum RangeTypePGetDatum(const RangeType *X)
#define RANGESTRAT_ADJACENT
#define RANGESTRAT_CONTAINS_ELEM
#define RANGESTRAT_CONTAINS
#define RangeTypeGetOid(r)
static int adjacent_inner_consistent(TypeCacheEntry *typcache, const RangeBound *arg, const RangeBound *centroid, const RangeBound *prev)
Datum spg_range_quad_config(PG_FUNCTION_ARGS)
Datum spg_range_quad_leaf_consistent(PG_FUNCTION_ARGS)
Datum spg_range_quad_picksplit(PG_FUNCTION_ARGS)
static int adjacent_cmp_bounds(TypeCacheEntry *typcache, const RangeBound *arg, const RangeBound *centroid)
Datum spg_range_quad_inner_consistent(PG_FUNCTION_ARGS)
Datum spg_range_quad_choose(PG_FUNCTION_ARGS)
static int bound_cmp(const void *a, const void *b, void *arg)
static int16 getQuadrant(TypeCacheEntry *typcache, const RangeType *centroid, const RangeType *tst)
static int cmp(const chr *x, const chr *y, size_t len)
static struct cvec * range(struct vars *v, chr a, chr b, int cases)
StrategyNumber sk_strategy
spgChooseResultType resultType
union spgChooseOut::@54 result
struct spgChooseOut::@54::@55 matchNode
MemoryContext traversalMemoryContext