diff options
author | Tom Lane | 2008-03-27 03:57:34 +0000 |
---|---|---|
committer | Tom Lane | 2008-03-27 03:57:34 +0000 |
commit | 32bf9413b89d49773989b6bdac675cf3bdd64c90 (patch) | |
tree | 361ff71b78ca790f4d8d5a5df68077e322b1c5d6 | |
parent | 8fc7d48b35e60a012fa757c8cd388304c1d42af3 (diff) |
Reduce the need for frontend programs to include "postgres.h" by refactoring
inclusions in src/include/catalog/*.h files. The main idea here is to push
function declarations for src/backend/catalog/*.c files into separate headers,
rather than sticking them into the corresponding catalog definition file as
has been done in the past. This commit only carries out that idea fully for
pg_proc, pg_type and pg_conversion, but that's enough for the moment ---
if pg_list.h ever becomes unsafe for frontend code to include, we'll need
to work a bit more.
Zdenek Kotala
67 files changed, 294 insertions, 384 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 2d6d7133d3..f60bea3c87 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -29,6 +29,7 @@ #include "catalog/pg_cast.h" #include "catalog/pg_constraint.h" #include "catalog/pg_conversion.h" +#include "catalog/pg_conversion_fn.h" #include "catalog/pg_database.h" #include "catalog/pg_depend.h" #include "catalog/pg_language.h" diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 012207a05c..3553c3bde5 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -45,6 +45,7 @@ #include "catalog/pg_statistic.h" #include "catalog/pg_tablespace.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" #include "commands/tablecmds.h" #include "commands/typecmds.h" #include "miscadmin.h" diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index 0fdcc63971..2fa63d08bd 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -24,6 +24,7 @@ #include "catalog/namespace.h" #include "catalog/pg_authid.h" #include "catalog/pg_conversion.h" +#include "catalog/pg_conversion_fn.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" #include "catalog/pg_operator.h" diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c index c8d0c6e30e..1a6c850206 100644 --- a/src/backend/catalog/pg_aggregate.c +++ b/src/backend/catalog/pg_aggregate.c @@ -21,6 +21,7 @@ #include "catalog/pg_language.h" #include "catalog/pg_operator.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" #include "miscadmin.h" #include "parser/parse_coerce.h" diff --git a/src/backend/catalog/pg_conversion.c b/src/backend/catalog/pg_conversion.c index b3c2aca573..42a3de5b7f 100644 --- a/src/backend/catalog/pg_conversion.c +++ b/src/backend/catalog/pg_conversion.c @@ -19,6 +19,7 @@ #include "catalog/indexing.h" #include "catalog/namespace.h" #include "catalog/pg_conversion.h" +#include "catalog/pg_conversion_fn.h" #include "catalog/pg_namespace.h" #include "catalog/pg_proc.h" #include "mb/pg_wchar.h" diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index adf17bfdda..c7edf63eaf 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -21,6 +21,7 @@ #include "catalog/pg_language.h" #include "catalog/pg_namespace.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" #include "executor/functions.h" #include "funcapi.h" diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c index 888b66c6f2..cde8cc3835 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -21,6 +21,7 @@ #include "catalog/pg_namespace.h" #include "catalog/pg_proc.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" #include "commands/typecmds.h" #include "miscadmin.h" #include "parser/scansup.h" diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c index 2bdb144a23..3e74f2e5d8 100644 --- a/src/backend/commands/conversioncmds.c +++ b/src/backend/commands/conversioncmds.c @@ -18,6 +18,7 @@ #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/pg_conversion.h" +#include "catalog/pg_conversion_fn.h" #include "catalog/pg_type.h" #include "commands/conversioncmds.h" #include "mb/pg_wchar.h" diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 22d71f2cb1..942f64ebf6 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -41,7 +41,9 @@ #include "catalog/pg_language.h" #include "catalog/pg_namespace.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" #include "commands/defrem.h" #include "commands/proclang.h" #include "miscadmin.h" diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index c1bf7224eb..b4f62bece1 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -22,6 +22,7 @@ #include "catalog/pg_namespace.h" #include "catalog/pg_pltemplate.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" #include "commands/dbcommands.h" #include "commands/defrem.h" diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index df21a5b824..1637716836 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -32,6 +32,7 @@ #include "catalog/pg_tablespace.h" #include "catalog/pg_trigger.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" #include "catalog/toasting.h" #include "commands/cluster.h" #include "commands/defrem.h" diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index c1d970c384..188fe43e7b 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -43,6 +43,7 @@ #include "catalog/pg_enum.h" #include "catalog/pg_namespace.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" #include "commands/defrem.h" #include "commands/tablecmds.h" #include "commands/typecmds.h" diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index d363be4a55..d26bece874 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -3,6 +3,9 @@ * keywords.c * lexical token lookup for key words in PostgreSQL * + * NB: This file is also used by pg_dump. + * + * * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * @@ -12,16 +15,22 @@ * *------------------------------------------------------------------------- */ -#include "postgres.h" + +/* Use c.h so that this file can be built in either frontend or backend */ +#include "c.h" #include <ctype.h> -#include "nodes/parsenodes.h" -#include "parser/gramparse.h" /* required before parser/parse.h! */ +/* + * This macro definition overrides the YYSTYPE union definition in parse.h. + * We don't need that struct in this file, and including the real definition + * would require sucking in some backend-only include files. + */ +#define YYSTYPE int + #include "parser/keywords.h" #include "parser/parse.h" -/* NB: This file is also used by pg_dump. */ /* * List of keyword (name, token-value, category) entries. diff --git a/src/backend/utils/hash/pg_crc.c b/src/backend/utils/hash/pg_crc.c index 7823170e93..d0a256cda5 100644 --- a/src/backend/utils/hash/pg_crc.c +++ b/src/backend/utils/hash/pg_crc.c @@ -23,8 +23,9 @@ * *------------------------------------------------------------------------- */ -#include "postgres.h" +/* Use c.h so that this file can be built in either frontend or backend */ +#include "c.h" /* diff --git a/src/bin/pg_config/pg_config.c b/src/bin/pg_config/pg_config.c index 955d85a5b8..d9807308ac 100644 --- a/src/bin/pg_config/pg_config.c +++ b/src/bin/pg_config/pg_config.c @@ -22,7 +22,7 @@ *------------------------------------------------------------------------- */ -#include "postgres.h" +#include "postgres_fe.h" #include "port.h" diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c index 2e6a5dc09a..52619838b2 100644 --- a/src/bin/pg_controldata/pg_controldata.c +++ b/src/bin/pg_controldata/pg_controldata.c @@ -8,7 +8,7 @@ * * $PostgreSQL$ */ -#include "postgres.h" +#include "postgres_fe.h" #include <unistd.h> #include <time.h> diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 279a598865..b1dfd02f31 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -15,14 +15,13 @@ * *------------------------------------------------------------------------- */ - #include "postgres_fe.h" -#include "pg_backup_archiver.h" -#include "postgres.h" +#include <ctype.h> + #include "catalog/pg_class.h" -#include <ctype.h> +#include "pg_backup_archiver.h" /* diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 28421849f8..74478e1e7d 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -17,15 +17,9 @@ *------------------------------------------------------------------------- */ -/* - * Although this is not a backend module, we must include postgres.h anyway - * so that we can include a bunch of backend include files. pg_dump has - * never pretended to be very independent of the backend anyhow ... - */ -#include "postgres.h" +#include "postgres_fe.h" #include <unistd.h> - #include <ctype.h> #ifdef ENABLE_NLS #include <locale.h> @@ -40,12 +34,12 @@ int optreset; #endif +#include "access/attnum.h" #include "access/htup.h" #include "catalog/pg_class.h" #include "catalog/pg_proc.h" #include "catalog/pg_trigger.h" #include "catalog/pg_type.h" -#include "commands/sequence.h" #include "libpq/libpq-fs.h" #include "pg_backup_archiver.h" diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 2ac6ee1264..a91da18c54 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -4,11 +4,9 @@ * Copyright (c) 2000-2008, PostgreSQL Global Development Group * * $PostgreSQL$ - * - * Note: we include postgres.h not postgres_fe.h so that we can include - * catalog/pg_type.h, and thereby have access to INT4OID and similar macros. */ -#include "postgres.h" +#include "postgres_fe.h" + #include "print.h" #include "catalog/pg_type.h" diff --git a/src/include/catalog/genbki.h b/src/include/catalog/genbki.h new file mode 100644 index 0000000000..2b87227729 --- /dev/null +++ b/src/include/catalog/genbki.h @@ -0,0 +1,39 @@ +/*------------------------------------------------------------------------- + * + * genbki.h + * Required include file for all POSTGRES catalog header files + * + * genbki.h defines CATALOG(), DATA(), BKI_BOOTSTRAP and related macros + * so that the catalog header files can be read by the C compiler. + * (These same words are recognized by genbki.sh to build the BKI + * bootstrap file from these header files.) + * + * + * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $PostgreSQL$ + * + *------------------------------------------------------------------------- + */ +#ifndef GENBKI_H +#define GENBKI_H + +/* Introduces a catalog's structure definition */ +#define CATALOG(name,oid) typedef struct CppConcat(FormData_,name) + +/* Options that may appear after CATALOG (on the same line) */ +#define BKI_BOOTSTRAP +#define BKI_SHARED_RELATION +#define BKI_WITHOUT_OIDS + +/* Declarations that provide the initial content of a catalog */ +/* In C, these need to expand into some harmless, repeatable declaration */ +#define DATA(x) extern int no_such_variable +#define DESCR(x) extern int no_such_variable +#define SHDESCR(x) extern int no_such_variable + +/* PHONY type definition for use in catalog structure definitions only */ +typedef int aclitem; + +#endif /* GENBKI_H */ diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h index a5c011b3fc..99757b6f93 100644 --- a/src/include/catalog/pg_aggregate.h +++ b/src/include/catalog/pg_aggregate.h @@ -19,15 +19,9 @@ #ifndef PG_AGGREGATE_H #define PG_AGGREGATE_H +#include "catalog/genbki.h" #include "nodes/pg_list.h" -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - /* ---------------------------------------------------------------- * pg_aggregate definition. * diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h index dc233fd07f..affc937f1d 100644 --- a/src/include/catalog/pg_am.h +++ b/src/include/catalog/pg_am.h @@ -22,12 +22,7 @@ #ifndef PG_AM_H #define PG_AM_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_am definition. cpp turns this into diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h index 2cfc373624..3a6ee11f26 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -40,12 +40,7 @@ #ifndef PG_AMOP_H #define PG_AMOP_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_amop definition. cpp turns this into diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h index 6eb066423c..752d69221e 100644 --- a/src/include/catalog/pg_amproc.h +++ b/src/include/catalog/pg_amproc.h @@ -33,12 +33,7 @@ #ifndef PG_AMPROC_H #define PG_AMPROC_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_amproc definition. cpp turns this into diff --git a/src/include/catalog/pg_attrdef.h b/src/include/catalog/pg_attrdef.h index 763a3292cb..5dc7269500 100644 --- a/src/include/catalog/pg_attrdef.h +++ b/src/include/catalog/pg_attrdef.h @@ -19,12 +19,7 @@ #ifndef PG_ATTRDEF_H #define PG_ATTRDEF_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_attrdef definition. cpp turns this into diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h index e48ab23a10..cb713ee3bd 100644 --- a/src/include/catalog/pg_attribute.h +++ b/src/include/catalog/pg_attribute.h @@ -24,12 +24,7 @@ #ifndef PG_ATTRIBUTE_H #define PG_ATTRIBUTE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_attribute definition. cpp turns this into diff --git a/src/include/catalog/pg_auth_members.h b/src/include/catalog/pg_auth_members.h index 1e14dcee06..6ee357a684 100644 --- a/src/include/catalog/pg_auth_members.h +++ b/src/include/catalog/pg_auth_members.h @@ -19,6 +19,8 @@ #ifndef PG_AUTH_MEMBERS_H #define PG_AUTH_MEMBERS_H +#include "catalog/genbki.h" + /* ---------------- * pg_auth_members definition. cpp turns this into * typedef struct FormData_pg_auth_members diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h index de14630105..004ab5c42d 100644 --- a/src/include/catalog/pg_authid.h +++ b/src/include/catalog/pg_authid.h @@ -21,16 +21,17 @@ #ifndef PG_AUTHID_H #define PG_AUTHID_H +#include "catalog/genbki.h" + /* * The CATALOG definition has to refer to the type of rolvaliduntil as * "timestamptz" (lower case) so that bootstrap mode recognizes it. But * the C header files define this type as TimestampTz. Since the field is * potentially-null and therefore can't be accessed directly from C code, * there is no particular need for the C struct definition to show the - * field type as TimestampTz --- instead we just make it Datum. + * field type as TimestampTz --- instead we just make it int. */ - -#define timestamptz Datum +#define timestamptz int /* ---------------- diff --git a/src/include/catalog/pg_autovacuum.h b/src/include/catalog/pg_autovacuum.h index babd946fb7..4c10d8a202 100644 --- a/src/include/catalog/pg_autovacuum.h +++ b/src/include/catalog/pg_autovacuum.h @@ -13,12 +13,7 @@ #ifndef PG_AUTOVACUUM_H #define PG_AUTOVACUUM_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_autovacuum definition. cpp turns this into @@ -26,6 +21,7 @@ * ---------------- */ #define AutovacuumRelationId 1248 + CATALOG(pg_autovacuum,1248) BKI_WITHOUT_OIDS { Oid vacrelid; /* OID of table */ diff --git a/src/include/catalog/pg_cast.h b/src/include/catalog/pg_cast.h index 756f749336..44e92b3482 100644 --- a/src/include/catalog/pg_cast.h +++ b/src/include/catalog/pg_cast.h @@ -21,6 +21,13 @@ #ifndef PG_CAST_H #define PG_CAST_H +#include "catalog/genbki.h" + +/* ---------------- + * pg_cast definition. cpp turns this into + * typedef struct FormData_pg_cast + * ---------------- + */ #define CastRelationId 2605 CATALOG(pg_cast,2605) diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h index d61bbc8eba..e803ab25d8 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -19,12 +19,7 @@ #ifndef PG_CLASS_H #define PG_CLASS_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_class definition. cpp turns this into diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h index ed71aa2f3e..501899dffb 100644 --- a/src/include/catalog/pg_constraint.h +++ b/src/include/catalog/pg_constraint.h @@ -19,16 +19,10 @@ #ifndef PG_CONSTRAINT_H #define PG_CONSTRAINT_H +#include "catalog/genbki.h" #include "nodes/pg_list.h" /* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- * pg_constraint definition. cpp turns this into * typedef struct FormData_pg_constraint * ---------------- diff --git a/src/include/catalog/pg_conversion.h b/src/include/catalog/pg_conversion.h index c97731a179..7f0f37dc5a 100644 --- a/src/include/catalog/pg_conversion.h +++ b/src/include/catalog/pg_conversion.h @@ -19,12 +19,7 @@ #ifndef PG_CONVERSION_H #define PG_CONVERSION_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------------------------------------------------------- * pg_conversion definition. @@ -79,18 +74,4 @@ typedef FormData_pg_conversion *Form_pg_conversion; * --------------- */ -/* - * prototypes for functions in pg_conversion.c - */ -#include "nodes/parsenodes.h" - -extern Oid ConversionCreate(const char *conname, Oid connamespace, - Oid conowner, - int32 conforencoding, int32 contoencoding, - Oid conproc, bool def); -extern void ConversionDrop(Oid conversionOid, DropBehavior behavior); -extern void RemoveConversionById(Oid conversionOid); -extern Oid FindConversion(const char *conname, Oid connamespace); -extern Oid FindDefaultConversion(Oid connamespace, int32 for_encoding, int32 to_encoding); - #endif /* PG_CONVERSION_H */ diff --git a/src/include/catalog/pg_conversion_fn.h b/src/include/catalog/pg_conversion_fn.h new file mode 100644 index 0000000000..c5ff7bcb9e --- /dev/null +++ b/src/include/catalog/pg_conversion_fn.h @@ -0,0 +1,28 @@ +/*------------------------------------------------------------------------- + * + * pg_conversion_fn.h + * prototypes for functions in catalog/pg_conversion.c + * + * + * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $PostgreSQL$ + * + *------------------------------------------------------------------------- + */ +#ifndef PG_CONVERSION_FN_H +#define PG_CONVERSION_FN_H + +#include "nodes/parsenodes.h" + +extern Oid ConversionCreate(const char *conname, Oid connamespace, + Oid conowner, + int32 conforencoding, int32 contoencoding, + Oid conproc, bool def); +extern void ConversionDrop(Oid conversionOid, DropBehavior behavior); +extern void RemoveConversionById(Oid conversionOid); +extern Oid FindConversion(const char *conname, Oid connamespace); +extern Oid FindDefaultConversion(Oid connamespace, int32 for_encoding, int32 to_encoding); + +#endif /* PG_CONVERSION_FN_H */ diff --git a/src/include/catalog/pg_database.h b/src/include/catalog/pg_database.h index 015bc88594..6e9e5d23bf 100644 --- a/src/include/catalog/pg_database.h +++ b/src/include/catalog/pg_database.h @@ -19,12 +19,7 @@ #ifndef PG_DATABASE_H #define PG_DATABASE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_database definition. cpp turns this into diff --git a/src/include/catalog/pg_depend.h b/src/include/catalog/pg_depend.h index fae74f05e7..262529d6da 100644 --- a/src/include/catalog/pg_depend.h +++ b/src/include/catalog/pg_depend.h @@ -19,12 +19,7 @@ #ifndef PG_DEPEND_H #define PG_DEPEND_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_depend definition. cpp turns this into diff --git a/src/include/catalog/pg_description.h b/src/include/catalog/pg_description.h index ccfd3485b2..44ecebeace 100644 --- a/src/include/catalog/pg_description.h +++ b/src/include/catalog/pg_description.h @@ -36,12 +36,7 @@ #ifndef PG_DESCRIPTION_H #define PG_DESCRIPTION_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_description definition. cpp turns this into diff --git a/src/include/catalog/pg_enum.h b/src/include/catalog/pg_enum.h index b4fb5d334b..eab57fb2b9 100644 --- a/src/include/catalog/pg_enum.h +++ b/src/include/catalog/pg_enum.h @@ -21,16 +21,10 @@ #ifndef PG_ENUM_H #define PG_ENUM_H +#include "catalog/genbki.h" #include "nodes/pg_list.h" /* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- * pg_enum definition. cpp turns this into * typedef struct FormData_pg_enum * ---------------- diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h index 679371f593..9f4bd78462 100644 --- a/src/include/catalog/pg_index.h +++ b/src/include/catalog/pg_index.h @@ -19,12 +19,7 @@ #ifndef PG_INDEX_H #define PG_INDEX_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_index definition. cpp turns this into diff --git a/src/include/catalog/pg_inherits.h b/src/include/catalog/pg_inherits.h index cb1d13667b..5adf50e603 100644 --- a/src/include/catalog/pg_inherits.h +++ b/src/include/catalog/pg_inherits.h @@ -19,12 +19,7 @@ #ifndef PG_INHERITS_H #define PG_INHERITS_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_inherits definition. cpp turns this into diff --git a/src/include/catalog/pg_language.h b/src/include/catalog/pg_language.h index 522d9e3027..64e881e02a 100644 --- a/src/include/catalog/pg_language.h +++ b/src/include/catalog/pg_language.h @@ -19,12 +19,7 @@ #ifndef PG_LANGUAGE_H #define PG_LANGUAGE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_language definition. cpp turns this into diff --git a/src/include/catalog/pg_largeobject.h b/src/include/catalog/pg_largeobject.h index 4e4776d969..d757594245 100644 --- a/src/include/catalog/pg_largeobject.h +++ b/src/include/catalog/pg_largeobject.h @@ -19,12 +19,7 @@ #ifndef PG_LARGEOBJECT_H #define PG_LARGEOBJECT_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_largeobject definition. cpp turns this into diff --git a/src/include/catalog/pg_listener.h b/src/include/catalog/pg_listener.h index 175be18047..99f17054e2 100644 --- a/src/include/catalog/pg_listener.h +++ b/src/include/catalog/pg_listener.h @@ -18,12 +18,7 @@ #ifndef PG_LISTENER_H #define PG_LISTENER_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------------------------------------------------------- * pg_listener definition. diff --git a/src/include/catalog/pg_namespace.h b/src/include/catalog/pg_namespace.h index fe0a6735ca..1a7c3180cc 100644 --- a/src/include/catalog/pg_namespace.h +++ b/src/include/catalog/pg_namespace.h @@ -19,12 +19,7 @@ #ifndef PG_NAMESPACE_H #define PG_NAMESPACE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------------------------------------------------------- * pg_namespace definition. diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h index 2f74979794..2f56df38bb 100644 --- a/src/include/catalog/pg_opclass.h +++ b/src/include/catalog/pg_opclass.h @@ -39,12 +39,7 @@ #ifndef PG_OPCLASS_H #define PG_OPCLASS_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_opclass definition. cpp turns this into diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index 8c475ecdac..eea0677e85 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -22,16 +22,10 @@ #ifndef PG_OPERATOR_H #define PG_OPERATOR_H +#include "catalog/genbki.h" #include "nodes/pg_list.h" /* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- * pg_operator definition. cpp turns this into * typedef struct FormData_pg_operator * ---------------- diff --git a/src/include/catalog/pg_opfamily.h b/src/include/catalog/pg_opfamily.h index 2798ba7079..89583031e2 100644 --- a/src/include/catalog/pg_opfamily.h +++ b/src/include/catalog/pg_opfamily.h @@ -19,12 +19,7 @@ #ifndef PG_OPFAMILY_H #define PG_OPFAMILY_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_opfamily definition. cpp turns this into diff --git a/src/include/catalog/pg_pltemplate.h b/src/include/catalog/pg_pltemplate.h index 537bd3c53e..b9b03c2f29 100644 --- a/src/include/catalog/pg_pltemplate.h +++ b/src/include/catalog/pg_pltemplate.h @@ -19,12 +19,7 @@ #ifndef PG_PLTEMPLATE_H #define PG_PLTEMPLATE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_pltemplate definition. cpp turns this into diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 61c035eefd..23484149bb 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -23,12 +23,7 @@ #ifndef PG_PROC_H #define PG_PROC_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_proc definition. cpp turns this into @@ -4443,31 +4438,4 @@ DESCR("is txid visible in snapshot?"); #define PROARGMODE_OUT 'o' #define PROARGMODE_INOUT 'b' - -/* - * prototypes for functions in pg_proc.c - */ -extern Oid ProcedureCreate(const char *procedureName, - Oid procNamespace, - bool replace, - bool returnsSet, - Oid returnType, - Oid languageObjectId, - Oid languageValidator, - const char *prosrc, - const char *probin, - bool isAgg, - bool security_definer, - bool isStrict, - char volatility, - oidvector *parameterTypes, - Datum allParameterTypes, - Datum parameterModes, - Datum parameterNames, - Datum proconfig, - float4 procost, - float4 prorows); - -extern bool function_parse_error_transpose(const char *prosrc); - #endif /* PG_PROC_H */ diff --git a/src/include/catalog/pg_proc_fn.h b/src/include/catalog/pg_proc_fn.h new file mode 100644 index 0000000000..43b73c2682 --- /dev/null +++ b/src/include/catalog/pg_proc_fn.h @@ -0,0 +1,40 @@ +/*------------------------------------------------------------------------- + * + * pg_proc_fn.h + * prototypes for functions in catalog/pg_proc.c + * + * + * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $PostgreSQL$ + * + *------------------------------------------------------------------------- + */ +#ifndef PG_PROC_FN_H +#define PG_PROC_FN_H + +extern Oid ProcedureCreate(const char *procedureName, + Oid procNamespace, + bool replace, + bool returnsSet, + Oid returnType, + Oid languageObjectId, + Oid languageValidator, + const char *prosrc, + const char *probin, + bool isAgg, + bool security_definer, + bool isStrict, + char volatility, + oidvector *parameterTypes, + Datum allParameterTypes, + Datum parameterModes, + Datum parameterNames, + Datum proconfig, + float4 procost, + float4 prorows); + +extern bool function_parse_error_transpose(const char *prosrc); + +#endif /* PG_PROC_FN_H */ diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h index 60b8ec6088..389eff762c 100644 --- a/src/include/catalog/pg_rewrite.h +++ b/src/include/catalog/pg_rewrite.h @@ -22,12 +22,7 @@ #ifndef PG_REWRITE_H #define PG_REWRITE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_rewrite definition. cpp turns this into diff --git a/src/include/catalog/pg_shdepend.h b/src/include/catalog/pg_shdepend.h index bf4312858c..db51f1a480 100644 --- a/src/include/catalog/pg_shdepend.h +++ b/src/include/catalog/pg_shdepend.h @@ -19,12 +19,7 @@ #ifndef PG_SHDEPEND_H #define PG_SHDEPEND_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_shdepend definition. cpp turns this into @@ -32,6 +27,7 @@ * ---------------- */ #define SharedDependRelationId 1214 + CATALOG(pg_shdepend,1214) BKI_SHARED_RELATION BKI_WITHOUT_OIDS { /* diff --git a/src/include/catalog/pg_shdescription.h b/src/include/catalog/pg_shdescription.h index 46b38f6022..770bd3014b 100644 --- a/src/include/catalog/pg_shdescription.h +++ b/src/include/catalog/pg_shdescription.h @@ -29,12 +29,7 @@ #ifndef PG_SHDESCRIPTION_H #define PG_SHDESCRIPTION_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_shdescription definition. cpp turns this into diff --git a/src/include/catalog/pg_statistic.h b/src/include/catalog/pg_statistic.h index 763c88cedb..9b967c6d6c 100644 --- a/src/include/catalog/pg_statistic.h +++ b/src/include/catalog/pg_statistic.h @@ -19,18 +19,17 @@ #ifndef PG_STATISTIC_H #define PG_STATISTIC_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* - * Keep C compiler happy with anyarray, below. This will need to go elsewhere - * if we ever use anyarray for more than pg_statistic. + * The CATALOG definition has to refer to the type of stavaluesN as + * "anyarray" so that bootstrap mode recognizes it. There is no real + * typedef for that, however. Since the fields are potentially-null and + * therefore can't be accessed directly from C code, there is no particular + * need for the C struct definition to show a valid field type --- instead + * we just make it int. */ -typedef struct varlena anyarray; +#define anyarray int /* ---------------- * pg_statistic definition. cpp turns this into @@ -129,6 +128,9 @@ CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS #define STATISTIC_NUM_SLOTS 4 +#undef anyarray + + /* ---------------- * Form_pg_statistic corresponds to a pointer to a tuple with * the format of pg_statistic relation. diff --git a/src/include/catalog/pg_tablespace.h b/src/include/catalog/pg_tablespace.h index 2ab5a64f8a..20e481dba2 100644 --- a/src/include/catalog/pg_tablespace.h +++ b/src/include/catalog/pg_tablespace.h @@ -19,12 +19,7 @@ #ifndef PG_TABLESPACE_H #define PG_TABLESPACE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_tablespace definition. cpp turns this into diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h index ca33309e35..7e90ebb6bb 100644 --- a/src/include/catalog/pg_trigger.h +++ b/src/include/catalog/pg_trigger.h @@ -19,12 +19,7 @@ #ifndef PG_TRIGGER_H #define PG_TRIGGER_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_trigger definition. cpp turns this into diff --git a/src/include/catalog/pg_ts_config.h b/src/include/catalog/pg_ts_config.h index 2f26005951..5aae8d6c6d 100644 --- a/src/include/catalog/pg_ts_config.h +++ b/src/include/catalog/pg_ts_config.h @@ -21,12 +21,7 @@ #ifndef PG_TS_CONFIG_H #define PG_TS_CONFIG_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_ts_config definition. cpp turns this into diff --git a/src/include/catalog/pg_ts_config_map.h b/src/include/catalog/pg_ts_config_map.h index be75f51d97..8a3d69cf7b 100644 --- a/src/include/catalog/pg_ts_config_map.h +++ b/src/include/catalog/pg_ts_config_map.h @@ -21,12 +21,7 @@ #ifndef PG_TS_CONFIG_MAP_H #define PG_TS_CONFIG_MAP_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_ts_config_map definition. cpp turns this into diff --git a/src/include/catalog/pg_ts_dict.h b/src/include/catalog/pg_ts_dict.h index f80c071f01..f53765438f 100644 --- a/src/include/catalog/pg_ts_dict.h +++ b/src/include/catalog/pg_ts_dict.h @@ -21,12 +21,7 @@ #ifndef PG_TS_DICT_H #define PG_TS_DICT_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_ts_dict definition. cpp turns this into diff --git a/src/include/catalog/pg_ts_parser.h b/src/include/catalog/pg_ts_parser.h index 8711cb6485..85e0256577 100644 --- a/src/include/catalog/pg_ts_parser.h +++ b/src/include/catalog/pg_ts_parser.h @@ -21,12 +21,7 @@ #ifndef PG_TS_PARSER_H #define PG_TS_PARSER_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_ts_parser definition. cpp turns this into diff --git a/src/include/catalog/pg_ts_template.h b/src/include/catalog/pg_ts_template.h index bd504dfdef..2b53880cf9 100644 --- a/src/include/catalog/pg_ts_template.h +++ b/src/include/catalog/pg_ts_template.h @@ -21,12 +21,7 @@ #ifndef PG_TS_TEMPLATE_H #define PG_TS_TEMPLATE_H -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_ts_template definition. cpp turns this into diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index a4e9e8a929..d517da7cb2 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -19,14 +19,7 @@ #ifndef PG_TYPE_H #define PG_TYPE_H -#include "nodes/nodes.h" - -/* ---------------- - * postgres.h contains the system type definitions and the - * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ +#include "catalog/genbki.h" /* ---------------- * pg_type definition. cpp turns this into @@ -631,63 +624,4 @@ DATA(insert OID = 3500 ( anyenum PGNSP PGUID 4 t p t \054 0 0 0 anyenum_in any (typid) == ANYNONARRAYOID || \ (typid) == ANYENUMOID) -/* - * prototypes for functions in pg_type.c - */ -extern Oid TypeShellMake(const char *typeName, Oid typeNamespace); - -extern Oid TypeCreate(Oid newTypeOid, - const char *typeName, - Oid typeNamespace, - Oid relationOid, - char relationKind, - int16 internalSize, - char typeType, - char typDelim, - Oid inputProcedure, - Oid outputProcedure, - Oid receiveProcedure, - Oid sendProcedure, - Oid typmodinProcedure, - Oid typmodoutProcedure, - Oid analyzeProcedure, - Oid elementType, - bool isImplicitArray, - Oid arrayType, - Oid baseType, - const char *defaultTypeValue, - char *defaultTypeBin, - bool passedByValue, - char alignment, - char storage, - int32 typeMod, - int32 typNDims, - bool typeNotNull); - -extern void GenerateTypeDependencies(Oid typeNamespace, - Oid typeObjectId, - Oid relationOid, - char relationKind, - Oid owner, - Oid inputProcedure, - Oid outputProcedure, - Oid receiveProcedure, - Oid sendProcedure, - Oid typmodinProcedure, - Oid typmodoutProcedure, - Oid analyzeProcedure, - Oid elementType, - bool isImplicitArray, - Oid baseType, - Node *defaultExpr, - bool rebuild); - -extern void RenameTypeInternal(Oid typeOid, const char *newTypeName, - Oid typeNamespace); - -extern char *makeArrayTypeName(const char *typeName, Oid typeNamespace); - -extern bool moveArrayTypeName(Oid typeOid, const char *typeName, - Oid typeNamespace); - #endif /* PG_TYPE_H */ diff --git a/src/include/catalog/pg_type_fn.h b/src/include/catalog/pg_type_fn.h new file mode 100644 index 0000000000..2990cc1a77 --- /dev/null +++ b/src/include/catalog/pg_type_fn.h @@ -0,0 +1,76 @@ +/*------------------------------------------------------------------------- + * + * pg_type_fn.h + * prototypes for functions in catalog/pg_type.c + * + * + * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $PostgreSQL$ + * + *------------------------------------------------------------------------- + */ +#ifndef PG_TYPE_FN_H +#define PG_TYPE_FN_H + +#include "nodes/nodes.h" + + +extern Oid TypeShellMake(const char *typeName, Oid typeNamespace); + +extern Oid TypeCreate(Oid newTypeOid, + const char *typeName, + Oid typeNamespace, + Oid relationOid, + char relationKind, + int16 internalSize, + char typeType, + char typDelim, + Oid inputProcedure, + Oid outputProcedure, + Oid receiveProcedure, + Oid sendProcedure, + Oid typmodinProcedure, + Oid typmodoutProcedure, + Oid analyzeProcedure, + Oid elementType, + bool isImplicitArray, + Oid arrayType, + Oid baseType, + const char *defaultTypeValue, + char *defaultTypeBin, + bool passedByValue, + char alignment, + char storage, + int32 typeMod, + int32 typNDims, + bool typeNotNull); + +extern void GenerateTypeDependencies(Oid typeNamespace, + Oid typeObjectId, + Oid relationOid, + char relationKind, + Oid owner, + Oid inputProcedure, + Oid outputProcedure, + Oid receiveProcedure, + Oid sendProcedure, + Oid typmodinProcedure, + Oid typmodoutProcedure, + Oid analyzeProcedure, + Oid elementType, + bool isImplicitArray, + Oid baseType, + Node *defaultExpr, + bool rebuild); + +extern void RenameTypeInternal(Oid typeOid, const char *newTypeName, + Oid typeNamespace); + +extern char *makeArrayTypeName(const char *typeName, Oid typeNamespace); + +extern bool moveArrayTypeName(Oid typeOid, const char *typeName, + Oid typeNamespace); + +#endif /* PG_TYPE_FN_H */ diff --git a/src/include/commands/sequence.h b/src/include/commands/sequence.h index c8e5ccb703..02f6297b3d 100644 --- a/src/include/commands/sequence.h +++ b/src/include/commands/sequence.h @@ -94,13 +94,4 @@ extern void AlterSequence(AlterSeqStmt *stmt); extern void seq_redo(XLogRecPtr lsn, XLogRecord *rptr); extern void seq_desc(StringInfo buf, uint8 xl_info, char *rec); -/* Set the upper and lower bounds of a sequence */ -#ifndef INT64_IS_BUSTED -#define SEQ_MAXVALUE INT64CONST(0x7FFFFFFFFFFFFFFF) -#else /* INT64_IS_BUSTED */ -#define SEQ_MAXVALUE ((int64) 0x7FFFFFFF) -#endif /* INT64_IS_BUSTED */ - -#define SEQ_MINVALUE (-SEQ_MAXVALUE) - #endif /* SEQUENCE_H */ diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h index d4e1e41837..fe4f1a00d7 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -103,6 +103,17 @@ #define INDEX_MAX_KEYS 32 /* + * Set the upper and lower bounds of sequence values. + */ +#ifndef INT64_IS_BUSTED +#define SEQ_MAXVALUE INT64CONST(0x7FFFFFFFFFFFFFFF) +#else /* INT64_IS_BUSTED */ +#define SEQ_MAXVALUE ((int64) 0x7FFFFFFF) +#endif /* INT64_IS_BUSTED */ + +#define SEQ_MINVALUE (-SEQ_MAXVALUE) + +/* * Number of spare LWLocks to allocate for user-defined add-on code. */ #define NUM_USER_DEFINED_LWLOCKS 4 diff --git a/src/include/postgres.h b/src/include/postgres.h index 47f9d875bc..043922a8d2 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -26,7 +26,6 @@ * 1) variable-length datatypes (TOAST support) * 2) datum type + support macros * 3) exception handling definitions - * 4) genbki macros used by catalog/pg_xxx.h files * * NOTES * @@ -708,21 +707,4 @@ extern int ExceptionalCondition(const char *conditionName, const char *errorType, const char *fileName, int lineNumber); -/* ---------------------------------------------------------------- - * Section 4: genbki macros used by catalog/pg_xxx.h files - * ---------------------------------------------------------------- - */ -#define CATALOG(name,oid) typedef struct CppConcat(FormData_,name) - -#define BKI_BOOTSTRAP -#define BKI_SHARED_RELATION -#define BKI_WITHOUT_OIDS - -/* these need to expand into some harmless, repeatable declaration */ -#define DATA(x) extern int no_such_variable -#define DESCR(x) extern int no_such_variable -#define SHDESCR(x) extern int no_such_variable - -typedef int4 aclitem; /* PHONY definition for catalog use only */ - #endif /* POSTGRES_H */ diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index ab4f9b94cc..89f27182bd 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -25,6 +25,7 @@ #include "catalog/pg_attribute.h" #include "catalog/pg_class.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" #include "funcapi.h" #include "nodes/makefuncs.h" |