44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* partdesc.h
|
|
*
|
|
* Copyright (c) 1996-2019, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/utils/partdesc.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef PARTDESC_H
|
|
#define PARTDESC_H
|
|
|
|
#include "partitioning/partdefs.h"
|
|
#include "utils/relcache.h"
|
|
|
|
/*
|
|
* Information about partitions of a partitioned table.
|
|
*/
|
|
typedef struct PartitionDescData
|
|
{
|
|
int nparts; /* Number of 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 void RelationBuildPartitionDesc(Relation rel);
|
|
|
|
extern PartitionDirectory CreatePartitionDirectory(MemoryContext mcxt);
|
|
extern PartitionDesc PartitionDirectoryLookup(PartitionDirectory, Relation);
|
|
extern void DestroyPartitionDirectory(PartitionDirectory pdir);
|
|
|
|
extern Oid get_default_oid_from_partdesc(PartitionDesc partdesc);
|
|
|
|
extern bool equalPartitionDescs(PartitionKey key, PartitionDesc partdesc1,
|
|
PartitionDesc partdesc2);
|
|
|
|
#endif /* PARTCACHE_H */
|