/*------------------------------------------------------------------------- * * pg_partitioned_table.h * definition of the system "partitioned table" relation * along with the relation's initial contents. * * * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group * * src/include/catalog/pg_partitioned_table.h * * NOTES * the genbki.sh script reads this file and generates .bki * information from the DATA() statements. * *------------------------------------------------------------------------- */ #ifndef PG_PARTITIONED_TABLE_H #define PG_PARTITIONED_TABLE_H #include "catalog/genbki.h" /* ---------------- * pg_partitioned_table definition. cpp turns this into * typedef struct FormData_pg_partitioned_table * ---------------- */ #define PartitionedRelationId 3350 CATALOG(pg_partitioned_table,3350) BKI_WITHOUT_OIDS { Oid partrelid; /* partitioned table oid */ char partstrat; /* partitioning strategy */ int16 partnatts; /* number of partition key columns */ /* * variable-length fields start here, but we allow direct access to * partattrs via the C struct. That's because the first variable-length * field of a heap tuple can be reliably accessed using its C struct * offset, as previous fields are all non-nullable fixed-length fields. */ int2vector partattrs; /* each member of the array is the attribute * number of a partition key column, or 0 if * the column is actually an expression */ #ifdef CATALOG_VARLEN oidvector partclass; /* operator class to compare keys */ oidvector partcollation; /* user-specified collation for keys */ pg_node_tree partexprs; /* list of expressions in the partition key; * one item for each zero entry in partattrs[] */ #endif } FormData_pg_partitioned_table; /* ---------------- * Form_pg_partitioned_table corresponds to a pointer to a tuple with * the format of pg_partitioned_table relation. * ---------------- */ typedef FormData_pg_partitioned_table *Form_pg_partitioned_table; /* ---------------- * compiler constants for pg_partitioned_table * ---------------- */ #define Natts_pg_partitioned_table 7 #define Anum_pg_partitioned_table_partrelid 1 #define Anum_pg_partitioned_table_partstrat 2 #define Anum_pg_partitioned_table_partnatts 3 #define Anum_pg_partitioned_table_partattrs 4 #define Anum_pg_partitioned_table_partclass 5 #define Anum_pg_partitioned_table_partcollation 6 #define Anum_pg_partitioned_table_partexprs 7 #endif /* PG_PARTITIONED_TABLE_H */