[PATCH v5 1/4] Add bool8 typedef for system catalog structs
Peter Eisentraut <peter_e@gmx.net>
From: Peter Eisentraut <peter_e@gmx.net>
To:
Date: 2017-08-16T04:22:32Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix rare assertion failure in parallel hash join.
- f83040c62a78 11.0 cited
For system catalog structs, we require that the C bool type is 1 byte in
size, the same as the SQL type. But if stdbool.h is used, then this is
not guaranteed. To address that, define a separate type bool8 that is
guaranteed to be 1 byte, and use that in the system catalog structs.
Some tweaking in Catalog.pm ensures that bool is not accidentally used
where bool8 should be used.
---
src/backend/catalog/Catalog.pm | 2 ++
src/include/c.h | 9 +++++++++
src/include/catalog/pg_aggregate.h | 4 ++--
src/include/catalog/pg_attribute.h | 10 +++++-----
src/include/catalog/pg_auth_members.h | 2 +-
src/include/catalog/pg_authid.h | 14 +++++++-------
src/include/catalog/pg_class.h | 22 +++++++++++-----------
src/include/catalog/pg_constraint.h | 10 +++++-----
src/include/catalog/pg_conversion.h | 2 +-
src/include/catalog/pg_database.h | 4 ++--
src/include/catalog/pg_extension.h | 2 +-
src/include/catalog/pg_index.h | 20 ++++++++++----------
src/include/catalog/pg_language.h | 4 ++--
src/include/catalog/pg_opclass.h | 2 +-
src/include/catalog/pg_operator.h | 4 ++--
src/include/catalog/pg_pltemplate.h | 4 ++--
src/include/catalog/pg_policy.h | 2 +-
src/include/catalog/pg_proc.h | 12 ++++++------
src/include/catalog/pg_publication.h | 8 ++++----
src/include/catalog/pg_rewrite.h | 2 +-
src/include/catalog/pg_sequence.h | 2 +-
src/include/catalog/pg_statistic.h | 2 +-
src/include/catalog/pg_subscription.h | 2 +-
src/include/catalog/pg_trigger.h | 6 +++---
src/include/catalog/pg_type.h | 8 ++++----
src/include/commands/sequence.h | 2 +-
26 files changed, 86 insertions(+), 75 deletions(-)
diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm
index 80bd9771f1..2602c68867 100644
--- a/src/backend/catalog/Catalog.pm
+++ b/src/backend/catalog/Catalog.pm
@@ -26,6 +26,8 @@ sub Catalogs
# There are a few types which are given one name in the C source, but a
# different name at the SQL level. These are enumerated here.
my %RENAME_ATTTYPE = (
+ 'bool' => 'INVALID', # use bool8 instead
+ 'bool8' => 'bool',
'int16' => 'int2',
'int32' => 'int4',
'int64' => 'int8',
diff --git a/src/include/c.h b/src/include/c.h
index 22535a7deb..20c15a0d9d 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -267,6 +267,15 @@ typedef char bool;
#endif /* not C++ */
+/*
+ * bool8
+ *
+ * A bool type that is guaranteed to be 8 bits/1 byte, mainly for use in
+ * system catalog definitions. (stdbool.h's bool is not 1 byte on all
+ * platforms.)
+ */
+typedef char bool8;
+
/* ----------------------------------------------------------------
* Section 3: standard system types
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h
index 13f1bce5af..a8894b9aad 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -65,8 +65,8 @@ CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS
regproc aggmtransfn;
regproc aggminvtransfn;
regproc aggmfinalfn;
- bool aggfinalextra;
- bool aggmfinalextra;
+ bool8 aggfinalextra;
+ bool8 aggmfinalextra;
char aggfinalmodify;
char aggmfinalmodify;
Oid aggsortop;
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index bcf28e8f04..a2007560ae 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -104,7 +104,7 @@ CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BK
* attbyval is a copy of the typbyval field from pg_type for this
* attribute. See atttypid comments above.
*/
- bool attbyval;
+ bool8 attbyval;
/*----------
* attstorage tells for VARLENA attributes, what the heap access
@@ -128,16 +128,16 @@ CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BK
char attalign;
/* This flag represents the "NOT NULL" constraint */
- bool attnotnull;
+ bool8 attnotnull;
/* Has DEFAULT value or not */
- bool atthasdef;
+ bool8 atthasdef;
/* One of the ATTRIBUTE_IDENTITY_* constants below, or '\0' */
char attidentity;
/* Is dropped (ie, logically invisible) or not */
- bool attisdropped;
+ bool8 attisdropped;
/*
* This flag specifies whether this column has ever had a local
@@ -148,7 +148,7 @@ CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS BKI_ROWTYPE_OID(75) BK
* not dropped by a parent's DROP COLUMN even if this causes the column's
* attinhcount to become zero.
*/
- bool attislocal;
+ bool8 attislocal;
/* Number of times inherited from direct parent relation(s) */
int32 attinhcount;
diff --git a/src/include/catalog/pg_auth_members.h b/src/include/catalog/pg_auth_members.h
index 6a954fff97..43a8549659 100644
--- a/src/include/catalog/pg_auth_members.h
+++ b/src/include/catalog/pg_auth_members.h
@@ -34,7 +34,7 @@ CATALOG(pg_auth_members,1261) BKI_SHARED_RELATION BKI_WITHOUT_OIDS BKI_ROWTYPE_O
Oid roleid; /* ID of a role */
Oid member; /* ID of a member of that role */
Oid grantor; /* who granted the membership */
- bool admin_option; /* granted with admin option? */
+ bool8 admin_option; /* granted with admin option? */
} FormData_pg_auth_members;
/* ----------------
diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h
index 9b6b52c9f9..b44328fe38 100644
--- a/src/include/catalog/pg_authid.h
+++ b/src/include/catalog/pg_authid.h
@@ -45,13 +45,13 @@
CATALOG(pg_authid,1260) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842) BKI_SCHEMA_MACRO
{
NameData rolname; /* name of role */
- bool rolsuper; /* read this field via superuser() only! */
- bool rolinherit; /* inherit privileges from other roles? */
- bool rolcreaterole; /* allowed to create more roles? */
- bool rolcreatedb; /* allowed to create databases? */
- bool rolcanlogin; /* allowed to log in as session user? */
- bool rolreplication; /* role used for streaming replication */
- bool rolbypassrls; /* bypasses row level security? */
+ bool8 rolsuper; /* read this field via superuser() only! */
+ bool8 rolinherit; /* inherit privileges from other roles? */
+ bool8 rolcreaterole; /* allowed to create more roles? */
+ bool8 rolcreatedb; /* allowed to create databases? */
+ bool8 rolcanlogin; /* allowed to log in as session user? */
+ bool8 rolreplication; /* role used for streaming replication */
+ bool8 rolbypassrls; /* bypasses row level security? */
int32 rolconnlimit; /* max connections allowed (-1=no limit) */
/* remaining fields may be null; use heap_getattr to read them! */
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index b256657bda..8e98c3174d 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -48,8 +48,8 @@ CATALOG(pg_class,1259) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83) BKI_SCHEMA_MACRO
int32 relallvisible; /* # of all-visible blocks (not always
* up-to-date) */
Oid reltoastrelid; /* OID of toast table; 0 if none */
- bool relhasindex; /* T if has (or has had) any indexes */
- bool relisshared; /* T if shared across databases */
+ bool8 relhasindex; /* T if has (or has had) any indexes */
+ bool8 relisshared; /* T if shared across databases */
char relpersistence; /* see RELPERSISTENCE_xxx constants below */
char relkind; /* see RELKIND_xxx constants below */
int16 relnatts; /* number of user attributes */
@@ -60,17 +60,17 @@ CATALOG(pg_class,1259) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83) BKI_SCHEMA_MACRO
* contain entries with negative attnums for system attributes.
*/
int16 relchecks; /* # of CHECK constraints for class */
- bool relhasoids; /* T if we generate OIDs for rows of rel */
- bool relhaspkey; /* has (or has had) PRIMARY KEY index */
- bool relhasrules; /* has (or has had) any rules */
- bool relhastriggers; /* has (or has had) any TRIGGERs */
- bool relhassubclass; /* has (or has had) derived classes */
- bool relrowsecurity; /* row security is enabled or not */
- bool relforcerowsecurity; /* row security forced for owners or
+ bool8 relhasoids; /* T if we generate OIDs for rows of rel */
+ bool8 relhaspkey; /* has (or has had) PRIMARY KEY index */
+ bool8 relhasrules; /* has (or has had) any rules */
+ bool8 relhastriggers; /* has (or has had) any TRIGGERs */
+ bool8 relhassubclass; /* has (or has had) derived classes */
+ bool8 relrowsecurity; /* row security is enabled or not */
+ bool8 relforcerowsecurity; /* row security forced for owners or
* not */
- bool relispopulated; /* matview currently holds query results */
+ bool8 relispopulated; /* matview currently holds query results */
char relreplident; /* see REPLICA_IDENTITY_xxx constants */
- bool relispartition; /* is relation a partition? */
+ bool8 relispartition; /* is relation a partition? */
TransactionId relfrozenxid; /* all Xids < this are frozen in this rel */
TransactionId relminmxid; /* all multixacts in this rel are >= this.
* this is really a MultiXactId */
diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h
index ec035d8434..216344e254 100644
--- a/src/include/catalog/pg_constraint.h
+++ b/src/include/catalog/pg_constraint.h
@@ -42,9 +42,9 @@ CATALOG(pg_constraint,2606)
NameData conname; /* name of this constraint */
Oid connamespace; /* OID of namespace containing constraint */
char contype; /* constraint type; see codes below */
- bool condeferrable; /* deferrable constraint? */
- bool condeferred; /* deferred by default? */
- bool convalidated; /* constraint has been validated? */
+ bool8 condeferrable; /* deferrable constraint? */
+ bool8 condeferred; /* deferred by default? */
+ bool8 convalidated; /* constraint has been validated? */
/*
* conrelid and conkey are only meaningful if the constraint applies to a
@@ -82,13 +82,13 @@ CATALOG(pg_constraint,2606)
char confmatchtype; /* foreign key's match type */
/* Has a local definition (hence, do not drop when coninhcount is 0) */
- bool conislocal;
+ bool8 conislocal;
/* Number of times inherited from direct parent relation(s) */
int32 coninhcount;
/* Has a local definition and cannot be inherited */
- bool connoinherit;
+ bool8 connoinherit;
#ifdef CATALOG_VARLEN /* variable-length fields start here */
diff --git a/src/include/catalog/pg_conversion.h b/src/include/catalog/pg_conversion.h
index 9344585e66..33c61e47cc 100644
--- a/src/include/catalog/pg_conversion.h
+++ b/src/include/catalog/pg_conversion.h
@@ -45,7 +45,7 @@ CATALOG(pg_conversion,2607)
int32 conforencoding;
int32 contoencoding;
regproc conproc;
- bool condefault;
+ bool8 condefault;
} FormData_pg_conversion;
/* ----------------
diff --git a/src/include/catalog/pg_database.h b/src/include/catalog/pg_database.h
index e7cbca49cf..e470abf88a 100644
--- a/src/include/catalog/pg_database.h
+++ b/src/include/catalog/pg_database.h
@@ -36,8 +36,8 @@ CATALOG(pg_database,1262) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248) BKI_SCHEMA_M
int32 encoding; /* character encoding */
NameData datcollate; /* LC_COLLATE setting */
NameData datctype; /* LC_CTYPE setting */
- bool datistemplate; /* allowed as CREATE DATABASE template? */
- bool datallowconn; /* new connections allowed? */
+ bool8 datistemplate; /* allowed as CREATE DATABASE template? */
+ bool8 datallowconn; /* new connections allowed? */
int32 datconnlimit; /* max connections allowed (-1=no limit) */
Oid datlastsysoid; /* highest OID to consider a system OID */
TransactionId datfrozenxid; /* all Xids < this are frozen in this DB */
diff --git a/src/include/catalog/pg_extension.h b/src/include/catalog/pg_extension.h
index 2ce575d17e..21e6153d21 100644
--- a/src/include/catalog/pg_extension.h
+++ b/src/include/catalog/pg_extension.h
@@ -33,7 +33,7 @@ CATALOG(pg_extension,3079)
NameData extname; /* extension name */
Oid extowner; /* extension owner */
Oid extnamespace; /* namespace of contained objects */
- bool extrelocatable; /* if true, allow ALTER EXTENSION SET SCHEMA */
+ bool8 extrelocatable; /* if true, allow ALTER EXTENSION SET SCHEMA */
#ifdef CATALOG_VARLEN /* variable-length fields start here */
/* extversion may never be null, but the others can be. */
diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h
index 8505c3be5f..1d21e9800c 100644
--- a/src/include/catalog/pg_index.h
+++ b/src/include/catalog/pg_index.h
@@ -33,16 +33,16 @@ CATALOG(pg_index,2610) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO
Oid indexrelid; /* OID of the index */
Oid indrelid; /* OID of the relation it indexes */
int16 indnatts; /* number of columns in index */
- bool indisunique; /* is this a unique index? */
- bool indisprimary; /* is this index for primary key? */
- bool indisexclusion; /* is this index for exclusion constraint? */
- bool indimmediate; /* is uniqueness enforced immediately? */
- bool indisclustered; /* is this the index last clustered by? */
- bool indisvalid; /* is this index valid for use by queries? */
- bool indcheckxmin; /* must we wait for xmin to be old? */
- bool indisready; /* is this index ready for inserts? */
- bool indislive; /* is this index alive at all? */
- bool indisreplident; /* is this index the identity for replication? */
+ bool8 indisunique; /* is this a unique index? */
+ bool8 indisprimary; /* is this index for primary key? */
+ bool8 indisexclusion; /* is this index for exclusion constraint? */
+ bool8 indimmediate; /* is uniqueness enforced immediately? */
+ bool8 indisclustered; /* is this the index last clustered by? */
+ bool8 indisvalid; /* is this index valid for use by queries? */
+ bool8 indcheckxmin; /* must we wait for xmin to be old? */
+ bool8 indisready; /* is this index ready for inserts? */
+ bool8 indislive; /* is this index alive at all? */
+ bool8 indisreplident; /* is this index the identity for replication? */
/* variable-length fields start here, but we allow direct access to indkey */
int2vector indkey; /* column numbers of indexed cols, or 0 */
diff --git a/src/include/catalog/pg_language.h b/src/include/catalog/pg_language.h
index ad244e839b..4c20e66a6c 100644
--- a/src/include/catalog/pg_language.h
+++ b/src/include/catalog/pg_language.h
@@ -32,8 +32,8 @@ CATALOG(pg_language,2612)
{
NameData lanname; /* Language name */
Oid lanowner; /* Language's owner */
- bool lanispl; /* Is a procedural language */
- bool lanpltrusted; /* PL is trusted */
+ bool8 lanispl; /* Is a procedural language */
+ bool8 lanpltrusted; /* PL is trusted */
Oid lanplcallfoid; /* Call handler for PL */
Oid laninline; /* Optional anonymous-block handler function */
Oid lanvalidator; /* Optional validation function */
diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h
index 6aabc7279f..b35181ce74 100644
--- a/src/include/catalog/pg_opclass.h
+++ b/src/include/catalog/pg_opclass.h
@@ -56,7 +56,7 @@ CATALOG(pg_opclass,2616)
Oid opcowner; /* opclass owner */
Oid opcfamily; /* containing operator family */
Oid opcintype; /* type of data indexed by opclass */
- bool opcdefault; /* T if opclass is default for opcintype */
+ bool8 opcdefault; /* T if opclass is default for opcintype */
Oid opckeytype; /* type of data in index, or InvalidOid */
} FormData_pg_opclass;
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index ff9b47077b..24c1c72759 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -37,8 +37,8 @@ CATALOG(pg_operator,2617)
Oid oprnamespace; /* OID of namespace containing this oper */
Oid oprowner; /* operator owner */
char oprkind; /* 'l', 'r', or 'b' */
- bool oprcanmerge; /* can be used in merge join? */
- bool oprcanhash; /* can be used in hash join? */
+ bool8 oprcanmerge; /* can be used in merge join? */
+ bool8 oprcanhash; /* can be used in hash join? */
Oid oprleft; /* left arg type, or 0 if 'l' oprkind */
Oid oprright; /* right arg type, or 0 if 'r' oprkind */
Oid oprresult; /* result datatype */
diff --git a/src/include/catalog/pg_pltemplate.h b/src/include/catalog/pg_pltemplate.h
index fbe71bd0c3..c4d416c686 100644
--- a/src/include/catalog/pg_pltemplate.h
+++ b/src/include/catalog/pg_pltemplate.h
@@ -31,8 +31,8 @@
CATALOG(pg_pltemplate,1136) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
NameData tmplname; /* name of PL */
- bool tmpltrusted; /* PL is trusted? */
- bool tmpldbacreate; /* PL is installable by db owner? */
+ bool8 tmpltrusted; /* PL is trusted? */
+ bool8 tmpldbacreate; /* PL is installable by db owner? */
#ifdef CATALOG_VARLEN /* variable-length fields start here */
text tmplhandler BKI_FORCE_NOT_NULL; /* name of call handler
diff --git a/src/include/catalog/pg_policy.h b/src/include/catalog/pg_policy.h
index 86000737fa..8aa1f2a4d8 100644
--- a/src/include/catalog/pg_policy.h
+++ b/src/include/catalog/pg_policy.h
@@ -23,7 +23,7 @@ CATALOG(pg_policy,3256)
NameData polname; /* Policy name. */
Oid polrelid; /* Oid of the relation with policy. */
char polcmd; /* One of ACL_*_CHR, or '*' for all */
- bool polpermissive; /* restrictive or permissive policy */
+ bool8 polpermissive; /* restrictive or permissive policy */
#ifdef CATALOG_VARLEN
Oid polroles[1]; /* Roles associated with policy, not-NULL */
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index 830bab37ea..538eea7211 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -43,12 +43,12 @@ CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81) BKI_SCHEMA_MACRO
float4 prorows; /* estimated # of rows out (if proretset) */
Oid provariadic; /* element type of variadic array, or 0 */
regproc protransform; /* transforms calls to it during planning */
- bool proisagg; /* is it an aggregate? */
- bool proiswindow; /* is it a window function? */
- bool prosecdef; /* security definer */
- bool proleakproof; /* is it a leak-proof function? */
- bool proisstrict; /* strict with respect to NULLs? */
- bool proretset; /* returns a set? */
+ bool8 proisagg; /* is it an aggregate? */
+ bool8 proiswindow; /* is it a window function? */
+ bool8 prosecdef; /* security definer */
+ bool8 proleakproof; /* is it a leak-proof function? */
+ bool8 proisstrict; /* strict with respect to NULLs? */
+ bool8 proretset; /* returns a set? */
char provolatile; /* see PROVOLATILE_ categories below */
char proparallel; /* see PROPARALLEL_ categories below */
int16 pronargs; /* number of arguments */
diff --git a/src/include/catalog/pg_publication.h b/src/include/catalog/pg_publication.h
index aa148960cd..19283ecd2e 100644
--- a/src/include/catalog/pg_publication.h
+++ b/src/include/catalog/pg_publication.h
@@ -38,16 +38,16 @@ CATALOG(pg_publication,6104)
* indicates that this is special publication which should encompass all
* tables in the database (except for the unlogged and temp ones)
*/
- bool puballtables;
+ bool8 puballtables;
/* true if inserts are published */
- bool pubinsert;
+ bool8 pubinsert;
/* true if updates are published */
- bool pubupdate;
+ bool8 pubupdate;
/* true if deletes are published */
- bool pubdelete;
+ bool8 pubdelete;
} FormData_pg_publication;
diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h
index 48b9333a9d..3c71e8e641 100644
--- a/src/include/catalog/pg_rewrite.h
+++ b/src/include/catalog/pg_rewrite.h
@@ -37,7 +37,7 @@ CATALOG(pg_rewrite,2618)
Oid ev_class;
char ev_type;
char ev_enabled;
- bool is_instead;
+ bool8 is_instead;
#ifdef CATALOG_VARLEN /* variable-length fields start here */
pg_node_tree ev_qual;
diff --git a/src/include/catalog/pg_sequence.h b/src/include/catalog/pg_sequence.h
index 6de54bb665..9b84e16ed1 100644
--- a/src/include/catalog/pg_sequence.h
+++ b/src/include/catalog/pg_sequence.h
@@ -24,7 +24,7 @@ CATALOG(pg_sequence,2224) BKI_WITHOUT_OIDS
int64 seqmax;
int64 seqmin;
int64 seqcache;
- bool seqcycle;
+ bool8 seqcycle;
} FormData_pg_sequence;
typedef FormData_pg_sequence *Form_pg_sequence;
diff --git a/src/include/catalog/pg_statistic.h b/src/include/catalog/pg_statistic.h
index 43128f1928..1ed6387b03 100644
--- a/src/include/catalog/pg_statistic.h
+++ b/src/include/catalog/pg_statistic.h
@@ -33,7 +33,7 @@ CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS
/* These fields form the unique key for the entry: */
Oid starelid; /* relation containing attribute */
int16 staattnum; /* attribute (column) stats are for */
- bool stainherit; /* true if inheritance children are included */
+ bool8 stainherit; /* true if inheritance children are included */
/* the fraction of the column's entries that are NULL: */
float4 stanullfrac;
diff --git a/src/include/catalog/pg_subscription.h b/src/include/catalog/pg_subscription.h
index 274ff6bc42..032b02e4fb 100644
--- a/src/include/catalog/pg_subscription.h
+++ b/src/include/catalog/pg_subscription.h
@@ -37,7 +37,7 @@ CATALOG(pg_subscription,6100) BKI_SHARED_RELATION BKI_ROWTYPE_OID(6101) BKI_SCHE
Oid subowner; /* Owner of the subscription */
- bool subenabled; /* True if the subscription is enabled (the
+ bool8 subenabled; /* True if the subscription is enabled (the
* worker should be running) */
#ifdef CATALOG_VARLEN /* variable-length fields start here */
diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h
index f413caf34f..0faa1812ab 100644
--- a/src/include/catalog/pg_trigger.h
+++ b/src/include/catalog/pg_trigger.h
@@ -42,12 +42,12 @@ CATALOG(pg_trigger,2620)
* ROW/STATEMENT; see below */
char tgenabled; /* trigger's firing configuration WRT
* session_replication_role */
- bool tgisinternal; /* trigger is system-generated */
+ bool8 tgisinternal; /* trigger is system-generated */
Oid tgconstrrelid; /* constraint's FROM table, if any */
Oid tgconstrindid; /* constraint's supporting index, if any */
Oid tgconstraint; /* associated pg_constraint entry, if any */
- bool tgdeferrable; /* constraint trigger is deferrable */
- bool tginitdeferred; /* constraint trigger is deferred initially */
+ bool8 tgdeferrable; /* constraint trigger is deferrable */
+ bool8 tginitdeferred; /* constraint trigger is deferred initially */
int16 tgnargs; /* # of extra arguments in tgargs */
/*
diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h
index e3551440a0..a41e664449 100644
--- a/src/include/catalog/pg_type.h
+++ b/src/include/catalog/pg_type.h
@@ -57,7 +57,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
* typbyval can be false even if the length would allow pass-by-value;
* this is currently true for type float4, for example.
*/
- bool typbyval;
+ bool8 typbyval;
/*
* typtype is 'b' for a base type, 'c' for a composite type (e.g., a
@@ -76,13 +76,13 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
*/
char typcategory; /* arbitrary type classification */
- bool typispreferred; /* is type "preferred" within its category? */
+ bool8 typispreferred; /* is type "preferred" within its category? */
/*
* If typisdefined is false, the entry is only a placeholder (forward
* reference). We know the type name, but not yet anything else about it.
*/
- bool typisdefined;
+ bool8 typisdefined;
char typdelim; /* delimiter for arrays of this type */
@@ -172,7 +172,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
*
* Used primarily for domain types.
*/
- bool typnotnull;
+ bool8 typnotnull;
/*
* Domains use typbasetype to show the base (or domain) type that the
diff --git a/src/include/commands/sequence.h b/src/include/commands/sequence.h
index caab195130..09ad49e214 100644
--- a/src/include/commands/sequence.h
+++ b/src/include/commands/sequence.h
@@ -26,7 +26,7 @@ typedef struct FormData_pg_sequence_data
{
int64 last_value;
int64 log_cnt;
- bool is_called;
+ bool8 is_called;
} FormData_pg_sequence_data;
typedef FormData_pg_sequence_data *Form_pg_sequence_data;
base-commit: f83040c62a78e784e6e33a6382a55925bfd66634
--
2.15.1
--------------AB99891BACB265862555DF3C
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
name="v5-0002-Don-t-cast-between-GinNullCategory-and-bool.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename*0="v5-0002-Don-t-cast-between-GinNullCategory-and-bool.patch"