1 /*------------------------------------------------------------------------- 2 * 3 * cluster.h 4 * header file for postgres cluster command stuff 5 * 6 * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group 7 * Portions Copyright (c) 1994-5, Regents of the University of California 8 * 9 * src/include/commands/cluster.h 10 * 11 *------------------------------------------------------------------------- 12 */ 13 #ifndef CLUSTER_H 14 #define CLUSTER_H 15 16 #include "nodes/parsenodes.h" 17 #include "storage/lock.h" 18 #include "utils/relcache.h" 19 20 21 extern void cluster(ClusterStmt *stmt, bool isTopLevel); 22 extern void cluster_rel(Oid tableOid, Oid indexOid, int options); 23 extern void check_index_is_clusterable(Relation OldHeap, Oid indexOid, 24 bool recheck, LOCKMODE lockmode); 25 extern void mark_index_clustered(Relation rel, Oid indexOid, bool is_internal); 26 27 extern Oid make_new_heap(Oid OIDOldHeap, Oid NewTableSpace, char relpersistence, 28 LOCKMODE lockmode); 29 extern void finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap, 30 bool is_system_catalog, 31 bool swap_toast_by_content, 32 bool check_constraints, 33 bool is_internal, 34 TransactionId frozenXid, 35 MultiXactId minMulti, 36 char newrelpersistence); 37 38 #endif /* CLUSTER_H */ 39