summaryrefslogtreecommitdiff
path: root/src/include/access/spgist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/access/spgist.h')
-rw-r--r--src/include/access/spgist.h44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/include/access/spgist.h b/src/include/access/spgist.h
index 5936af6f4e7..1994f718eb1 100644
--- a/src/include/access/spgist.h
+++ b/src/include/access/spgist.h
@@ -14,7 +14,7 @@
#ifndef SPGIST_H
#define SPGIST_H
-#include "access/skey.h"
+#include "access/amapi.h"
#include "access/xlogreader.h"
#include "fmgr.h"
#include "lib/stringinfo.h"
@@ -174,27 +174,37 @@ typedef struct spgLeafConsistentOut
} spgLeafConsistentOut;
+/* spgutils.c */
+extern Datum spghandler(PG_FUNCTION_ARGS);
+extern bytea *spgoptions(Datum reloptions, bool validate);
+
/* spginsert.c */
-extern Datum spgbuild(PG_FUNCTION_ARGS);
-extern Datum spgbuildempty(PG_FUNCTION_ARGS);
-extern Datum spginsert(PG_FUNCTION_ARGS);
+extern IndexBuildResult *spgbuild(Relation heap, Relation index,
+ struct IndexInfo *indexInfo);
+extern void spgbuildempty(Relation index);
+extern bool spginsert(Relation index, Datum *values, bool *isnull,
+ ItemPointer ht_ctid, Relation heapRel,
+ IndexUniqueCheck checkUnique);
/* spgscan.c */
-extern Datum spgbeginscan(PG_FUNCTION_ARGS);
-extern Datum spgendscan(PG_FUNCTION_ARGS);
-extern Datum spgrescan(PG_FUNCTION_ARGS);
-extern Datum spgmarkpos(PG_FUNCTION_ARGS);
-extern Datum spgrestrpos(PG_FUNCTION_ARGS);
-extern Datum spggetbitmap(PG_FUNCTION_ARGS);
-extern Datum spggettuple(PG_FUNCTION_ARGS);
-extern Datum spgcanreturn(PG_FUNCTION_ARGS);
-
-/* spgutils.c */
-extern Datum spgoptions(PG_FUNCTION_ARGS);
+extern IndexScanDesc spgbeginscan(Relation rel, int keysz, int orderbysz);
+extern void spgendscan(IndexScanDesc scan);
+extern void spgrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
+ ScanKey orderbys, int norderbys);
+extern int64 spggetbitmap(IndexScanDesc scan, TIDBitmap *tbm);
+extern bool spggettuple(IndexScanDesc scan, ScanDirection dir);
+extern bool spgcanreturn(Relation index, int attno);
/* spgvacuum.c */
-extern Datum spgbulkdelete(PG_FUNCTION_ARGS);
-extern Datum spgvacuumcleanup(PG_FUNCTION_ARGS);
+extern IndexBulkDeleteResult *spgbulkdelete(IndexVacuumInfo *info,
+ IndexBulkDeleteResult *stats,
+ IndexBulkDeleteCallback callback,
+ void *callback_state);
+extern IndexBulkDeleteResult *spgvacuumcleanup(IndexVacuumInfo *info,
+ IndexBulkDeleteResult *stats);
+
+/* spgvalidate.c */
+extern bool spgvalidate(Oid opclassoid);
/* spgxlog.c */
extern void spg_redo(XLogReaderState *record);