mirror of
https://github.com/postgres/postgres.git
synced 2026-02-03 20:40:14 -05:00
Design problems were discovered in the handling of composite types and record types that would cause some relevant versions not to be recorded. Misgivings were also expressed about the use of the pg_depend catalog for this purpose. We're out of time for this release so we'll revert and try again. Commits reverted:1bf946bd: Doc: Document known problem with Windows collation versions.cf002008: Remove no-longer-relevant test case.ef387bed: Fix bogus collation-version-recording logic.0fb0a050: Hide internal error for pg_collation_actual_version(<bad OID>).ff942057: Suppress "warning: variable 'collcollate' set but not used".d50e3b1f: Fix assertion in collation version lookup.f24b1569: Rethink extraction of collation dependencies.257836a7: Track collation versions for indexes.cd6f479e: Add pg_depend.refobjversion.7d1297df: Remove pg_collation.collversion. Discussion: https://postgr.es/m/CA%2BhUKGLhj5t1fcjqAu8iD9B3ixJtsTNqyCCD4V0aTO9kAKAjjA%40mail.gmail.com
80 lines
2.7 KiB
C
80 lines
2.7 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pg_depend.h
|
|
* definition of the "dependency" system catalog (pg_depend)
|
|
*
|
|
* pg_depend has no preloaded contents, so there is no pg_depend.dat
|
|
* file; system-defined dependencies are loaded into it during a late stage
|
|
* of the initdb process.
|
|
*
|
|
* NOTE: we do not represent all possible dependency pairs in pg_depend;
|
|
* for example, there's not much value in creating an explicit dependency
|
|
* from an attribute to its relation. Usually we make a dependency for
|
|
* cases where the relationship is conditional rather than essential
|
|
* (for example, not all triggers are dependent on constraints, but all
|
|
* attributes are dependent on relations) or where the dependency is not
|
|
* convenient to find from the contents of other catalogs.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/catalog/pg_depend.h
|
|
*
|
|
* NOTES
|
|
* The Catalog.pm module reads this file and derives schema
|
|
* information.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PG_DEPEND_H
|
|
#define PG_DEPEND_H
|
|
|
|
#include "catalog/genbki.h"
|
|
#include "catalog/pg_depend_d.h"
|
|
|
|
/* ----------------
|
|
* pg_depend definition. cpp turns this into
|
|
* typedef struct FormData_pg_depend
|
|
* ----------------
|
|
*/
|
|
CATALOG(pg_depend,2608,DependRelationId)
|
|
{
|
|
/*
|
|
* Identification of the dependent (referencing) object.
|
|
*
|
|
* These fields are all zeroes for a DEPENDENCY_PIN entry.
|
|
*/
|
|
Oid classid BKI_LOOKUP_OPT(pg_class); /* OID of table containing
|
|
* object */
|
|
Oid objid; /* OID of object itself */
|
|
int32 objsubid; /* column number, or 0 if not used */
|
|
|
|
/*
|
|
* Identification of the independent (referenced) object.
|
|
*/
|
|
Oid refclassid BKI_LOOKUP(pg_class); /* OID of table containing
|
|
* object */
|
|
Oid refobjid; /* OID of object itself */
|
|
int32 refobjsubid; /* column number, or 0 if not used */
|
|
|
|
/*
|
|
* Precise semantics of the relationship are specified by the deptype
|
|
* field. See DependencyType in catalog/dependency.h.
|
|
*/
|
|
char deptype; /* see codes in dependency.h */
|
|
} FormData_pg_depend;
|
|
|
|
/* ----------------
|
|
* Form_pg_depend corresponds to a pointer to a row with
|
|
* the format of pg_depend relation.
|
|
* ----------------
|
|
*/
|
|
typedef FormData_pg_depend *Form_pg_depend;
|
|
|
|
DECLARE_INDEX(pg_depend_depender_index, 2673, on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
|
|
#define DependDependerIndexId 2673
|
|
DECLARE_INDEX(pg_depend_reference_index, 2674, on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
|
|
#define DependReferenceIndexId 2674
|
|
|
|
#endif /* PG_DEPEND_H */
|