PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "access/genam.h"
#include "access/htup_details.h"
#include "access/table.h"
#include "catalog/partition.h"
#include "catalog/pg_inherits.h"
#include "partitioning/partbounds.h"
#include "partitioning/partdesc.h"
#include "storage/bufmgr.h"
#include "storage/sinval.h"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
#include "utils/hsearch.h"
#include "utils/inval.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
#include "utils/partcache.h"
#include "utils/rel.h"
#include "utils/syscache.h"
Go to the source code of this file.
Data Structures | |
struct | PartitionDirectoryData |
struct | PartitionDirectoryEntry |
Typedefs | |
typedef struct PartitionDirectoryData | PartitionDirectoryData |
typedef struct PartitionDirectoryEntry | PartitionDirectoryEntry |
Functions | |
static void | RelationBuildPartitionDesc (Relation rel) |
PartitionDesc | RelationGetPartitionDesc (Relation rel) |
PartitionDirectory | CreatePartitionDirectory (MemoryContext mcxt) |
PartitionDesc | PartitionDirectoryLookup (PartitionDirectory pdir, Relation rel) |
void | DestroyPartitionDirectory (PartitionDirectory pdir) |
Oid | get_default_oid_from_partdesc (PartitionDesc partdesc) |
typedef struct PartitionDirectoryData PartitionDirectoryData |
typedef struct PartitionDirectoryEntry PartitionDirectoryEntry |
PartitionDirectory CreatePartitionDirectory | ( | MemoryContext | mcxt | ) |
Definition at line 283 of file partdesc.c.
References HASHCTL::entrysize, HASH_BLOBS, HASH_CONTEXT, hash_create(), HASH_ELEM, HASHCTL::hcxt, HASHCTL::keysize, MemoryContextSwitchTo(), palloc(), PartitionDirectoryData::pdir_hash, and PartitionDirectoryData::pdir_mcxt.
Referenced by ExecCreatePartitionPruneState(), ExecInitPartitionDispatchInfo(), and set_relation_partition_info().
void DestroyPartitionDirectory | ( | PartitionDirectory | pdir | ) |
Definition at line 343 of file partdesc.c.
References hash_seq_init(), hash_seq_search(), PartitionDirectoryData::pdir_hash, PartitionDirectoryEntry::rel, RelationDecrementReferenceCount(), and status().
Referenced by FreeExecutorState(), and standard_planner().
Oid get_default_oid_from_partdesc | ( | PartitionDesc | partdesc | ) |
Definition at line 360 of file partdesc.c.
References PartitionDescData::boundinfo, PartitionBoundInfoData::default_index, InvalidOid, PartitionDescData::oids, and partition_bound_has_default.
Referenced by ATExecAttachPartition(), ATExecDetachPartition(), DefineRelation(), and StorePartitionBound().
PartitionDesc PartitionDirectoryLookup | ( | PartitionDirectory | pdir, |
Relation | rel | ||
) |
Definition at line 315 of file partdesc.c.
References Assert, HASH_ENTER, hash_search(), PartitionDirectoryEntry::pd, PartitionDirectoryData::pdir_hash, PartitionDirectoryEntry::rel, RelationGetPartitionDesc(), RelationGetRelid, and RelationIncrementReferenceCount().
Referenced by ExecCreatePartitionPruneState(), ExecInitPartitionDispatchInfo(), expand_partitioned_rtentry(), and set_relation_partition_info().
|
static |
Definition at line 91 of file partdesc.c.
References AccessShareLock, ALLOCSET_SMALL_SIZES, AllocSetContextCreate, PartitionDescData::boundinfo, BTEqualStrategyNumber, CacheMemoryContext, ClassOidIndexId, CurTransactionContext, elog, ERROR, find_inheritance_children(), get_default_partition_oid(), get_rel_relkind(), heap_getattr, HeapTupleIsValid, i, PartitionBoundSpec::is_default, PartitionDescData::is_leaf, IsA, sort-test::key, lfirst_oid, list_length(), MemoryContextAllocZero(), MemoryContextCopyAndSetIdentifier, MemoryContextSetParent(), MemoryContextSwitchTo(), NoLock, PartitionDescData::nparts, ObjectIdGetDatum, PartitionDescData::oids, palloc(), partition_bounds_copy(), partition_bounds_create(), RelationData::rd_partdesc, RelationData::rd_pdcxt, RelationGetDescr, RelationGetPartitionKey(), RelationGetRelationName, RelationGetRelid, ReleaseSysCache(), RELOID, ScanKeyInit(), SearchSysCache1(), stringToNode(), SysCacheGetAttr(), systable_beginscan(), systable_endscan(), systable_getnext(), table_close(), table_open(), and TextDatumGetCString.
Referenced by RelationGetPartitionDesc().
PartitionDesc RelationGetPartitionDesc | ( | Relation | rel | ) |
Definition at line 64 of file partdesc.c.
References RelationData::rd_partdesc, RelationData::rd_rel, RelationBuildPartitionDesc(), and unlikely.
Referenced by addFkRecurseReferenced(), addFkRecurseReferencing(), ATExecAttachPartition(), ATExecAttachPartitionIdx(), ATExecDetachPartition(), ATPrepDropNotNull(), check_new_partition_bound(), CreateTrigger(), DefineIndex(), DefineRelation(), get_qual_for_list(), get_qual_for_range(), PartitionDirectoryLookup(), QueuePartitionConstraintValidation(), StorePartitionBound(), and validatePartitionedIndex().