55 lines
3.0 KiB
C
55 lines
3.0 KiB
C
/* -------------------------------------------------------------------------
|
|
*
|
|
* cluster.h
|
|
* header file for openGauss cluster command stuff
|
|
*
|
|
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994-5, Regents of the University of California
|
|
*
|
|
* src/include/commands/cluster.h
|
|
*
|
|
* -------------------------------------------------------------------------
|
|
*/
|
|
#ifndef CLUSTER_H
|
|
#define CLUSTER_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
#include "storage/lock/lock.h"
|
|
#include "utils/relcache.h"
|
|
|
|
extern void cluster(ClusterStmt* stmt, bool isTopLevel);
|
|
extern void cluster_rel(Oid tableOid, Oid partitionOid, Oid indexOid, bool recheck, bool verbose, int freeze_min_age,
|
|
int freeze_table_age, void* mem_info, bool onerel);
|
|
extern void check_index_is_clusterable(
|
|
Relation OldHeap, Oid indexOid, bool recheck, LOCKMODE lockmode, Oid* amid = NULL);
|
|
extern void mark_index_clustered(Relation rel, Oid indexOid);
|
|
|
|
extern Oid make_new_heap(Oid OIDOldHeap, Oid NewTableSpace, int lockMode = AccessExclusiveLock);
|
|
|
|
extern Oid makePartitionNewHeap(Relation partitionedTableRel, TupleDesc partTabHeapDesc, Datum partTabRelOptions,
|
|
Oid oldPartOid, Oid partToastOid, Oid NewTableSpace, bool isCStore = false, Oid subpartFilenode = InvalidOid);
|
|
extern double copy_heap_data_internal(Relation OldHeap, Relation OldIndex, Relation NewHeap, TransactionId OldestXmin,
|
|
TransactionId FreezeXid, bool verbose, bool use_sort, AdaptMem* memUsage);
|
|
extern double CopyUHeapDataInternal(Relation oldHeap, Relation oldIndex, Relation newHeap, TransactionId oldestXmin,
|
|
TransactionId freezeXid, bool verbose, bool useSort, const AdaptMem* memUsage);
|
|
extern void getPartitionRelxids(Relation ordTableRel, TransactionId* frozenXid, MultiXactId* multiXid = NULL);
|
|
extern void getRelationRelxids(Relation ordTableRel, TransactionId* frozenXid, MultiXactId* multiXid = NULL);
|
|
extern void setRelationRelfrozenxid(Oid relid, TransactionId frozenXid);
|
|
extern void setPartitionRelfrozenxid(Oid partid, TransactionId frozenXid);
|
|
extern void finishPartitionHeapSwap(Oid partitionOid, Oid tempTableOid, bool swapToastByContent,
|
|
TransactionId frozenXid, MultiXactId multiXid, bool tempTableIsPartition = false);
|
|
|
|
extern void finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap, bool is_system_catalog, bool swap_toast_by_content,
|
|
bool check_constraints, TransactionId frozenXid, MultiXactId frozenMulti, AdaptMem* memInfo = NULL);
|
|
|
|
extern void vacuumFullPart(Oid partOid, VacuumStmt* vacstmt, int freeze_min_age, int freeze_table_age);
|
|
extern void GpiVacuumFullMainPartiton(Oid parentOid);
|
|
extern void CBIVacuumFullMainPartiton(Oid parentOid);
|
|
extern void updateRelationName(Oid relOid, bool isPartition, const char* relNewName);
|
|
extern List* GetIndexPartitionListByOrder(Relation indexRelation, LOCKMODE lockmode);
|
|
extern bool IsNeedToTransfer(Relation rel1, Relation rel2);
|
|
extern void swapRelationIndicesRelfileNode(Relation rel1, Relation rel2, bool swapBucket, bool swapIndex);
|
|
extern int IndexGetindisusable(Oid indexOid);
|
|
|
|
#endif /* CLUSTER_H */
|