pg_amcheck: Fix test failure on Windows with non-existing role
[pgsql.git] / src / include / catalog / indexing.h
blob667aca7ace8015af19b7e418eef76af5f2c775de
1 /*-------------------------------------------------------------------------
3 * indexing.h
4 * This file provides some definitions to support indexing
5 * on system catalogs
8 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
9 * Portions Copyright (c) 1994, Regents of the University of California
11 * src/include/catalog/indexing.h
13 *-------------------------------------------------------------------------
15 #ifndef INDEXING_H
16 #define INDEXING_H
18 #include "access/htup.h"
19 #include "nodes/execnodes.h"
20 #include "utils/relcache.h"
23 * The state object used by CatalogOpenIndexes and friends is actually the
24 * same as the executor's ResultRelInfo, but we give it another type name
25 * to decouple callers from that fact.
27 typedef struct ResultRelInfo *CatalogIndexState;
30 * Cap the maximum amount of bytes allocated for multi-inserts with system
31 * catalogs, limiting the number of slots used.
33 #define MAX_CATALOG_MULTI_INSERT_BYTES 65535
36 * indexing.c prototypes
38 extern CatalogIndexState CatalogOpenIndexes(Relation heapRel);
39 extern void CatalogCloseIndexes(CatalogIndexState indstate);
40 extern void CatalogTupleInsert(Relation heapRel, HeapTuple tup);
41 extern void CatalogTupleInsertWithInfo(Relation heapRel, HeapTuple tup,
42 CatalogIndexState indstate);
43 extern void CatalogTuplesMultiInsertWithInfo(Relation heapRel,
44 TupleTableSlot **slot,
45 int ntuples,
46 CatalogIndexState indstate);
47 extern void CatalogTupleUpdate(Relation heapRel, ItemPointer otid,
48 HeapTuple tup);
49 extern void CatalogTupleUpdateWithInfo(Relation heapRel,
50 ItemPointer otid, HeapTuple tup,
51 CatalogIndexState indstate);
52 extern void CatalogTupleDelete(Relation heapRel, ItemPointer tid);
54 #endif /* INDEXING_H */