diff options
Diffstat (limited to 'contrib/intarray/_intbig_gist.c')
-rw-r--r-- | contrib/intarray/_intbig_gist.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c index d9557a6b11a..eb8f2826349 100644 --- a/contrib/intarray/_intbig_gist.c +++ b/contrib/intarray/_intbig_gist.c @@ -153,13 +153,13 @@ g_intbig_compress(PG_FUNCTION_ARGS) if (entry->leafkey) { GISTENTRY *retval; - ArrayType *in = (ArrayType *) PG_DETOAST_DATUM(entry->key); + ArrayType *in = DatumGetArrayTypeP(entry->key); int4 *ptr; int num; GISTTYPE *res = (GISTTYPE *) palloc0(CALCGTSIZE(0)); CHECKARRVALID(in); - if (ARRISVOID(in)) + if (ARRISEMPTY(in)) { ptr = NULL; num = 0; @@ -182,7 +182,7 @@ g_intbig_compress(PG_FUNCTION_ARGS) entry->rel, entry->page, entry->offset, FALSE); - if (in != (ArrayType *) PG_DETOAST_DATUM(entry->key)) + if (in != DatumGetArrayTypeP(entry->key)) pfree(in); PG_RETURN_POINTER(retval); @@ -504,7 +504,7 @@ Datum g_intbig_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - ArrayType *query = (ArrayType *) PG_DETOAST_DATUM(PG_GETARG_POINTER(1)); + ArrayType *query = PG_GETARG_ARRAYTYPE_P(1); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); /* Oid subtype = PG_GETARG_OID(3); */ @@ -527,11 +527,6 @@ g_intbig_consistent(PG_FUNCTION_ARGS) } CHECKARRVALID(query); - if (ARRISVOID(query)) - { - PG_FREE_IF_COPY(query, 1); - PG_RETURN_BOOL(FALSE); - } switch (strategy) { @@ -548,8 +543,6 @@ g_intbig_consistent(PG_FUNCTION_ARGS) BITVECP dq, de; - CHECKARRVALID(query); - memset(qp, 0, sizeof(BITVEC)); while (num--) @@ -589,8 +582,6 @@ g_intbig_consistent(PG_FUNCTION_ARGS) BITVECP dq, de; - CHECKARRVALID(query); - memset(qp, 0, sizeof(BITVEC)); while (num--) |