1/*-------------------------------------------------------------------------
4 * header file for postgres cluster command stuff
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994-5, Regents of the University of California
9 * src/include/commands/cluster.h
11 *-------------------------------------------------------------------------
22/* flag bits for ClusterParams->options */
23 #define CLUOPT_VERBOSE 0x01 /* print progress info */
24 #define CLUOPT_RECHECK 0x02 /* recheck relation state */
25 #define CLUOPT_RECHECK_ISCLUSTERED 0x04 /* recheck relation state for
28 /* options for CLUSTER */
41 char relpersistence,
LOCKMODE lockmode);
43 bool is_system_catalog,
44 bool swap_toast_by_content,
45 bool check_constraints,
49 char newrelpersistence);
TransactionId MultiXactId
void check_index_is_clusterable(Relation OldHeap, Oid indexOid, LOCKMODE lockmode)
void finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap, bool is_system_catalog, bool swap_toast_by_content, bool check_constraints, bool is_internal, TransactionId frozenXid, MultiXactId cutoffMulti, char newrelpersistence)
void cluster_rel(Relation OldHeap, Oid indexOid, ClusterParams *params)
Oid make_new_heap(Oid OIDOldHeap, Oid NewTableSpace, Oid NewAccessMethod, char relpersistence, LOCKMODE lockmode)
struct ClusterParams ClusterParams
void cluster(ParseState *pstate, ClusterStmt *stmt, bool isTopLevel)
void mark_index_clustered(Relation rel, Oid indexOid, bool is_internal)