13 #define GETENTRY(vec,pos) ((ArrayType *) DatumGetPointer((vec)->vector[(pos)].key))
108 for (i = 0; i < entryvec->
n; i++)
119 for (i = 0; i < entryvec->
n; i++)
157 elog(
NOTICE,
"input array is too big (%d maximum allowed, %d current), use gist__intbig_ops opclass instead",
189 for (i = len - 1; i >= 0; i--)
190 dr[2 * i] = dr[2 * i + 1] = dr[i];
197 for (i = 2; i < len; i += 2)
198 if (min > (dr[i] - dr[i - 1]))
200 min = (dr[
i] - dr[i - 1]);
203 memmove((
void *) &dr[cand - 1], (
void *) &dr[cand + 1], (len - cand - 1) *
sizeof(
int32));
267 for (i = 0; i < lenin; i += 2)
268 for (j = din[i]; j <= din[i + 1]; j++)
269 if ((!i) || *(dr - 1) != j)
298 *result = tmp1 - tmp2;
398 maxoff = entryvec->
n - 2;
407 datum_alpha =
GETENTRY(entryvec, i);
418 size_waste = size_union - size_inter;
427 if (size_waste > waste || firsttime)
441 if (seed_1 == 0 || seed_2 == 0)
447 datum_alpha =
GETENTRY(entryvec, seed_1);
450 datum_beta =
GETENTRY(entryvec, seed_2);
462 costvector[i - 1].
pos =
i;
463 datum_alpha =
GETENTRY(entryvec, i);
470 costvector[i - 1].
cost =
Abs((size_alpha - size_l) - (size_beta - size_r));
487 for (j = 0; j < maxoff; j++)
489 i = costvector[j].
pos;
503 else if (i == seed_2)
511 datum_alpha =
GETENTRY(entryvec, i);
#define PG_RETURN_POINTER(x)
#define RTOldContainsStrategyNumber
#define RTOldContainedByStrategyNumber
void rt__int_size(ArrayType *a, float *size)
#define PG_GETARG_ARRAYTYPE_P_COPY(n)
#define PointerGetDatum(X)
Datum g_int_penalty(PG_FUNCTION_ARGS)
Datum g_int_consistent(PG_FUNCTION_ARGS)
Datum g_int_compress(PG_FUNCTION_ARGS)
int internal_size(int *a, int len)
ArrayType * inner_int_inter(ArrayType *a, ArrayType *b)
#define GETENTRY(vec, pos)
#define RTContainedByStrategyNumber
#define PG_GETARG_POINTER(n)
Datum g_int_same(PG_FUNCTION_ARGS)
#define QSORT(a, direction)
Datum g_int_union(PG_FUNCTION_ARGS)
#define PG_GETARG_ARRAYTYPE_P(n)
void pfree(void *pointer)
ArrayType * copy_intArrayType(ArrayType *a)
bool inner_int_overlap(ArrayType *a, ArrayType *b)
ArrayType * resize_intArrayType(ArrayType *a, int num)
PG_FUNCTION_INFO_V1(g_int_consistent)
#define FirstOffsetNumber
#define RTSameStrategyNumber
#define DirectFunctionCall3(func, arg1, arg2, arg3)
bool inner_int_contains(ArrayType *a, ArrayType *b)
ArrayType * new_intArrayType(int num)
ArrayType * _int_unique(ArrayType *a)
#define PG_RETURN_BOOL(x)
#define DatumGetArrayTypePCopy(X)
static int comparecost(const void *a, const void *b)
Datum g_int_decompress(PG_FUNCTION_ARGS)
bool execconsistent(QUERYTYPE *query, ArrayType *array, bool calcnot)
ArrayType * inner_int_union(ArrayType *a, ArrayType *b)
#define gistentryinit(e, k, r, pg, o, l)
#define BooleanSearchStrategy
#define OffsetNumberNext(offsetNumber)
#define RTContainsStrategyNumber
#define PG_GETARG_UINT16(n)
#define DatumGetPointer(X)
#define RTOverlapStrategyNumber
#define qsort(a, b, c, d)
Datum g_int_picksplit(PG_FUNCTION_ARGS)
#define DatumGetArrayTypeP(X)