Cope with AIX's alignment woes by using _Pragma("pack").

Because we assume that int64 and double have the same alignment
requirement, AIX's default behavior that alignof(double) = 4 while
alignof(int64) = 8 is a headache.  There are two issues:

1. We align both int8 and float8 tuple columns per ALIGNOF_DOUBLE,
which is an ancient choice that can't be undone without breaking
pg_upgrade and creating some subtle SQL-level compatibility issues
too.  However, the cost of that is just some marginal inefficiency
in fetching int8 values, which can't be too awful if the platform
architects were willing to pay the same costs for fetching float8s.
So our decision is to leave that alone.  This patch makes our
alignment choices the same as they were pre-v17, namely that
ALIGNOF_DOUBLE and ALIGNOF_INT64_T are whatever the compiler prefers
and then MAXIMUM_ALIGNOF is the larger of the two.  (On all supported
platforms other than AIX, all three values will be the same.)

2.  We need to overlay C structs onto catalog tuples, and int8 fields
in those struct declarations may not be aligned to match this rule.

In the old branches we had some annoying rules about ordering catalog
columns to avoid alignment problems, but nobody wants to resurrect
those.  However, there's a better answer: make the compiler construe
those struct declarations the way we need it to by using the pack(N)
pragma.  This requires no manual effort to maintain going forward;
we only have to insert the pragma into all the catalog *.h files.
(As the catalogs stand at this writing, nothing actually changes
because we've not moved any affected columns since v16; hence no
catversion bump is required.  The point of this is to not have
to worry about the issue going forward.)

We did not have this option when the AIX port was first made.  This
patch depends on the C99 feature _Pragma(), as well as the pack(N)
pragma which dates to somewhere around gcc 4.0, and probably doesn't
exist in xlc at all.  But now that we've agreed to toss xlc support
out the window, there doesn't seem to be a reason not to go this way.

In passing, I got rid of LONGALIGN[_DOWN] along with the configure
probes for ALIGNOF_LONG.  We were not using those anywhere and it
seems highly unlikely that we'd do so in future.  Instead supply
INT64ALIGN[_DOWN], which isn't used either but at least could
have a good reason to be used.

Discussion: https://postgr.es/m/1127261.1769649624@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2026-02-23 12:34:51 -05:00
parent bc60ee8606
commit ecae097252
70 changed files with 314 additions and 99 deletions

66
configure vendored
View file

@ -17118,41 +17118,6 @@ cat >>confdefs.h <<_ACEOF
_ACEOF _ACEOF
# The cast to long int works around a bug in the HP C Compiler,
# see AC_CHECK_SIZEOF for more information.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of long" >&5
$as_echo_n "checking alignment of long... " >&6; }
if ${ac_cv_alignof_long+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_long" "$ac_includes_default
#ifndef offsetof
# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0)
#endif
typedef struct { char x; long y; } ac__type_alignof_;"; then :
else
if test "$ac_cv_type_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute alignment of long
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_alignof_long=0
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5
$as_echo "$ac_cv_alignof_long" >&6; }
cat >>confdefs.h <<_ACEOF
#define ALIGNOF_LONG $ac_cv_alignof_long
_ACEOF
# The cast to long int works around a bug in the HP C Compiler, # The cast to long int works around a bug in the HP C Compiler,
# see AC_CHECK_SIZEOF for more information. # see AC_CHECK_SIZEOF for more information.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of int64_t" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of int64_t" >&5
@ -17226,27 +17191,18 @@ _ACEOF
# Compute maximum alignment of any basic type. # Compute maximum alignment of any basic type.
# #
# We require 'double' to have the strictest alignment among the basic types, # We assume without checking that the maximum alignment requirement is that
# because otherwise the C ABI might impose 8-byte alignment on some of the # of int64_t and/or double. (On most platforms those are the same, but not
# other C types that correspond to TYPALIGN_DOUBLE SQL types. That could # everywhere.) For historical reasons, both int8 and float8 datatypes have
# cause a mismatch between the tuple layout and the C struct layout of a # typalign 'd', and therefore will be aligned per ALIGNOF_DOUBLE in database
# catalog tuple. We used to carefully order catalog columns such that any # tuples even if ALIGNOF_INT64_T is more. Note that we intentionally do not
# fixed-width, attalign=4 columns were at offsets divisible by 8 regardless # consider any types wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed
# of MAXIMUM_ALIGNOF to avoid that, but we no longer support any platforms # 8 would be too much of a penalty for disk and memory space.
# where TYPALIGN_DOUBLE != MAXIMUM_ALIGNOF.
#
# We assume without checking that long's alignment is at least as strong as
# char, short, or int. Note that we intentionally do not consider any types
# wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed 8 would be too
# much of a penalty for disk and memory space.
MAX_ALIGNOF=$ac_cv_alignof_double if test $ac_cv_alignof_int64_t -gt $ac_cv_alignof_double ; then
MAX_ALIGNOF=$ac_cv_alignof_int64_t
if test $ac_cv_alignof_long -gt $MAX_ALIGNOF ; then else
as_fn_error $? "alignment of 'long' is greater than the alignment of 'double'" "$LINENO" 5 MAX_ALIGNOF=$ac_cv_alignof_double
fi
if test $ac_cv_alignof_int64_t -gt $MAX_ALIGNOF ; then
as_fn_error $? "alignment of 'int64_t' is greater than the alignment of 'double'" "$LINENO" 5
fi fi
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF

View file

@ -2043,33 +2043,23 @@ AC_CHECK_SIZEOF([intmax_t])
AC_CHECK_ALIGNOF(short) AC_CHECK_ALIGNOF(short)
AC_CHECK_ALIGNOF(int) AC_CHECK_ALIGNOF(int)
AC_CHECK_ALIGNOF(long)
AC_CHECK_ALIGNOF(int64_t) AC_CHECK_ALIGNOF(int64_t)
AC_CHECK_ALIGNOF(double) AC_CHECK_ALIGNOF(double)
# Compute maximum alignment of any basic type. # Compute maximum alignment of any basic type.
# #
# We require 'double' to have the strictest alignment among the basic types, # We assume without checking that the maximum alignment requirement is that
# because otherwise the C ABI might impose 8-byte alignment on some of the # of int64_t and/or double. (On most platforms those are the same, but not
# other C types that correspond to TYPALIGN_DOUBLE SQL types. That could # everywhere.) For historical reasons, both int8 and float8 datatypes have
# cause a mismatch between the tuple layout and the C struct layout of a # typalign 'd', and therefore will be aligned per ALIGNOF_DOUBLE in database
# catalog tuple. We used to carefully order catalog columns such that any # tuples even if ALIGNOF_INT64_T is more. Note that we intentionally do not
# fixed-width, attalign=4 columns were at offsets divisible by 8 regardless # consider any types wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed
# of MAXIMUM_ALIGNOF to avoid that, but we no longer support any platforms # 8 would be too much of a penalty for disk and memory space.
# where TYPALIGN_DOUBLE != MAXIMUM_ALIGNOF.
#
# We assume without checking that long's alignment is at least as strong as
# char, short, or int. Note that we intentionally do not consider any types
# wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed 8 would be too
# much of a penalty for disk and memory space.
MAX_ALIGNOF=$ac_cv_alignof_double if test $ac_cv_alignof_int64_t -gt $ac_cv_alignof_double ; then
MAX_ALIGNOF=$ac_cv_alignof_int64_t
if test $ac_cv_alignof_long -gt $MAX_ALIGNOF ; then else
AC_MSG_ERROR([alignment of 'long' is greater than the alignment of 'double']) MAX_ALIGNOF=$ac_cv_alignof_double
fi
if test $ac_cv_alignof_int64_t -gt $MAX_ALIGNOF ; then
AC_MSG_ERROR([alignment of 'int64_t' is greater than the alignment of 'double'])
fi fi
AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.]) AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.])

View file

@ -1827,32 +1827,29 @@ endif
# Determine memory alignment requirements for the basic C data types. # Determine memory alignment requirements for the basic C data types.
alignof_types = ['short', 'int', 'long', 'double'] alignof_types = ['short', 'int', 'int64_t', 'double']
foreach t : alignof_types foreach t : alignof_types
align = cc.alignment(t, args: test_c_args) align = cc.alignment(t, args: test_c_args, prefix: '#include <stdint.h>')
cdata.set('ALIGNOF_@0@'.format(t.to_upper()), align) cdata.set('ALIGNOF_@0@'.format(t.to_upper()), align)
endforeach endforeach
# Compute maximum alignment of any basic type. # Compute maximum alignment of any basic type.
# #
# We require 'double' to have the strictest alignment among the basic types, # We assume without checking that the maximum alignment requirement is that
# because otherwise the C ABI might impose 8-byte alignment on some of the # of int64_t and/or double. (On most platforms those are the same, but not
# other C types that correspond to TYPALIGN_DOUBLE SQL types. That could # everywhere.) For historical reasons, both int8 and float8 datatypes have
# cause a mismatch between the tuple layout and the C struct layout of a # typalign 'd', and therefore will be aligned per ALIGNOF_DOUBLE in database
# catalog tuple. We used to carefully order catalog columns such that any # tuples even if ALIGNOF_INT64_T is more. Note that we intentionally do not
# fixed-width, attalign=4 columns were at offsets divisible by 8 regardless # consider any types wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed
# of MAXIMUM_ALIGNOF to avoid that, but we no longer support any platforms # 8 would be too much of a penalty for disk and memory space.
# where TYPALIGN_DOUBLE != MAXIMUM_ALIGNOF.
# alignof_int64_t = cdata.get('ALIGNOF_INT64_T')
# We assume without checking that int64_t's alignment is at least as strong
# as long, char, short, or int. Note that we intentionally do not consider
# any types wider than 64 bits, as allowing MAXIMUM_ALIGNOF to exceed 8
# would be too much of a penalty for disk and memory space.
alignof_double = cdata.get('ALIGNOF_DOUBLE') alignof_double = cdata.get('ALIGNOF_DOUBLE')
if cc.alignment('int64_t', args: test_c_args, prefix: '#include <stdint.h>') > alignof_double if alignof_int64_t > alignof_double
error('alignment of int64_t is greater than the alignment of double') cdata.set('MAXIMUM_ALIGNOF', alignof_int64_t)
else
cdata.set('MAXIMUM_ALIGNOF', alignof_double)
endif endif
cdata.set('MAXIMUM_ALIGNOF', alignof_double)
cdata.set('SIZEOF_LONG', cc.sizeof('long', args: test_c_args)) cdata.set('SIZEOF_LONG', cc.sizeof('long', args: test_c_args))
cdata.set('SIZEOF_LONG_LONG', cc.sizeof('long long', args: test_c_args)) cdata.set('SIZEOF_LONG_LONG', cc.sizeof('long long', args: test_c_args))

View file

@ -833,7 +833,7 @@ typedef NameData *Name;
#define SHORTALIGN(LEN) TYPEALIGN(ALIGNOF_SHORT, (LEN)) #define SHORTALIGN(LEN) TYPEALIGN(ALIGNOF_SHORT, (LEN))
#define INTALIGN(LEN) TYPEALIGN(ALIGNOF_INT, (LEN)) #define INTALIGN(LEN) TYPEALIGN(ALIGNOF_INT, (LEN))
#define LONGALIGN(LEN) TYPEALIGN(ALIGNOF_LONG, (LEN)) #define INT64ALIGN(LEN) TYPEALIGN(ALIGNOF_INT64_T, (LEN))
#define DOUBLEALIGN(LEN) TYPEALIGN(ALIGNOF_DOUBLE, (LEN)) #define DOUBLEALIGN(LEN) TYPEALIGN(ALIGNOF_DOUBLE, (LEN))
#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) #define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN))
/* MAXALIGN covers only built-in types, not buffers */ /* MAXALIGN covers only built-in types, not buffers */
@ -845,7 +845,7 @@ typedef NameData *Name;
#define SHORTALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_SHORT, (LEN)) #define SHORTALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_SHORT, (LEN))
#define INTALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_INT, (LEN)) #define INTALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_INT, (LEN))
#define LONGALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_LONG, (LEN)) #define INT64ALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_INT64_T, (LEN))
#define DOUBLEALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_DOUBLE, (LEN)) #define DOUBLEALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_DOUBLE, (LEN))
#define MAXALIGN_DOWN(LEN) TYPEALIGN_DOWN(MAXIMUM_ALIGNOF, (LEN)) #define MAXALIGN_DOWN(LEN) TYPEALIGN_DOWN(MAXIMUM_ALIGNOF, (LEN))
#define BUFFERALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_BUFFER, (LEN)) #define BUFFERALIGN_DOWN(LEN) TYPEALIGN_DOWN(ALIGNOF_BUFFER, (LEN))

View file

@ -19,6 +19,25 @@
#ifndef GENBKI_H #ifndef GENBKI_H
#define GENBKI_H #define GENBKI_H
/*
* These macros should be written before and after each catalog structure
* definition. On most platforms they do nothing, but on some platforms
* we need special hacks to coax the compiler into laying out the catalog
* struct compatibly with our tuple forming/deforming rules.
*
* On AIX, where ALIGNOF_DOUBLE < ALIGNOF_INT64_T, we need to coerce int64
* catalog fields to be aligned on just 4-byte boundaries. Ideally we'd
* write this like pack(push,ALIGNOF_DOUBLE), but gcc seems unwilling
* to take anything but a plain string literal as the argument of _Pragma.
*/
#if ALIGNOF_DOUBLE < ALIGNOF_INT64_T
#define BEGIN_CATALOG_STRUCT _Pragma("pack(push,4)")
#define END_CATALOG_STRUCT _Pragma("pack(pop)")
#else
#define BEGIN_CATALOG_STRUCT
#define END_CATALOG_STRUCT
#endif
/* Introduces a catalog's structure definition */ /* Introduces a catalog's structure definition */
#define CATALOG(name,oid,oidmacro) typedef struct CppConcat(FormData_,name) #define CATALOG(name,oid,oidmacro) typedef struct CppConcat(FormData_,name)

View file

@ -29,6 +29,8 @@
* cpp turns this into typedef struct FormData_pg_aggregate * cpp turns this into typedef struct FormData_pg_aggregate
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_aggregate,2600,AggregateRelationId) CATALOG(pg_aggregate,2600,AggregateRelationId)
{ {
/* pg_proc OID of the aggregate itself */ /* pg_proc OID of the aggregate itself */
@ -101,6 +103,8 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
#endif #endif
} FormData_pg_aggregate; } FormData_pg_aggregate;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_aggregate corresponds to a pointer to a tuple with * Form_pg_aggregate corresponds to a pointer to a tuple with
* the format of pg_aggregate relation. * the format of pg_aggregate relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_am * typedef struct FormData_pg_am
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_am,2601,AccessMethodRelationId) CATALOG(pg_am,2601,AccessMethodRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -40,6 +42,8 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
char amtype; char amtype;
} FormData_pg_am; } FormData_pg_am;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_am corresponds to a pointer to a tuple with * Form_pg_am corresponds to a pointer to a tuple with
* the format of pg_am relation. * the format of pg_am relation.

View file

@ -51,6 +51,8 @@
* typedef struct FormData_pg_amop * typedef struct FormData_pg_amop
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_amop,2602,AccessMethodOperatorRelationId) CATALOG(pg_amop,2602,AccessMethodOperatorRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -80,6 +82,8 @@ CATALOG(pg_amop,2602,AccessMethodOperatorRelationId)
Oid amopsortfamily BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_opfamily); Oid amopsortfamily BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_opfamily);
} FormData_pg_amop; } FormData_pg_amop;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_amop corresponds to a pointer to a tuple with * Form_pg_amop corresponds to a pointer to a tuple with
* the format of pg_amop relation. * the format of pg_amop relation.

View file

@ -40,6 +40,8 @@
* typedef struct FormData_pg_amproc * typedef struct FormData_pg_amproc
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_amproc,2603,AccessMethodProcedureRelationId) CATALOG(pg_amproc,2603,AccessMethodProcedureRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -60,6 +62,8 @@ CATALOG(pg_amproc,2603,AccessMethodProcedureRelationId)
regproc amproc BKI_LOOKUP(pg_proc); regproc amproc BKI_LOOKUP(pg_proc);
} FormData_pg_amproc; } FormData_pg_amproc;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_amproc corresponds to a pointer to a tuple with * Form_pg_amproc corresponds to a pointer to a tuple with
* the format of pg_amproc relation. * the format of pg_amproc relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_attrdef * typedef struct FormData_pg_attrdef
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_attrdef,2604,AttrDefaultRelationId) CATALOG(pg_attrdef,2604,AttrDefaultRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -41,6 +43,8 @@ CATALOG(pg_attrdef,2604,AttrDefaultRelationId)
#endif #endif
} FormData_pg_attrdef; } FormData_pg_attrdef;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_attrdef corresponds to a pointer to a tuple with * Form_pg_attrdef corresponds to a pointer to a tuple with
* the format of pg_attrdef relation. * the format of pg_attrdef relation.

View file

@ -34,6 +34,8 @@
* You may need to change catalog/genbki.pl as well. * You may need to change catalog/genbki.pl as well.
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,AttributeRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,AttributeRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid attrelid BKI_LOOKUP(pg_class); /* OID of relation containing Oid attrelid BKI_LOOKUP(pg_class); /* OID of relation containing
@ -185,6 +187,8 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
#endif #endif
} FormData_pg_attribute; } FormData_pg_attribute;
END_CATALOG_STRUCT
/* /*
* ATTRIBUTE_FIXED_PART_SIZE is the size of the fixed-layout, * ATTRIBUTE_FIXED_PART_SIZE is the size of the fixed-layout,
* guaranteed-not-null part of a pg_attribute row. This is in fact as much * guaranteed-not-null part of a pg_attribute row. This is in fact as much

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_auth_members * typedef struct FormData_pg_auth_members
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_auth_members,1261,AuthMemRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2843,AuthMemRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_auth_members,1261,AuthMemRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2843,AuthMemRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -38,6 +40,8 @@ CATALOG(pg_auth_members,1261,AuthMemRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_
bool set_option; /* use SET ROLE to the target role? */ bool set_option; /* use SET ROLE to the target role? */
} FormData_pg_auth_members; } FormData_pg_auth_members;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_auth_members corresponds to a pointer to a tuple with * Form_pg_auth_members corresponds to a pointer to a tuple with
* the format of pg_auth_members relation. * the format of pg_auth_members relation.

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_authid * typedef struct FormData_pg_authid
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842,AuthIdRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842,AuthIdRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -48,6 +50,8 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
#endif #endif
} FormData_pg_authid; } FormData_pg_authid;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_authid corresponds to a pointer to a tuple with * Form_pg_authid corresponds to a pointer to a tuple with
* the format of pg_authid relation. * the format of pg_authid relation.

View file

@ -29,6 +29,8 @@
* typedef struct FormData_pg_cast * typedef struct FormData_pg_cast
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_cast,2605,CastRelationId) CATALOG(pg_cast,2605,CastRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -49,6 +51,8 @@ CATALOG(pg_cast,2605,CastRelationId)
char castmethod; char castmethod;
} FormData_pg_cast; } FormData_pg_cast;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_cast corresponds to a pointer to a tuple with * Form_pg_cast corresponds to a pointer to a tuple with
* the format of pg_cast relation. * the format of pg_cast relation.

View file

@ -29,6 +29,8 @@
* BKI_BOOTSTRAP catalogs, since only those rows appear in pg_class.dat. * BKI_BOOTSTRAP catalogs, since only those rows appear in pg_class.dat.
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,RelationRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,RelationRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
/* oid */ /* oid */
@ -144,6 +146,8 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
#endif #endif
} FormData_pg_class; } FormData_pg_class;
END_CATALOG_STRUCT
/* Size of fixed part of pg_class tuples, not counting var-length fields */ /* Size of fixed part of pg_class tuples, not counting var-length fields */
#define CLASS_TUPLE_SIZE \ #define CLASS_TUPLE_SIZE \
(offsetof(FormData_pg_class,relminmxid) + sizeof(TransactionId)) (offsetof(FormData_pg_class,relminmxid) + sizeof(TransactionId))

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_collation * typedef struct FormData_pg_collation
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_collation,3456,CollationRelationId) CATALOG(pg_collation,3456,CollationRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -50,6 +52,8 @@ CATALOG(pg_collation,3456,CollationRelationId)
#endif #endif
} FormData_pg_collation; } FormData_pg_collation;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_collation corresponds to a pointer to a row with * Form_pg_collation corresponds to a pointer to a row with
* the format of pg_collation relation. * the format of pg_collation relation.

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_constraint * typedef struct FormData_pg_constraint
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_constraint,2606,ConstraintRelationId) CATALOG(pg_constraint,2606,ConstraintRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -167,6 +169,8 @@ CATALOG(pg_constraint,2606,ConstraintRelationId)
#endif #endif
} FormData_pg_constraint; } FormData_pg_constraint;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_constraint corresponds to a pointer to a tuple with * Form_pg_constraint corresponds to a pointer to a tuple with
* the format of pg_constraint relation. * the format of pg_constraint relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_conversion * typedef struct FormData_pg_conversion
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_conversion,2607,ConversionRelationId) CATALOG(pg_conversion,2607,ConversionRelationId)
{ {
/* oid */ /* oid */
@ -53,6 +55,8 @@ CATALOG(pg_conversion,2607,ConversionRelationId)
bool condefault BKI_DEFAULT(t); bool condefault BKI_DEFAULT(t);
} FormData_pg_conversion; } FormData_pg_conversion;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_conversion corresponds to a pointer to a tuple with * Form_pg_conversion corresponds to a pointer to a tuple with
* the format of pg_conversion relation. * the format of pg_conversion relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_database * typedef struct FormData_pg_database
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248,DatabaseRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248,DatabaseRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
/* oid */ /* oid */
@ -88,6 +90,8 @@ CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID
#endif #endif
} FormData_pg_database; } FormData_pg_database;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_database corresponds to a pointer to a tuple with * Form_pg_database corresponds to a pointer to a tuple with
* the format of pg_database relation. * the format of pg_database relation.

View file

@ -31,6 +31,8 @@
* typedef struct FormData_pg_db_role_setting * typedef struct FormData_pg_db_role_setting
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_db_role_setting,2964,DbRoleSettingRelationId) BKI_SHARED_RELATION CATALOG(pg_db_role_setting,2964,DbRoleSettingRelationId) BKI_SHARED_RELATION
{ {
/* database, or 0 for a role-specific setting */ /* database, or 0 for a role-specific setting */
@ -44,6 +46,8 @@ CATALOG(pg_db_role_setting,2964,DbRoleSettingRelationId) BKI_SHARED_RELATION
#endif #endif
} FormData_pg_db_role_setting; } FormData_pg_db_role_setting;
END_CATALOG_STRUCT
typedef FormData_pg_db_role_setting * Form_pg_db_role_setting; typedef FormData_pg_db_role_setting * Form_pg_db_role_setting;
DECLARE_TOAST_WITH_MACRO(pg_db_role_setting, 2966, 2967, PgDbRoleSettingToastTable, PgDbRoleSettingToastIndex); DECLARE_TOAST_WITH_MACRO(pg_db_role_setting, 2966, 2967, PgDbRoleSettingToastTable, PgDbRoleSettingToastIndex);

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_default_acl * typedef struct FormData_pg_default_acl
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_default_acl,826,DefaultAclRelationId) CATALOG(pg_default_acl,826,DefaultAclRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -42,6 +44,8 @@ CATALOG(pg_default_acl,826,DefaultAclRelationId)
#endif #endif
} FormData_pg_default_acl; } FormData_pg_default_acl;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_default_acl corresponds to a pointer to a tuple with * Form_pg_default_acl corresponds to a pointer to a tuple with
* the format of pg_default_acl relation. * the format of pg_default_acl relation.

View file

@ -39,6 +39,8 @@
* typedef struct FormData_pg_depend * typedef struct FormData_pg_depend
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_depend,2608,DependRelationId) CATALOG(pg_depend,2608,DependRelationId)
{ {
/* /*
@ -64,6 +66,8 @@ CATALOG(pg_depend,2608,DependRelationId)
char deptype; /* see codes in dependency.h */ char deptype; /* see codes in dependency.h */
} FormData_pg_depend; } FormData_pg_depend;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_depend corresponds to a pointer to a row with * Form_pg_depend corresponds to a pointer to a row with
* the format of pg_depend relation. * the format of pg_depend relation.

View file

@ -45,6 +45,8 @@
* typedef struct FormData_pg_description * typedef struct FormData_pg_description
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_description,2609,DescriptionRelationId) CATALOG(pg_description,2609,DescriptionRelationId)
{ {
Oid objoid; /* OID of object itself */ Oid objoid; /* OID of object itself */
@ -56,6 +58,8 @@ CATALOG(pg_description,2609,DescriptionRelationId)
#endif #endif
} FormData_pg_description; } FormData_pg_description;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_description corresponds to a pointer to a tuple with * Form_pg_description corresponds to a pointer to a tuple with
* the format of pg_description relation. * the format of pg_description relation.

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_enum * typedef struct FormData_pg_enum
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_enum,3501,EnumRelationId) CATALOG(pg_enum,3501,EnumRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -36,6 +38,8 @@ CATALOG(pg_enum,3501,EnumRelationId)
NameData enumlabel; /* text representation of enum value */ NameData enumlabel; /* text representation of enum value */
} FormData_pg_enum; } FormData_pg_enum;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_enum corresponds to a pointer to a tuple with * Form_pg_enum corresponds to a pointer to a tuple with
* the format of pg_enum relation. * the format of pg_enum relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_event_trigger * typedef struct FormData_pg_event_trigger
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_event_trigger,3466,EventTriggerRelationId) CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -42,6 +44,8 @@ CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
#endif #endif
} FormData_pg_event_trigger; } FormData_pg_event_trigger;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_event_trigger corresponds to a pointer to a tuple with * Form_pg_event_trigger corresponds to a pointer to a tuple with
* the format of pg_event_trigger relation. * the format of pg_event_trigger relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_extension * typedef struct FormData_pg_extension
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_extension,3079,ExtensionRelationId) CATALOG(pg_extension,3079,ExtensionRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -44,6 +46,8 @@ CATALOG(pg_extension,3079,ExtensionRelationId)
#endif #endif
} FormData_pg_extension; } FormData_pg_extension;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_extension corresponds to a pointer to a tuple with * Form_pg_extension corresponds to a pointer to a tuple with
* the format of pg_extension relation. * the format of pg_extension relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_foreign_data_wrapper * typedef struct FormData_pg_foreign_data_wrapper
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_foreign_data_wrapper,2328,ForeignDataWrapperRelationId) CATALOG(pg_foreign_data_wrapper,2328,ForeignDataWrapperRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -43,6 +45,8 @@ CATALOG(pg_foreign_data_wrapper,2328,ForeignDataWrapperRelationId)
#endif #endif
} FormData_pg_foreign_data_wrapper; } FormData_pg_foreign_data_wrapper;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_foreign_data_wrapper corresponds to a pointer to a tuple with * Form_pg_foreign_data_wrapper corresponds to a pointer to a tuple with
* the format of pg_foreign_data_wrapper relation. * the format of pg_foreign_data_wrapper relation.

View file

@ -25,6 +25,8 @@
* typedef struct FormData_pg_foreign_server * typedef struct FormData_pg_foreign_server
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_foreign_server,1417,ForeignServerRelationId) CATALOG(pg_foreign_server,1417,ForeignServerRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -40,6 +42,8 @@ CATALOG(pg_foreign_server,1417,ForeignServerRelationId)
#endif #endif
} FormData_pg_foreign_server; } FormData_pg_foreign_server;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_foreign_server corresponds to a pointer to a tuple with * Form_pg_foreign_server corresponds to a pointer to a tuple with
* the format of pg_foreign_server relation. * the format of pg_foreign_server relation.

View file

@ -25,6 +25,8 @@
* typedef struct FormData_pg_foreign_table * typedef struct FormData_pg_foreign_table
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_foreign_table,3118,ForeignTableRelationId) CATALOG(pg_foreign_table,3118,ForeignTableRelationId)
{ {
Oid ftrelid BKI_LOOKUP(pg_class); /* OID of foreign table */ Oid ftrelid BKI_LOOKUP(pg_class); /* OID of foreign table */
@ -35,6 +37,8 @@ CATALOG(pg_foreign_table,3118,ForeignTableRelationId)
#endif #endif
} FormData_pg_foreign_table; } FormData_pg_foreign_table;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_foreign_table corresponds to a pointer to a tuple with * Form_pg_foreign_table corresponds to a pointer to a tuple with
* the format of pg_foreign_table relation. * the format of pg_foreign_table relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_index. * typedef struct FormData_pg_index.
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
{ {
Oid indexrelid BKI_LOOKUP(pg_class); /* OID of the index */ Oid indexrelid BKI_LOOKUP(pg_class); /* OID of the index */
@ -62,6 +64,8 @@ CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
#endif #endif
} FormData_pg_index; } FormData_pg_index;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_index corresponds to a pointer to a tuple with * Form_pg_index corresponds to a pointer to a tuple with
* the format of pg_index relation. * the format of pg_index relation.

View file

@ -29,6 +29,8 @@
* typedef struct FormData_pg_inherits * typedef struct FormData_pg_inherits
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_inherits,2611,InheritsRelationId) CATALOG(pg_inherits,2611,InheritsRelationId)
{ {
Oid inhrelid BKI_LOOKUP(pg_class); Oid inhrelid BKI_LOOKUP(pg_class);
@ -37,6 +39,8 @@ CATALOG(pg_inherits,2611,InheritsRelationId)
bool inhdetachpending; bool inhdetachpending;
} FormData_pg_inherits; } FormData_pg_inherits;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_inherits corresponds to a pointer to a tuple with * Form_pg_inherits corresponds to a pointer to a tuple with
* the format of pg_inherits relation. * the format of pg_inherits relation.

View file

@ -43,6 +43,8 @@
* typedef struct FormData_pg_init_privs * typedef struct FormData_pg_init_privs
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_init_privs,3394,InitPrivsRelationId) CATALOG(pg_init_privs,3394,InitPrivsRelationId)
{ {
Oid objoid; /* OID of object itself */ Oid objoid; /* OID of object itself */
@ -56,6 +58,8 @@ CATALOG(pg_init_privs,3394,InitPrivsRelationId)
#endif #endif
} FormData_pg_init_privs; } FormData_pg_init_privs;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_init_privs corresponds to a pointer to a tuple with * Form_pg_init_privs corresponds to a pointer to a tuple with
* the format of pg_init_privs relation. * the format of pg_init_privs relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_language * typedef struct FormData_pg_language
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_language,2612,LanguageRelationId) CATALOG(pg_language,2612,LanguageRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -57,6 +59,8 @@ CATALOG(pg_language,2612,LanguageRelationId)
#endif #endif
} FormData_pg_language; } FormData_pg_language;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_language corresponds to a pointer to a tuple with * Form_pg_language corresponds to a pointer to a tuple with
* the format of pg_language relation. * the format of pg_language relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_largeobject * typedef struct FormData_pg_largeobject
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_largeobject,2613,LargeObjectRelationId) CATALOG(pg_largeobject,2613,LargeObjectRelationId)
{ {
Oid loid BKI_LOOKUP(pg_largeobject_metadata); /* Identifier of large Oid loid BKI_LOOKUP(pg_largeobject_metadata); /* Identifier of large
@ -38,6 +40,8 @@ CATALOG(pg_largeobject,2613,LargeObjectRelationId)
* zero-length) */ * zero-length) */
} FormData_pg_largeobject; } FormData_pg_largeobject;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_largeobject corresponds to a pointer to a tuple with * Form_pg_largeobject corresponds to a pointer to a tuple with
* the format of pg_largeobject relation. * the format of pg_largeobject relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_largeobject_metadata * typedef struct FormData_pg_largeobject_metadata
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_largeobject_metadata,2995,LargeObjectMetadataRelationId) CATALOG(pg_largeobject_metadata,2995,LargeObjectMetadataRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -39,6 +41,8 @@ CATALOG(pg_largeobject_metadata,2995,LargeObjectMetadataRelationId)
#endif #endif
} FormData_pg_largeobject_metadata; } FormData_pg_largeobject_metadata;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_largeobject_metadata corresponds to a pointer to a tuple * Form_pg_largeobject_metadata corresponds to a pointer to a tuple
* with the format of pg_largeobject_metadata relation. * with the format of pg_largeobject_metadata relation.

View file

@ -32,6 +32,8 @@
* nspacl access privilege list * nspacl access privilege list
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_namespace,2615,NamespaceRelationId) CATALOG(pg_namespace,2615,NamespaceRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -44,6 +46,8 @@ CATALOG(pg_namespace,2615,NamespaceRelationId)
#endif #endif
} FormData_pg_namespace; } FormData_pg_namespace;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_namespace corresponds to a pointer to a tuple with * Form_pg_namespace corresponds to a pointer to a tuple with
* the format of pg_namespace relation. * the format of pg_namespace relation.

View file

@ -46,6 +46,8 @@
* typedef struct FormData_pg_opclass * typedef struct FormData_pg_opclass
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_opclass,2616,OperatorClassRelationId) CATALOG(pg_opclass,2616,OperatorClassRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -75,6 +77,8 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type); Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
} FormData_pg_opclass; } FormData_pg_opclass;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_opclass corresponds to a pointer to a tuple with * Form_pg_opclass corresponds to a pointer to a tuple with
* the format of pg_opclass relation. * the format of pg_opclass relation.

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_operator * typedef struct FormData_pg_operator
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_operator,2617,OperatorRelationId) CATALOG(pg_operator,2617,OperatorRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -75,6 +77,8 @@ CATALOG(pg_operator,2617,OperatorRelationId)
regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc); regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
} FormData_pg_operator; } FormData_pg_operator;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_operator corresponds to a pointer to a tuple with * Form_pg_operator corresponds to a pointer to a tuple with
* the format of pg_operator relation. * the format of pg_operator relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_opfamily * typedef struct FormData_pg_opfamily
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_opfamily,2753,OperatorFamilyRelationId) CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -43,6 +45,8 @@ CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
Oid opfowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid); Oid opfowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
} FormData_pg_opfamily; } FormData_pg_opfamily;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_opfamily corresponds to a pointer to a tuple with * Form_pg_opfamily corresponds to a pointer to a tuple with
* the format of pg_opfamily relation. * the format of pg_opfamily relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_parameter_acl * typedef struct FormData_pg_parameter_acl
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_parameter_acl,6243,ParameterAclRelationId) BKI_SHARED_RELATION CATALOG(pg_parameter_acl,6243,ParameterAclRelationId) BKI_SHARED_RELATION
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -40,6 +42,8 @@ CATALOG(pg_parameter_acl,6243,ParameterAclRelationId) BKI_SHARED_RELATION
#endif #endif
} FormData_pg_parameter_acl; } FormData_pg_parameter_acl;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_parameter_acl corresponds to a pointer to a tuple with * Form_pg_parameter_acl corresponds to a pointer to a tuple with

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_partitioned_table * typedef struct FormData_pg_partitioned_table
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_partitioned_table,3350,PartitionedRelationId) CATALOG(pg_partitioned_table,3350,PartitionedRelationId)
{ {
Oid partrelid BKI_LOOKUP(pg_class); /* partitioned table oid */ Oid partrelid BKI_LOOKUP(pg_class); /* partitioned table oid */
@ -57,6 +59,8 @@ CATALOG(pg_partitioned_table,3350,PartitionedRelationId)
#endif #endif
} FormData_pg_partitioned_table; } FormData_pg_partitioned_table;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_partitioned_table corresponds to a pointer to a tuple with * Form_pg_partitioned_table corresponds to a pointer to a tuple with
* the format of pg_partitioned_table relation. * the format of pg_partitioned_table relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_policy * typedef struct FormData_pg_policy
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_policy,3256,PolicyRelationId) CATALOG(pg_policy,3256,PolicyRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -43,6 +45,8 @@ CATALOG(pg_policy,3256,PolicyRelationId)
#endif #endif
} FormData_pg_policy; } FormData_pg_policy;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_policy corresponds to a pointer to a row with * Form_pg_policy corresponds to a pointer to a row with
* the format of pg_policy relation. * the format of pg_policy relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_proc * typedef struct FormData_pg_proc
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,ProcedureRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,ProcedureRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -128,6 +130,8 @@ CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,Proce
#endif #endif
} FormData_pg_proc; } FormData_pg_proc;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_proc corresponds to a pointer to a tuple with * Form_pg_proc corresponds to a pointer to a tuple with
* the format of pg_proc relation. * the format of pg_proc relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_publication * typedef struct FormData_pg_publication
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_publication,6104,PublicationRelationId) CATALOG(pg_publication,6104,PublicationRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -68,6 +70,8 @@ CATALOG(pg_publication,6104,PublicationRelationId)
char pubgencols; char pubgencols;
} FormData_pg_publication; } FormData_pg_publication;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_publication corresponds to a pointer to a tuple with * Form_pg_publication corresponds to a pointer to a tuple with
* the format of pg_publication relation. * the format of pg_publication relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_publication_namespace * typedef struct FormData_pg_publication_namespace
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_publication_namespace,6237,PublicationNamespaceRelationId) CATALOG(pg_publication_namespace,6237,PublicationNamespaceRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -34,6 +36,8 @@ CATALOG(pg_publication_namespace,6237,PublicationNamespaceRelationId)
Oid pnnspid BKI_LOOKUP(pg_namespace); /* Oid of the schema */ Oid pnnspid BKI_LOOKUP(pg_namespace); /* Oid of the schema */
} FormData_pg_publication_namespace; } FormData_pg_publication_namespace;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_publication_namespace corresponds to a pointer to a tuple with * Form_pg_publication_namespace corresponds to a pointer to a tuple with
* the format of pg_publication_namespace relation. * the format of pg_publication_namespace relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_publication_rel * typedef struct FormData_pg_publication_rel
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_publication_rel,6106,PublicationRelRelationId) CATALOG(pg_publication_rel,6106,PublicationRelRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -38,6 +40,8 @@ CATALOG(pg_publication_rel,6106,PublicationRelRelationId)
#endif #endif
} FormData_pg_publication_rel; } FormData_pg_publication_rel;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_publication_rel corresponds to a pointer to a tuple with * Form_pg_publication_rel corresponds to a pointer to a tuple with
* the format of pg_publication_rel relation. * the format of pg_publication_rel relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_range * typedef struct FormData_pg_range
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_range,3541,RangeRelationId) CATALOG(pg_range,3541,RangeRelationId)
{ {
/* OID of owning range type */ /* OID of owning range type */
@ -59,6 +61,8 @@ CATALOG(pg_range,3541,RangeRelationId)
regproc rngsubdiff BKI_LOOKUP_OPT(pg_proc); regproc rngsubdiff BKI_LOOKUP_OPT(pg_proc);
} FormData_pg_range; } FormData_pg_range;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_range corresponds to a pointer to a tuple with * Form_pg_range corresponds to a pointer to a tuple with
* the format of pg_range relation. * the format of pg_range relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_replication_origin * typedef struct FormData_pg_replication_origin
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELATION CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELATION
{ {
/* /*
@ -52,6 +54,8 @@ CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELAT
#endif #endif
} FormData_pg_replication_origin; } FormData_pg_replication_origin;
END_CATALOG_STRUCT
typedef FormData_pg_replication_origin *Form_pg_replication_origin; typedef FormData_pg_replication_origin *Form_pg_replication_origin;
DECLARE_UNIQUE_INDEX_PKEY(pg_replication_origin_roiident_index, 6001, ReplicationOriginIdentIndex, pg_replication_origin, btree(roident oid_ops)); DECLARE_UNIQUE_INDEX_PKEY(pg_replication_origin_roiident_index, 6001, ReplicationOriginIdentIndex, pg_replication_origin, btree(roident oid_ops));

View file

@ -29,6 +29,8 @@
* typedef struct FormData_pg_rewrite * typedef struct FormData_pg_rewrite
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_rewrite,2618,RewriteRelationId) CATALOG(pg_rewrite,2618,RewriteRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -44,6 +46,8 @@ CATALOG(pg_rewrite,2618,RewriteRelationId)
#endif #endif
} FormData_pg_rewrite; } FormData_pg_rewrite;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_rewrite corresponds to a pointer to a tuple with * Form_pg_rewrite corresponds to a pointer to a tuple with
* the format of pg_rewrite relation. * the format of pg_rewrite relation.

View file

@ -25,6 +25,8 @@
* typedef struct FormData_pg_seclabel * typedef struct FormData_pg_seclabel
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_seclabel,3596,SecLabelRelationId) CATALOG(pg_seclabel,3596,SecLabelRelationId)
{ {
Oid objoid; /* OID of the object itself */ Oid objoid; /* OID of the object itself */
@ -38,6 +40,8 @@ CATALOG(pg_seclabel,3596,SecLabelRelationId)
#endif #endif
} FormData_pg_seclabel; } FormData_pg_seclabel;
END_CATALOG_STRUCT
DECLARE_TOAST(pg_seclabel, 3598, 3599); DECLARE_TOAST(pg_seclabel, 3598, 3599);
DECLARE_UNIQUE_INDEX_PKEY(pg_seclabel_object_index, 3597, SecLabelObjectIndexId, pg_seclabel, btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider text_ops)); DECLARE_UNIQUE_INDEX_PKEY(pg_seclabel_object_index, 3597, SecLabelObjectIndexId, pg_seclabel, btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider text_ops));

View file

@ -20,6 +20,8 @@
#include "catalog/genbki.h" #include "catalog/genbki.h"
#include "catalog/pg_sequence_d.h" /* IWYU pragma: export */ #include "catalog/pg_sequence_d.h" /* IWYU pragma: export */
BEGIN_CATALOG_STRUCT
CATALOG(pg_sequence,2224,SequenceRelationId) CATALOG(pg_sequence,2224,SequenceRelationId)
{ {
Oid seqrelid BKI_LOOKUP(pg_class); Oid seqrelid BKI_LOOKUP(pg_class);
@ -32,6 +34,8 @@ CATALOG(pg_sequence,2224,SequenceRelationId)
bool seqcycle; bool seqcycle;
} FormData_pg_sequence; } FormData_pg_sequence;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_sequence corresponds to a pointer to a tuple with * Form_pg_sequence corresponds to a pointer to a tuple with
* the format of pg_sequence relation. * the format of pg_sequence relation.

View file

@ -35,6 +35,8 @@
* typedef struct FormData_pg_shdepend * typedef struct FormData_pg_shdepend
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_shdepend,1214,SharedDependRelationId) BKI_SHARED_RELATION CATALOG(pg_shdepend,1214,SharedDependRelationId) BKI_SHARED_RELATION
{ {
/* /*
@ -65,6 +67,8 @@ CATALOG(pg_shdepend,1214,SharedDependRelationId) BKI_SHARED_RELATION
char deptype; /* see codes in dependency.h */ char deptype; /* see codes in dependency.h */
} FormData_pg_shdepend; } FormData_pg_shdepend;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_shdepend corresponds to a pointer to a row with * Form_pg_shdepend corresponds to a pointer to a row with
* the format of pg_shdepend relation. * the format of pg_shdepend relation.

View file

@ -38,6 +38,8 @@
* typedef struct FormData_pg_shdescription * typedef struct FormData_pg_shdescription
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_shdescription,2396,SharedDescriptionRelationId) BKI_SHARED_RELATION CATALOG(pg_shdescription,2396,SharedDescriptionRelationId) BKI_SHARED_RELATION
{ {
Oid objoid; /* OID of object itself */ Oid objoid; /* OID of object itself */
@ -48,6 +50,8 @@ CATALOG(pg_shdescription,2396,SharedDescriptionRelationId) BKI_SHARED_RELATION
#endif #endif
} FormData_pg_shdescription; } FormData_pg_shdescription;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_shdescription corresponds to a pointer to a tuple with * Form_pg_shdescription corresponds to a pointer to a tuple with
* the format of pg_shdescription relation. * the format of pg_shdescription relation.

View file

@ -25,6 +25,8 @@
* typedef struct FormData_pg_shseclabel * typedef struct FormData_pg_shseclabel
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_shseclabel,3592,SharedSecLabelRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(4066,SharedSecLabelRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_shseclabel,3592,SharedSecLabelRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(4066,SharedSecLabelRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid objoid; /* OID of the shared object itself */ Oid objoid; /* OID of the shared object itself */
@ -37,6 +39,8 @@ CATALOG(pg_shseclabel,3592,SharedSecLabelRelationId) BKI_SHARED_RELATION BKI_ROW
#endif #endif
} FormData_pg_shseclabel; } FormData_pg_shseclabel;
END_CATALOG_STRUCT
typedef FormData_pg_shseclabel * Form_pg_shseclabel; typedef FormData_pg_shseclabel * Form_pg_shseclabel;
DECLARE_TOAST_WITH_MACRO(pg_shseclabel, 4060, 4061, PgShseclabelToastTable, PgShseclabelToastIndex); DECLARE_TOAST_WITH_MACRO(pg_shseclabel, 4060, 4061, PgShseclabelToastTable, PgShseclabelToastIndex);

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_statistic * typedef struct FormData_pg_statistic
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_statistic,2619,StatisticRelationId) CATALOG(pg_statistic,2619,StatisticRelationId)
{ {
/* These fields form the unique key for the entry: */ /* These fields form the unique key for the entry: */
@ -124,6 +126,8 @@ CATALOG(pg_statistic,2619,StatisticRelationId)
#endif #endif
} FormData_pg_statistic; } FormData_pg_statistic;
END_CATALOG_STRUCT
#define STATISTIC_NUM_SLOTS 5 #define STATISTIC_NUM_SLOTS 5

View file

@ -30,6 +30,8 @@
* typedef struct FormData_pg_statistic_ext * typedef struct FormData_pg_statistic_ext
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_statistic_ext,3381,StatisticExtRelationId) CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -61,6 +63,8 @@ CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
} FormData_pg_statistic_ext; } FormData_pg_statistic_ext;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_statistic_ext corresponds to a pointer to a tuple with * Form_pg_statistic_ext corresponds to a pointer to a tuple with
* the format of pg_statistic_ext relation. * the format of pg_statistic_ext relation.

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_statistic_ext_data * typedef struct FormData_pg_statistic_ext_data
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_statistic_ext_data,3429,StatisticExtDataRelationId) CATALOG(pg_statistic_ext_data,3429,StatisticExtDataRelationId)
{ {
Oid stxoid BKI_LOOKUP(pg_statistic_ext); /* statistics object Oid stxoid BKI_LOOKUP(pg_statistic_ext); /* statistics object
@ -45,6 +47,8 @@ CATALOG(pg_statistic_ext_data,3429,StatisticExtDataRelationId)
} FormData_pg_statistic_ext_data; } FormData_pg_statistic_ext_data;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_statistic_ext_data corresponds to a pointer to a tuple with * Form_pg_statistic_ext_data corresponds to a pointer to a tuple with
* the format of pg_statistic_ext_data relation. * the format of pg_statistic_ext_data relation.

View file

@ -40,6 +40,8 @@
* here, be sure to update that (or, if the new column is not to be publicly * here, be sure to update that (or, if the new column is not to be publicly
* readable, update associated comments and catalogs.sgml instead). * readable, update associated comments and catalogs.sgml instead).
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_subscription,6100,SubscriptionRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101,SubscriptionRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_subscription,6100,SubscriptionRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101,SubscriptionRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -111,6 +113,8 @@ CATALOG(pg_subscription,6100,SubscriptionRelationId) BKI_SHARED_RELATION BKI_ROW
#endif #endif
} FormData_pg_subscription; } FormData_pg_subscription;
END_CATALOG_STRUCT
typedef FormData_pg_subscription *Form_pg_subscription; typedef FormData_pg_subscription *Form_pg_subscription;
DECLARE_TOAST_WITH_MACRO(pg_subscription, 4183, 4184, PgSubscriptionToastTable, PgSubscriptionToastIndex); DECLARE_TOAST_WITH_MACRO(pg_subscription, 4183, 4184, PgSubscriptionToastTable, PgSubscriptionToastIndex);

View file

@ -28,6 +28,8 @@
* typedef struct FormData_pg_subscription_rel * typedef struct FormData_pg_subscription_rel
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_subscription_rel,6102,SubscriptionRelRelationId) CATALOG(pg_subscription_rel,6102,SubscriptionRelRelationId)
{ {
Oid srsubid BKI_LOOKUP(pg_subscription); /* Oid of subscription */ Oid srsubid BKI_LOOKUP(pg_subscription); /* Oid of subscription */
@ -47,6 +49,8 @@ CATALOG(pg_subscription_rel,6102,SubscriptionRelRelationId)
#endif #endif
} FormData_pg_subscription_rel; } FormData_pg_subscription_rel;
END_CATALOG_STRUCT
typedef FormData_pg_subscription_rel *Form_pg_subscription_rel; typedef FormData_pg_subscription_rel *Form_pg_subscription_rel;
DECLARE_UNIQUE_INDEX_PKEY(pg_subscription_rel_srrelid_srsubid_index, 6117, SubscriptionRelSrrelidSrsubidIndexId, pg_subscription_rel, btree(srrelid oid_ops, srsubid oid_ops)); DECLARE_UNIQUE_INDEX_PKEY(pg_subscription_rel_srrelid_srsubid_index, 6117, SubscriptionRelSrrelidSrsubidIndexId, pg_subscription_rel, btree(srrelid oid_ops, srsubid oid_ops));

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_tablespace * typedef struct FormData_pg_tablespace
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_tablespace,1213,TableSpaceRelationId) BKI_SHARED_RELATION CATALOG(pg_tablespace,1213,TableSpaceRelationId) BKI_SHARED_RELATION
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -40,6 +42,8 @@ CATALOG(pg_tablespace,1213,TableSpaceRelationId) BKI_SHARED_RELATION
#endif #endif
} FormData_pg_tablespace; } FormData_pg_tablespace;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_tablespace corresponds to a pointer to a tuple with * Form_pg_tablespace corresponds to a pointer to a tuple with
* the format of pg_tablespace relation. * the format of pg_tablespace relation.

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_transform * typedef struct FormData_pg_transform
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_transform,3576,TransformRelationId) CATALOG(pg_transform,3576,TransformRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -35,6 +37,8 @@ CATALOG(pg_transform,3576,TransformRelationId)
regproc trftosql BKI_LOOKUP_OPT(pg_proc); regproc trftosql BKI_LOOKUP_OPT(pg_proc);
} FormData_pg_transform; } FormData_pg_transform;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_transform corresponds to a pointer to a tuple with * Form_pg_transform corresponds to a pointer to a tuple with
* the format of pg_transform relation. * the format of pg_transform relation.

View file

@ -31,6 +31,8 @@
* to be associated with a deferrable constraint. * to be associated with a deferrable constraint.
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_trigger,2620,TriggerRelationId) CATALOG(pg_trigger,2620,TriggerRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -72,6 +74,8 @@ CATALOG(pg_trigger,2620,TriggerRelationId)
#endif #endif
} FormData_pg_trigger; } FormData_pg_trigger;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_trigger corresponds to a pointer to a tuple with * Form_pg_trigger corresponds to a pointer to a tuple with
* the format of pg_trigger relation. * the format of pg_trigger relation.

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_ts_config * typedef struct FormData_pg_ts_config
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_ts_config,3602,TSConfigRelationId) CATALOG(pg_ts_config,3602,TSConfigRelationId)
{ {
/* oid */ /* oid */
@ -45,6 +47,8 @@ CATALOG(pg_ts_config,3602,TSConfigRelationId)
Oid cfgparser BKI_LOOKUP(pg_ts_parser); Oid cfgparser BKI_LOOKUP(pg_ts_parser);
} FormData_pg_ts_config; } FormData_pg_ts_config;
END_CATALOG_STRUCT
typedef FormData_pg_ts_config *Form_pg_ts_config; typedef FormData_pg_ts_config *Form_pg_ts_config;
DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, TSConfigNameNspIndexId, pg_ts_config, btree(cfgname name_ops, cfgnamespace oid_ops)); DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, TSConfigNameNspIndexId, pg_ts_config, btree(cfgname name_ops, cfgnamespace oid_ops));

View file

@ -27,6 +27,8 @@
* typedef struct FormData_pg_ts_config_map * typedef struct FormData_pg_ts_config_map
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_ts_config_map,3603,TSConfigMapRelationId) CATALOG(pg_ts_config_map,3603,TSConfigMapRelationId)
{ {
/* OID of configuration owning this entry */ /* OID of configuration owning this entry */
@ -42,6 +44,8 @@ CATALOG(pg_ts_config_map,3603,TSConfigMapRelationId)
Oid mapdict BKI_LOOKUP(pg_ts_dict); Oid mapdict BKI_LOOKUP(pg_ts_dict);
} FormData_pg_ts_config_map; } FormData_pg_ts_config_map;
END_CATALOG_STRUCT
typedef FormData_pg_ts_config_map *Form_pg_ts_config_map; typedef FormData_pg_ts_config_map *Form_pg_ts_config_map;
DECLARE_UNIQUE_INDEX_PKEY(pg_ts_config_map_index, 3609, TSConfigMapIndexId, pg_ts_config_map, btree(mapcfg oid_ops, maptokentype int4_ops, mapseqno int4_ops)); DECLARE_UNIQUE_INDEX_PKEY(pg_ts_config_map_index, 3609, TSConfigMapIndexId, pg_ts_config_map, btree(mapcfg oid_ops, maptokentype int4_ops, mapseqno int4_ops));

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_ts_dict * typedef struct FormData_pg_ts_dict
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_ts_dict,3600,TSDictionaryRelationId) CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
{ {
/* oid */ /* oid */
@ -49,6 +51,8 @@ CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
#endif #endif
} FormData_pg_ts_dict; } FormData_pg_ts_dict;
END_CATALOG_STRUCT
typedef FormData_pg_ts_dict *Form_pg_ts_dict; typedef FormData_pg_ts_dict *Form_pg_ts_dict;
DECLARE_TOAST(pg_ts_dict, 4169, 4170); DECLARE_TOAST(pg_ts_dict, 4169, 4170);

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_ts_parser * typedef struct FormData_pg_ts_parser
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_ts_parser,3601,TSParserRelationId) CATALOG(pg_ts_parser,3601,TSParserRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -52,6 +54,8 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
regproc prslextype BKI_LOOKUP(pg_proc); regproc prslextype BKI_LOOKUP(pg_proc);
} FormData_pg_ts_parser; } FormData_pg_ts_parser;
END_CATALOG_STRUCT
typedef FormData_pg_ts_parser *Form_pg_ts_parser; typedef FormData_pg_ts_parser *Form_pg_ts_parser;
DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, TSParserNameNspIndexId, pg_ts_parser, btree(prsname name_ops, prsnamespace oid_ops)); DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, TSParserNameNspIndexId, pg_ts_parser, btree(prsname name_ops, prsnamespace oid_ops));

View file

@ -26,6 +26,8 @@
* typedef struct FormData_pg_ts_template * typedef struct FormData_pg_ts_template
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_ts_template,3764,TSTemplateRelationId) CATALOG(pg_ts_template,3764,TSTemplateRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -43,6 +45,8 @@ CATALOG(pg_ts_template,3764,TSTemplateRelationId)
regproc tmpllexize BKI_LOOKUP(pg_proc); regproc tmpllexize BKI_LOOKUP(pg_proc);
} FormData_pg_ts_template; } FormData_pg_ts_template;
END_CATALOG_STRUCT
typedef FormData_pg_ts_template *Form_pg_ts_template; typedef FormData_pg_ts_template *Form_pg_ts_template;
DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, TSTemplateNameNspIndexId, pg_ts_template, btree(tmplname name_ops, tmplnamespace oid_ops)); DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, TSTemplateNameNspIndexId, pg_ts_template, btree(tmplname name_ops, tmplnamespace oid_ops));

View file

@ -33,6 +33,8 @@
* See struct FormData_pg_attribute for details. * See struct FormData_pg_attribute for details.
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelation_Rowtype_Id) BKI_SCHEMA_MACRO CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelation_Rowtype_Id) BKI_SCHEMA_MACRO
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -253,6 +255,8 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
#endif #endif
} FormData_pg_type; } FormData_pg_type;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_type corresponds to a pointer to a row with * Form_pg_type corresponds to a pointer to a row with
* the format of pg_type relation. * the format of pg_type relation.

View file

@ -25,6 +25,8 @@
* typedef struct FormData_pg_user_mapping * typedef struct FormData_pg_user_mapping
* ---------------- * ----------------
*/ */
BEGIN_CATALOG_STRUCT
CATALOG(pg_user_mapping,1418,UserMappingRelationId) CATALOG(pg_user_mapping,1418,UserMappingRelationId)
{ {
Oid oid; /* oid */ Oid oid; /* oid */
@ -40,6 +42,8 @@ CATALOG(pg_user_mapping,1418,UserMappingRelationId)
#endif #endif
} FormData_pg_user_mapping; } FormData_pg_user_mapping;
END_CATALOG_STRUCT
/* ---------------- /* ----------------
* Form_pg_user_mapping corresponds to a pointer to a tuple with * Form_pg_user_mapping corresponds to a pointer to a tuple with
* the format of pg_user_mapping relation. * the format of pg_user_mapping relation.

View file

@ -12,9 +12,6 @@
/* The normal alignment of `int64_t', in bytes. */ /* The normal alignment of `int64_t', in bytes. */
#undef ALIGNOF_INT64_T #undef ALIGNOF_INT64_T
/* The normal alignment of `long', in bytes. */
#undef ALIGNOF_LONG
/* The normal alignment of `PG_INT128_TYPE', in bytes. */ /* The normal alignment of `PG_INT128_TYPE', in bytes. */
#undef ALIGNOF_PG_INT128_TYPE #undef ALIGNOF_PG_INT128_TYPE