mirror of https://github.com/citusdata/citus.git
61 lines
1.9 KiB
C
61 lines
1.9 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pg_dist_object.h
|
|
* definition of the system distributed objects relation (pg_dist_object).
|
|
*
|
|
* This table keeps metadata on all postgres objects that are distributed
|
|
* to all the nodes in the network. Objects in this table should all be
|
|
* present on all workers and kept in sync throughout their existance.
|
|
* This also means that all nodes joining the network are assumed to
|
|
* recreate all these objects.
|
|
*
|
|
* Copyright (c) 2019, Citus Data, Inc.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef PG_DIST_OBJECT_H
|
|
#define PG_DIST_OBJECT_H
|
|
|
|
|
|
/* ----------------
|
|
* pg_dist_object definition.
|
|
* ----------------
|
|
*/
|
|
typedef struct FormData_pg_dist_object
|
|
{
|
|
Oid classid; /* class of the distributed object */
|
|
Oid objid; /* object id of the distributed object */
|
|
int32 objsubid; /* object sub id of the distributed object, eg. attnum */
|
|
|
|
uint32 distribution_argument_index; /* only valid for distributed functions/procedures */
|
|
uint32 colocationid; /* only valid for distributed functions/procedures */
|
|
|
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
text type;
|
|
text[] object_names;
|
|
text[] object_arguments;
|
|
#endif
|
|
} FormData_pg_dist_object;
|
|
|
|
/* ----------------
|
|
* Form_pg_dist_partitions corresponds to a pointer to a tuple with
|
|
* the format of pg_dist_partitions relation.
|
|
* ----------------
|
|
*/
|
|
typedef FormData_pg_dist_object *Form_pg_dist_object;
|
|
|
|
/* ----------------
|
|
* compiler constants for pg_dist_object
|
|
* ----------------
|
|
*/
|
|
#define Natts_pg_dist_object 6
|
|
#define Anum_pg_dist_object_classid 1
|
|
#define Anum_pg_dist_object_objid 2
|
|
#define Anum_pg_dist_object_objsubid 3
|
|
#define Anum_pg_dist_object_type 4
|
|
#define Anum_pg_dist_object_object_names 5
|
|
#define Anum_pg_dist_object_object_args 6
|
|
|
|
#endif /* PG_DIST_OBJECT_H */
|