datum = CashGetDatum(*(Cash *) entry->key);
break;
default:
- datum = PointerGetDatum(entry->key);
+ datum = entry->key;
}
retval = palloc(sizeof(GISTENTRY));
}
if (astate)
- PG_RETURN_ARRAYTYPE_P(makeArrayResult(astate,
+ PG_RETURN_DATUM(makeArrayResult(astate,
CurrentMemoryContext));
else
PG_RETURN_NULL();
tuple = heap_form_tuple(funcctx->tuple_desc, dvalues, nulls);
res = HeapTupleGetDatum(tuple);
- SRF_RETURN_NEXT(funcctx, PointerGetDatum(res));
+ SRF_RETURN_NEXT(funcctx, res);
}
SRF_RETURN_DONE(funcctx);
errmsg("unexpected end of tuple data")));
if (attr->attlen == -1 && do_detoast)
- attr_data = DatumGetByteaPCopy(tupdata + off);
+ attr_data = pg_detoast_datum_copy((struct varlena *) (tupdata + off));
else
{
attr_data = (bytea *) palloc(len + VARHDRSZ);
if (t_bits)
pfree(t_bits);
- PG_RETURN_ARRAYTYPE_P(res);
+ PG_RETURN_DATUM(res);
}
/*
StringInfoData str;
/* detoast the data to get value with a full 4B header */
- filter = (BloomFilter *) PG_DETOAST_DATUM(PG_GETARG_BYTEA_PP(0));
+ filter = (BloomFilter *) PG_DETOAST_DATUM_PACKED(PG_GETARG_DATUM(0));
initStringInfo(&str);
appendStringInfoChar(&str, '{');
datalen += MAXALIGN(typlen);
else if (typlen == -1) /* varlena */
{
- datalen += MAXALIGN(VARSIZE_ANY(DatumGetPointer(ptr)));
- ptr += VARSIZE_ANY(DatumGetPointer(ptr));
+ datalen += MAXALIGN(VARSIZE_ANY(ptr));
+ ptr += VARSIZE_ANY(ptr);
}
else if (typlen == -2) /* cstring */
{
- Size slen = strlen(DatumGetCString(ptr)) + 1;
+ Size slen = strlen(ptr) + 1;
datalen += MAXALIGN(slen);
ptr += slen;
* Detoast to get value with full 4B header (can't be stored in a toast
* table, but can use 1B header).
*/
- ranges = (SerializedRanges *) PG_DETOAST_DATUM(PG_GETARG_BYTEA_PP(0));
+ ranges = (SerializedRanges *) PG_DETOAST_DATUM_PACKED(PG_GETARG_DATUM(0));
/* lookup output func for the type */
getTypeOutputInfo(ranges->typid, &outfunc, &isvarlena);
getTypeOutputInfo(ANYARRAYOID, &typoutput, &typIsVarlena);
- val = PointerGetDatum(makeArrayResult(astate_values, CurrentMemoryContext));
+ val = makeArrayResult(astate_values, CurrentMemoryContext);
extval = OidOutputFunctionCall(typoutput, val);
getTypeOutputInfo(ANYARRAYOID, &typoutput, &typIsVarlena);
- val = PointerGetDatum(makeArrayResult(astate_values, CurrentMemoryContext));
+ val = makeArrayResult(astate_values, CurrentMemoryContext);
extval = OidOutputFunctionCall(typoutput, val);
len;
struct varlena *tmp = NULL;
- valsize = VARSIZE_ANY_EXHDR(DatumGetPointer(value));
+ valsize = VARSIZE_ANY_EXHDR(value);
/*
* No point in wasting a palloc cycle if value size is outside the allowed
if (isnull[i])
continue;
- else if (VARATT_IS_EXTERNAL_ONDISK(PointerGetDatum(value)))
+ else if (VARATT_IS_EXTERNAL_ONDISK(value))
toast_delete_datum(rel, value, is_speculative);
}
}
PG_GETARG_DATUM(0),
PG_GETARG_DATUM(1));
- PG_RETURN_NUMERIC(result);
+ PG_RETURN_DATUM(result);
}
/*
}
values[0] = Int32GetDatum(funcctx->call_cntr);
- values[1] = PointerGetDatum(makeArrayResult(astate_values, CurrentMemoryContext));
- values[2] = PointerGetDatum(makeArrayResult(astate_nulls, CurrentMemoryContext));
+ values[1] = makeArrayResult(astate_values, CurrentMemoryContext);
+ values[2] = makeArrayResult(astate_nulls, CurrentMemoryContext);
values[3] = Float8GetDatum(item->frequency);
values[4] = Float8GetDatum(item->base_frequency);
if (!name)
PG_RETURN_NULL();
- PG_RETURN_TEXT_P(CStringGetTextDatum(name));
+ PG_RETURN_DATUM(CStringGetTextDatum(name));
}
ranges1,
range_count2,
ranges2);
- PG_RETURN_RANGE_P(result);
+ PG_RETURN_MULTIRANGE_P(result);
}
/* Add two numerics */
res = DirectFunctionCall2(numeric_add,
- NumericGetDatum(num),
+ num,
NumericGetDatum(nbytes));
/* Convert to pg_lsn */
/* Subtract two numerics */
res = DirectFunctionCall2(numeric_sub,
- NumericGetDatum(num),
+ num,
NumericGetDatum(nbytes));
/* Convert to pg_lsn */
clean_ipv6_addr(beentry->st_clientaddr.addr.ss_family, remote_host);
- PG_RETURN_INET_P(DirectFunctionCall1(inet_in,
+ PG_RETURN_DATUM(DirectFunctionCall1(inet_in,
CStringGetDatum(remote_host)));
}
/* This node has a centroid. Fetch it. */
centroid = DatumGetRangeTypeP(in->prefixDatum);
typcache = range_get_typcache(fcinfo,
- RangeTypeGetOid(DatumGetRangeTypeP(centroid)));
+ RangeTypeGetOid(centroid));
range_deserialize(typcache, centroid, ¢roidLower, ¢roidUpper,
¢roidEmpty);
*/
if (in->traversalValue)
{
- prevCentroid = DatumGetRangeTypeP(in->traversalValue);
+ prevCentroid = in->traversalValue;
range_deserialize(typcache, prevCentroid,
&prevLower, &prevUpper, &prevEmpty);
}
splitctx->next_match++;
}
- PG_RETURN_ARRAYTYPE_P(makeArrayResult(astate, CurrentMemoryContext));
+ PG_RETURN_DATUM(makeArrayResult(astate, CurrentMemoryContext));
}
/* This is separate to keep the opr_sanity regression test from complaining */
Datum
gtsvectorout(PG_FUNCTION_ARGS)
{
- SignTSVector *key = (SignTSVector *) PG_DETOAST_DATUM(PG_GETARG_POINTER(0));
+ SignTSVector *key = (SignTSVector *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
char *outbuf;
if (outbuf_maxlen == 0)
Datum
tsquery_phrase(PG_FUNCTION_ARGS)
{
- PG_RETURN_POINTER(DirectFunctionCall3(tsquery_phrase_distance,
+ PG_RETURN_DATUM(DirectFunctionCall3(tsquery_phrase_distance,
PG_GETARG_DATUM(0),
PG_GETARG_DATUM(1),
Int32GetDatum(1)));
if (tstate.astate == NULL)
PG_RETURN_ARRAYTYPE_P(construct_empty_array(TEXTOID));
- PG_RETURN_ARRAYTYPE_P(makeArrayResult(tstate.astate,
+ PG_RETURN_DATUM(makeArrayResult(tstate.astate,
CurrentMemoryContext));
}
astate = initArrayResult(XMLOID, CurrentMemoryContext, true);
xpath_internal(xpath_expr_text, data, namespaces,
NULL, astate);
- PG_RETURN_ARRAYTYPE_P(makeArrayResult(astate, CurrentMemoryContext));
+ PG_RETURN_DATUM(makeArrayResult(astate, CurrentMemoryContext));
#else
NO_XML_SUPPORT();
return 0;
/* Ditto for JIT contexts */
while (ResourceArrayGetAny(&(owner->jitarr), &foundres))
{
- JitContext *context = (JitContext *) PointerGetDatum(foundres);
+ JitContext *context = (JitContext *) DatumGetPointer(foundres);
jit_release_context(context);
}
while (ResourceArrayGetAny(&(owner->cryptohasharr), &foundres))
{
pg_cryptohash_ctx *context =
- (pg_cryptohash_ctx *) PointerGetDatum(foundres);
+ (pg_cryptohash_ctx *) DatumGetPointer(foundres);
if (isCommit)
PrintCryptoHashLeakWarning(foundres);
/* Ditto for HMAC contexts */
while (ResourceArrayGetAny(&(owner->hmacarr), &foundres))
{
- pg_hmac_ctx *context = (pg_hmac_ctx *) PointerGetDatum(foundres);
+ pg_hmac_ctx *context = (pg_hmac_ctx *) DatumGetPointer(foundres);
if (isCommit)
PrintHMACLeakWarning(foundres);
{
current_call_data = &this_call_data;
if (CALLED_AS_TRIGGER(fcinfo))
- retval = PointerGetDatum(plperl_trigger_handler(fcinfo));
+ retval = plperl_trigger_handler(fcinfo);
else if (CALLED_AS_EVENT_TRIGGER(fcinfo))
{
plperl_event_trigger_handler(fcinfo);