init
This commit is contained in:
50
db_include/partitioning/partdesc.h
Executable file
50
db_include/partitioning/partdesc.h
Executable file
@@ -0,0 +1,50 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* partdesc.h
|
||||
*
|
||||
* Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
||||
*
|
||||
* src/include/partitioning/partdesc.h
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef PARTDESC_H
|
||||
#define PARTDESC_H
|
||||
|
||||
#include "partitioning/partdefs.h"
|
||||
#include "utils/relcache.h"
|
||||
|
||||
/*
|
||||
* Information about partitions of a partitioned table.
|
||||
*
|
||||
* For partitioned tables where detached partitions exist, we only cache
|
||||
* descriptors that include all partitions, including detached; when we're
|
||||
* requested a descriptor without the detached partitions, we create one
|
||||
* afresh each time. (The reason for this is that the set of detached
|
||||
* partitions that are visible to each caller depends on the snapshot it has,
|
||||
* so it's pretty much impossible to evict a descriptor from cache at the
|
||||
* right time.)
|
||||
*/
|
||||
typedef struct PartitionDescData
|
||||
{
|
||||
int nparts; /* Number of partitions */
|
||||
bool detached_exist; /* Are there any detached partitions? */
|
||||
Oid *oids; /* Array of 'nparts' elements containing
|
||||
* partition OIDs in order of the their bounds */
|
||||
bool *is_leaf; /* Array of 'nparts' elements storing whether
|
||||
* the corresponding 'oids' element belongs to
|
||||
* a leaf partition or not */
|
||||
PartitionBoundInfo boundinfo; /* collection of partition bounds */
|
||||
} PartitionDescData;
|
||||
|
||||
|
||||
extern PartitionDesc RelationGetPartitionDesc(Relation rel, bool omit_detached);
|
||||
|
||||
extern PartitionDirectory CreatePartitionDirectory(MemoryContext mcxt, bool omit_detached);
|
||||
extern PartitionDesc PartitionDirectoryLookup(PartitionDirectory, Relation);
|
||||
extern void DestroyPartitionDirectory(PartitionDirectory pdir);
|
||||
|
||||
extern Oid get_default_oid_from_partdesc(PartitionDesc partdesc);
|
||||
|
||||
#endif /* PARTCACHE_H */
|
||||
Reference in New Issue
Block a user