79 memcpy(
VARDATA(r), u, lowersize);
179 out = (memcmp(q, n, nlen) == 0);
212 len1 =
Min(len1, (cpf_length + 1));
213 len2 =
Min(len2, (cpf_length + 1));
325 numranges = entryvec->
n;
336 for (
i = 1;
i < numranges;
i++)
422 unsigned char tmp[4];
428 dres = abs(tmp[0] - tmp[1]) + abs(tmp[3] - tmp[2]);
433 *
res += (float) (dres / ((
double) (ol + 1)));
461 maxoff = entryvec->
n - 1;
491 arr[
i].
t = sv[svcntr];
567 retval =
tinfo->
f_ge(query,
key->lower, collation, flinfo);
569 retval =
tinfo->
f_cmp(query,
key->lower, collation, flinfo) >= 0
574 retval =
tinfo->
f_gt(query,
key->lower, collation, flinfo);
576 retval =
tinfo->
f_cmp(query,
key->lower, collation, flinfo) >= 0
581 retval =
tinfo->
f_eq(query,
key->lower, collation, flinfo);
590 retval =
tinfo->
f_lt(query,
key->upper, collation, flinfo);
592 retval =
tinfo->
f_cmp(query,
key->upper, collation, flinfo) <= 0
597 retval =
tinfo->
f_le(query,
key->upper, collation, flinfo);
599 retval =
tinfo->
f_cmp(query,
key->upper, collation, flinfo) <= 0
603 retval = !(
tinfo->
f_eq(query,
key->lower, collation, flinfo) &&
static const gbtree_vinfo tinfo
#define BtreeGistNotEqualStrategyNumber
GBT_VARKEY * gbt_var_union(const GistEntryVector *entryvec, int32 *size, Oid collation, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
static bool gbt_var_node_pf_match(const GBT_VARKEY_R *node, const bytea *query, const gbtree_vinfo *tinfo)
static int32 gbt_var_node_cp_len(const GBT_VARKEY *node, const gbtree_vinfo *tinfo)
static GBT_VARKEY * gbt_var_key_from_datum(const struct varlena *u)
bool gbt_var_consistent(GBT_VARKEY_R *key, const void *query, StrategyNumber strategy, Oid collation, bool is_leaf, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
Datum gbt_var_fetch(PG_FUNCTION_ARGS)
GISTENTRY * gbt_var_compress(GISTENTRY *entry, const gbtree_vinfo *tinfo)
static GBT_VARKEY * gbt_var_node_truncate(const GBT_VARKEY *node, int32 cpf_length, const gbtree_vinfo *tinfo)
PG_FUNCTION_INFO_V1(gbt_var_decompress)
Datum gbt_var_decompress(PG_FUNCTION_ARGS)
GIST_SPLITVEC * gbt_var_picksplit(const GistEntryVector *entryvec, GIST_SPLITVEC *v, Oid collation, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
GBT_VARKEY_R gbt_var_key_readable(const GBT_VARKEY *k)
float * gbt_var_penalty(float *res, const GISTENTRY *o, const GISTENTRY *n, Oid collation, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
static int gbt_vsrt_cmp(const void *a, const void *b, void *arg)
GBT_VARKEY * gbt_var_key_copy(const GBT_VARKEY_R *u)
static bool gbt_bytea_pf_match(const bytea *pf, const bytea *query, const gbtree_vinfo *tinfo)
bool gbt_var_same(Datum d1, Datum d2, Oid collation, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
static GBT_VARKEY * gbt_var_leaf2node(GBT_VARKEY *leaf, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
void gbt_var_bin_union(Datum *u, GBT_VARKEY *e, Oid collation, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
static void PGresult const char * p2
static void PGresult * res
#define PG_GETARG_POINTER(n)
#define PG_DETOAST_DATUM(datum)
#define PG_RETURN_POINTER(x)
#define gistentryinit(e, k, r, pg, o, l)
int pg_mblen(const char *mbstr)
void * palloc0(Size size)
#define OffsetNumberNext(offsetNumber)
#define FirstOffsetNumber
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)
static pg_noinline void Size size
#define BTGreaterStrategyNumber
#define BTLessStrategyNumber
#define BTEqualStrategyNumber
#define BTLessEqualStrategyNumber
#define BTGreaterEqualStrategyNumber
GISTENTRY vector[FLEXIBLE_ARRAY_MEMBER]
const gbtree_vinfo * tinfo
int32(* f_cmp)(const void *, const void *, Oid, FmgrInfo *)
bool(* f_lt)(const void *, const void *, Oid, FmgrInfo *)
bool(* f_eq)(const void *, const void *, Oid, FmgrInfo *)
GBT_VARKEY *(* f_l2n)(GBT_VARKEY *, FmgrInfo *flinfo)
bool(* f_gt)(const void *, const void *, Oid, FmgrInfo *)
bool(* f_ge)(const void *, const void *, Oid, FmgrInfo *)
bool(* f_le)(const void *, const void *, Oid, FmgrInfo *)
#define SET_VARSIZE(PTR, len)