mirror of
https://github.com/postgres/postgres.git
synced 2026-03-06 07:15:44 -05:00
There's been a massive addition of partitioning code in PostgreSQL 11, with little oversight on its placement, resulting in a catalog/partition.c with poorly defined boundaries and responsibilities. This commit tries to set a couple of distinct modules to separate things a little bit. There are no code changes here, only code movement. There are three new files: src/backend/utils/cache/partcache.c src/include/partitioning/partdefs.h src/include/utils/partcache.h The previous arrangement of #including catalog/partition.h almost everywhere is no more. Authors: Amit Langote and Álvaro Herrera Discussion: https://postgr.es/m/98e8d509-790a-128c-be7f-e48a5b2d8d97@lab.ntt.co.jp https://postgr.es/m/11aa0c50-316b-18bb-722d-c23814f39059@lab.ntt.co.jp https://postgr.es/m/143ed9a4-6038-76d4-9a55-502035815e68@lab.ntt.co.jp https://postgr.es/m/20180413193503.nynq7bnmgh6vs5vm@alvherre.pgsql
46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* partition.h
|
|
* Header file for structures and utility functions related to
|
|
* partitioning
|
|
*
|
|
* Copyright (c) 2007-2018, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/catalog/partition.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PARTITION_H
|
|
#define PARTITION_H
|
|
|
|
#include "fmgr.h"
|
|
#include "partitioning/partdefs.h"
|
|
#include "utils/relcache.h"
|
|
|
|
/* Seed for the extended hash function */
|
|
#define HASH_PARTITION_SEED UINT64CONST(0x7A5B22367996DCFD)
|
|
|
|
/*
|
|
* Information about partitions of a partitioned table.
|
|
*/
|
|
typedef struct PartitionDescData
|
|
{
|
|
int nparts; /* Number of partitions */
|
|
Oid *oids; /* OIDs of partitions */
|
|
PartitionBoundInfo boundinfo; /* collection of partition bounds */
|
|
} PartitionDescData;
|
|
|
|
extern Oid get_partition_parent(Oid relid);
|
|
extern List *get_partition_ancestors(Oid relid);
|
|
extern List *map_partition_varattnos(List *expr, int fromrel_varno,
|
|
Relation to_rel, Relation from_rel,
|
|
bool *found_whole_row);
|
|
extern bool has_partition_attrs(Relation rel, Bitmapset *attnums,
|
|
bool *used_in_expr);
|
|
|
|
extern Oid get_default_oid_from_partdesc(PartitionDesc partdesc);
|
|
extern Oid get_default_partition_oid(Oid parentId);
|
|
extern void update_default_partition_oid(Oid parentId, Oid defaultPartId);
|
|
extern List *get_proposed_default_constraint(List *new_part_constaints);
|
|
|
|
#endif /* PARTITION_H */
|