PostgreSQL Source Code git master
Loading...
Searching...
No Matches
pg_partitioned_table.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * pg_partitioned_table.h
4 * definition of the "partitioned table" system catalog
5 * (pg_partitioned_table)
6 *
7 *
8 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
9 * Portions Copyright (c) 1994, Regents of the University of California
10 *
11 * src/include/catalog/pg_partitioned_table.h
12 *
13 * NOTES
14 * The Catalog.pm module reads this file and derives schema
15 * information.
16 *
17 *-------------------------------------------------------------------------
18 */
19#ifndef PG_PARTITIONED_TABLE_H
20#define PG_PARTITIONED_TABLE_H
21
22#include "catalog/genbki.h"
23#include "catalog/pg_partitioned_table_d.h" /* IWYU pragma: export */
24
25/* ----------------
26 * pg_partitioned_table definition. cpp turns this into
27 * typedef struct FormData_pg_partitioned_table
28 * ----------------
29 */
31{
32 Oid partrelid BKI_LOOKUP(pg_class); /* partitioned table oid */
33 char partstrat; /* partitioning strategy */
34 int16 partnatts; /* number of partition key columns */
35 Oid partdefid BKI_LOOKUP_OPT(pg_class); /* default partition oid;
36 * 0 if there isn't one */
37
38 /*
39 * variable-length fields start here, but we allow direct access to
40 * partattrs via the C struct. That's because the first variable-length
41 * field of a heap tuple can be reliably accessed using its C struct
42 * offset, as previous fields are all non-nullable fixed-length fields.
43 */
44 int2vector partattrs BKI_FORCE_NOT_NULL; /* each member of the array is
45 * the attribute number of a
46 * partition key column, or 0
47 * if the column is actually
48 * an expression */
49
50#ifdef CATALOG_VARLEN
52 * compare keys */
53 oidvector partcollation BKI_LOOKUP_OPT(pg_collation) BKI_FORCE_NOT_NULL; /* user-specified
54 * collation for keys */
55 pg_node_tree partexprs; /* list of expressions in the partition key;
56 * one item for each zero entry in partattrs[] */
57#endif
59
60/* ----------------
61 * Form_pg_partitioned_table corresponds to a pointer to a tuple with
62 * the format of pg_partitioned_table relation.
63 * ----------------
64 */
66
68
70
72
73/* partattrs can contain zero (InvalidAttrNumber) to represent expressions */
75
76#endif /* PG_PARTITIONED_TABLE_H */
int16_t int16
Definition c.h:541
#define DECLARE_UNIQUE_INDEX_PKEY(name, oid, oidmacro, tblname, decl)
Definition genbki.h:86
#define BKI_LOOKUP(catalog)
Definition genbki.h:46
#define BKI_LOOKUP_OPT(catalog)
Definition genbki.h:47
#define BKI_FORCE_NOT_NULL
Definition genbki.h:33
#define DECLARE_TOAST(name, toastoid, indexoid)
Definition genbki.h:63
#define CATALOG(name, oid, oidmacro)
Definition genbki.h:23
#define DECLARE_ARRAY_FOREIGN_KEY_OPT(cols, reftbl, refcols)
Definition genbki.h:121
#define MAKE_SYSCACHE(name, idxname, nbuckets)
Definition genbki.h:127
int16 attnum
FormData_pg_partitioned_table * Form_pg_partitioned_table
FormData_pg_partitioned_table
unsigned int Oid
static int fb(int x)
Definition c.h:745