17 #include "catalog/pg_am_d.h"
32 #define IS_GIST(r) ((r)->rd_rel->relam == GIST_AM_OID)
34 #define ItemPointerGetDatum(X) PointerGetDatum(X)
53 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
54 errmsg(
"must be superuser to use raw page functions")));
64 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
65 errmsg(
"input page is not a valid %s page",
"GiST"),
66 errdetail(
"Expected special size %d, got %d.",
73 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
74 errmsg(
"input page is not a valid %s page",
"GiST"),
81 elog(
ERROR,
"return type must be a row type");
84 flagbits = opaq->
flags;
102 memset(nulls, 0,
sizeof(nulls));
109 -1,
false, TYPALIGN_INT));
129 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
130 errmsg(
"must be superuser to use raw page functions")));
142 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
143 errmsg(
"input page is not a valid %s page",
"GiST"),
144 errdetail(
"Expected special size %d, got %d.",
151 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
152 errmsg(
"input page is not a valid %s page",
"GiST"),
155 opaq->gist_page_id)));
182 memset(nulls, 0,
sizeof(nulls));
190 memcpy(
VARDATA(tuple_bytea), itup, tuple_len);
213 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
214 errmsg(
"must be superuser to use raw page functions")));
223 (
errcode(ERRCODE_WRONG_OBJECT_TYPE),
224 errmsg(
"\"%s\" is not a %s index",
261 itup_values, itup_isnull);
263 memset(nulls, 0,
sizeof(nulls));
ArrayType * construct_array(Datum *elems, int nelems, Oid elmtype, int elmlen, bool elmbyval, char elmalign)
static Datum values[MAXATTR]
#define PageGetSpecialSize(page)
#define PageGetMaxOffsetNumber(page)
#define PageGetItemId(page, offsetNumber)
#define PageGetItem(page, itemId)
#define CStringGetTextDatum(s)
int errdetail(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
Datum Int64GetDatum(int64 X)
#define DirectFunctionCall1(func, arg1)
#define PG_GETARG_BYTEA_P(n)
void SetSingleFuncCall(FunctionCallInfo fcinfo, bits32 flags)
TypeFuncClass get_call_result_type(FunctionCallInfo fcinfo, Oid *resultTypeId, TupleDesc *resultTupleDesc)
#define HeapTupleGetDatum(tuple)
char * BuildIndexValueDescription(Relation indexRelation, Datum *values, bool *isnull)
#define GistPageIsDeleted(page)
#define GistPageGetOpaque(page)
#define GistPageGetNSN(page)
PG_FUNCTION_INFO_V1(gist_page_opaque_info)
Datum gist_page_items_bytea(PG_FUNCTION_ARGS)
#define ItemPointerGetDatum(X)
Datum gist_page_items(PG_FUNCTION_ARGS)
Datum gist_page_opaque_info(PG_FUNCTION_ARGS)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, Datum *values, bool *isnull)
void index_close(Relation relation, LOCKMODE lockmode)
Relation index_open(Oid relationId, LOCKMODE lockmode)
void index_deform_tuple(IndexTuple tup, TupleDesc tupleDescriptor, Datum *values, bool *isnull)
#define ItemIdIsDead(itemId)
#define ItemIdIsValid(itemId)
IndexTupleData * IndexTuple
#define IndexTupleSize(itup)
#define InvalidOffsetNumber
#define FirstOffsetNumber
Page get_page_from_raw(bytea *raw_page)
#define SET_VARSIZE(PTR, len)
#define PointerGetDatum(X)
#define RelationGetDescr(relation)
#define RelationGetRelationName(relation)
void relation_close(Relation relation, LOCKMODE lockmode)
Tuplestorestate * setResult
void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc, Datum *values, bool *isnull)
Datum to_hex32(PG_FUNCTION_ARGS)