From 039dfbfd5d29e11da553f4a77a49ca52eafe8217 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 27 Mar 2008 03:57:34 +0000 Subject: [PATCH] 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 --- src/backend/catalog/dependency.c | 3 +- src/backend/catalog/heap.c | 3 +- src/backend/catalog/namespace.c | 3 +- src/backend/catalog/pg_aggregate.c | 3 +- src/backend/catalog/pg_conversion.c | 3 +- src/backend/catalog/pg_proc.c | 3 +- src/backend/catalog/pg_type.c | 3 +- src/backend/commands/conversioncmds.c | 3 +- src/backend/commands/functioncmds.c | 4 +- src/backend/commands/proclang.c | 3 +- src/backend/commands/tablecmds.c | 3 +- src/backend/commands/typecmds.c | 3 +- src/backend/parser/keywords.c | 19 +++++-- src/backend/utils/hash/pg_crc.c | 5 +- src/bin/pg_config/pg_config.c | 4 +- src/bin/pg_controldata/pg_controldata.c | 4 +- src/bin/pg_dump/common.c | 11 ++-- src/bin/pg_dump/pg_dump.c | 12 +--- src/bin/psql/print.c | 8 +-- src/include/catalog/genbki.h | 39 +++++++++++++ src/include/catalog/pg_aggregate.h | 10 +--- src/include/catalog/pg_am.h | 9 +-- src/include/catalog/pg_amop.h | 9 +-- src/include/catalog/pg_amproc.h | 9 +-- src/include/catalog/pg_attrdef.h | 9 +-- src/include/catalog/pg_attribute.h | 9 +-- src/include/catalog/pg_auth_members.h | 4 +- src/include/catalog/pg_authid.h | 9 +-- src/include/catalog/pg_autovacuum.h | 10 +--- src/include/catalog/pg_cast.h | 9 ++- src/include/catalog/pg_class.h | 9 +-- src/include/catalog/pg_constraint.h | 10 +--- src/include/catalog/pg_conversion.h | 23 +------- src/include/catalog/pg_conversion_fn.h | 28 +++++++++ src/include/catalog/pg_database.h | 9 +-- src/include/catalog/pg_depend.h | 9 +-- src/include/catalog/pg_description.h | 9 +-- src/include/catalog/pg_enum.h | 10 +--- src/include/catalog/pg_index.h | 9 +-- src/include/catalog/pg_inherits.h | 9 +-- src/include/catalog/pg_language.h | 9 +-- src/include/catalog/pg_largeobject.h | 9 +-- src/include/catalog/pg_listener.h | 9 +-- src/include/catalog/pg_namespace.h | 9 +-- src/include/catalog/pg_opclass.h | 9 +-- src/include/catalog/pg_operator.h | 10 +--- src/include/catalog/pg_opfamily.h | 9 +-- src/include/catalog/pg_pltemplate.h | 9 +-- src/include/catalog/pg_proc.h | 36 +----------- src/include/catalog/pg_proc_fn.h | 40 +++++++++++++ src/include/catalog/pg_rewrite.h | 9 +-- src/include/catalog/pg_shdepend.h | 10 +--- src/include/catalog/pg_shdescription.h | 9 +-- src/include/catalog/pg_statistic.h | 22 +++---- src/include/catalog/pg_tablespace.h | 9 +-- src/include/catalog/pg_trigger.h | 9 +-- src/include/catalog/pg_ts_config.h | 9 +-- src/include/catalog/pg_ts_config_map.h | 9 +-- src/include/catalog/pg_ts_dict.h | 9 +-- src/include/catalog/pg_ts_parser.h | 9 +-- src/include/catalog/pg_ts_template.h | 9 +-- src/include/catalog/pg_type.h | 70 +---------------------- src/include/catalog/pg_type_fn.h | 76 +++++++++++++++++++++++++ src/include/commands/sequence.h | 11 +--- src/include/pg_config_manual.h | 13 ++++- src/include/postgres.h | 20 +------ src/pl/plpgsql/src/pl_comp.c | 3 +- 67 files changed, 358 insertions(+), 448 deletions(-) create mode 100644 src/include/catalog/genbki.h create mode 100644 src/include/catalog/pg_conversion_fn.h create mode 100644 src/include/catalog/pg_proc_fn.h create mode 100644 src/include/catalog/pg_type_fn.h diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 44b674b002..54af43135e 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.70 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.71 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 2ee79aef9f..567280e152 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.331 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.332 2008/03/27 03:57:33 tgl Exp $ * * * INTERFACE ROUTINES @@ -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 1383d1e2af..0cb7cf95f7 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -13,7 +13,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.104 2008/01/01 19:45:48 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.105 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 c88f9973b9..69b01b17e1 100644 --- a/src/backend/catalog/pg_aggregate.c +++ b/src/backend/catalog/pg_aggregate.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.91 2008/03/25 22:42:42 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.92 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 68b9f2e293..a456ca4b49 100644 --- a/src/backend/catalog/pg_conversion.c +++ b/src/backend/catalog/pg_conversion.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.41 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.42 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 c099d95c05..1f11f82a30 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.150 2008/03/25 22:42:42 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.151 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 cdbd55c529..525e4472dd 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.117 2008/03/25 22:42:42 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.118 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 f1f4738084..43f5329b03 100644 --- a/src/backend/commands/conversioncmds.c +++ b/src/backend/commands/conversioncmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.32 2008/01/01 19:45:48 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.33 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 7f382c5eaa..8194b780ef 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.90 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.91 2008/03/27 03:57:33 tgl Exp $ * * DESCRIPTION * These routines take the parse tree and pick out the @@ -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 ffc1e39630..f695cc7b42 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.76 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.77 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 a03f0079f8..1754484eee 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.247 2008/03/26 21:10:37 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.248 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 c9b5b61929..3f557b078b 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.116 2008/03/26 21:10:38 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.117 2008/03/27 03:57:33 tgl Exp $ * * DESCRIPTION * The "DefineFoo" routines take the parse tree and pick out the @@ -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 301be227d9..b5312a487f 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -3,25 +3,34 @@ * 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 * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.194 2008/01/01 19:45:50 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.195 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ -#include "postgres.h" + +/* Use c.h so that this file can be built in either frontend or backend */ +#include "c.h" #include -#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 dacd3b94a5..b5e8abb58e 100644 --- a/src/backend/utils/hash/pg_crc.c +++ b/src/backend/utils/hash/pg_crc.c @@ -19,12 +19,13 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/hash/pg_crc.c,v 1.18 2008/01/01 19:45:53 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/hash/pg_crc.c,v 1.19 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ -#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 315b62622a..db3f9f1e08 100644 --- a/src/bin/pg_config/pg_config.c +++ b/src/bin/pg_config/pg_config.c @@ -17,12 +17,12 @@ * * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.27 2008/02/18 14:51:48 petere Exp $ + * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.28 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ -#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 4cb6ada312..ea712654d8 100644 --- a/src/bin/pg_controldata/pg_controldata.c +++ b/src/bin/pg_controldata/pg_controldata.c @@ -6,9 +6,9 @@ * copyright (c) Oliver Elphick , 2001; * licence: BSD * - * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.37 2008/02/17 02:09:29 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.38 2008/03/27 03:57:33 tgl Exp $ */ -#include "postgres.h" +#include "postgres_fe.h" #include #include diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 288b9d68f5..2d41a52e19 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -11,19 +11,18 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.102 2008/01/01 19:45:55 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.103 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ - #include "postgres_fe.h" -#include "pg_backup_archiver.h" - -#include "postgres.h" -#include "catalog/pg_class.h" #include +#include "catalog/pg_class.h" + +#include "pg_backup_archiver.h" + /* * Variables for mapping DumpId to DumpableObject diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ce292e9008..25e784cb5e 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,20 +12,14 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.484 2008/03/26 14:32:22 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.485 2008/03/27 03:57:33 tgl Exp $ * *------------------------------------------------------------------------- */ -/* - * 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 - #include #ifdef ENABLE_NLS #include @@ -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 16c98c283b..411c66b1a0 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,12 +3,10 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.96 2008/01/01 19:45:56 momjian Exp $ - * - * 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. + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.97 2008/03/27 03:57:34 tgl Exp $ */ -#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..4fd3b08c77 --- /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: pgsql/src/include/catalog/genbki.h,v 1.1 2008/03/27 03:57:34 tgl Exp $ + * + *------------------------------------------------------------------------- + */ +#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 74676dd432..a8b4ac2f93 100644 --- a/src/include/catalog/pg_aggregate.h +++ b/src/include/catalog/pg_aggregate.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.65 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.66 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 81a6470754..06287979d1 100644 --- a/src/include/catalog/pg_am.h +++ b/src/include/catalog/pg_am.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.53 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.54 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 7505b62c72..cc211232fa 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -29,7 +29,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.84 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.85 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 338438772b..8a80446953 100644 --- a/src/include/catalog/pg_amproc.h +++ b/src/include/catalog/pg_amproc.h @@ -22,7 +22,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.70 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.71 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 e86dddf244..7d269d7f3e 100644 --- a/src/include/catalog/pg_attrdef.h +++ b/src/include/catalog/pg_attrdef.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_attrdef.h,v 1.22 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_attrdef.h,v 1.23 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 562cd3f484..2a39d2a6b9 100644 --- a/src/include/catalog/pg_attribute.h +++ b/src/include/catalog/pg_attribute.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.134 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.135 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 d3b9693eb2..a81c590d0c 100644 --- a/src/include/catalog/pg_auth_members.h +++ b/src/include/catalog/pg_auth_members.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_auth_members.h,v 1.4 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_auth_members.h,v 1.5 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 a8f8d1988e..3af59f415d 100644 --- a/src/include/catalog/pg_authid.h +++ b/src/include/catalog/pg_authid.h @@ -10,7 +10,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_authid.h,v 1.7 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_authid.h,v 1.8 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 3edc3286ec..a12c1bab73 100644 --- a/src/include/catalog/pg_autovacuum.h +++ b/src/include/catalog/pg_autovacuum.h @@ -6,19 +6,14 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_autovacuum.h,v 1.8 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_autovacuum.h,v 1.9 2008/03/27 03:57:34 tgl Exp $ * *------------------------------------------------------------------------- */ #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 c046056b0a..5ad101361c 100644 --- a/src/include/catalog/pg_cast.h +++ b/src/include/catalog/pg_cast.h @@ -10,7 +10,7 @@ * * Copyright (c) 2002-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.38 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.39 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 a1a87e7489..d1fb332e38 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.104 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.105 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 4c0fd51d34..a05e2a4a40 100644 --- a/src/include/catalog/pg_constraint.h +++ b/src/include/catalog/pg_constraint.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.27 2008/01/17 18:56:54 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.28 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -19,15 +19,9 @@ #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 9220ad4fa1..15fb8f9e9f 100644 --- a/src/include/catalog/pg_conversion.h +++ b/src/include/catalog/pg_conversion.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_conversion.h,v 1.20 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_conversion.h,v 1.21 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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..8706012197 --- /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: pgsql/src/include/catalog/pg_conversion_fn.h,v 1.1 2008/03/27 03:57:34 tgl Exp $ + * + *------------------------------------------------------------------------- + */ +#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 b42fa34f52..ae7edefdaf 100644 --- a/src/include/catalog/pg_database.h +++ b/src/include/catalog/pg_database.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.46 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.47 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 65dba93f73..68b6a48404 100644 --- a/src/include/catalog/pg_depend.h +++ b/src/include/catalog/pg_depend.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_depend.h,v 1.9 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_depend.h,v 1.10 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 bec8d1d70c..7c6a834701 100644 --- a/src/include/catalog/pg_description.h +++ b/src/include/catalog/pg_description.h @@ -22,7 +22,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_description.h,v 1.26 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_description.h,v 1.27 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 241b6d38be..3ff689a9ce 100644 --- a/src/include/catalog/pg_enum.h +++ b/src/include/catalog/pg_enum.h @@ -7,7 +7,7 @@ * * Copyright (c) 2006-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/catalog/pg_enum.h,v 1.3 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_enum.h,v 1.4 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -21,15 +21,9 @@ #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 e06505babb..9c4178d552 100644 --- a/src/include/catalog/pg_index.h +++ b/src/include/catalog/pg_index.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.45 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.46 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 3bb8dacc48..d861def818 100644 --- a/src/include/catalog/pg_inherits.h +++ b/src/include/catalog/pg_inherits.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_inherits.h,v 1.24 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_inherits.h,v 1.25 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 097cee7bed..bf9024e56b 100644 --- a/src/include/catalog/pg_language.h +++ b/src/include/catalog/pg_language.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_language.h,v 1.32 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_language.h,v 1.33 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 38c41aa522..641115f036 100644 --- a/src/include/catalog/pg_largeobject.h +++ b/src/include/catalog/pg_largeobject.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_largeobject.h,v 1.22 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_largeobject.h,v 1.23 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 819d1fe3ee..0fe3a8a6c8 100644 --- a/src/include/catalog/pg_listener.h +++ b/src/include/catalog/pg_listener.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_listener.h,v 1.23 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_listener.h,v 1.24 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 730b0ec180..d3e83059d1 100644 --- a/src/include/catalog/pg_namespace.h +++ b/src/include/catalog/pg_namespace.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_namespace.h,v 1.23 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_namespace.h,v 1.24 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 9a3c4b97d7..72689257b7 100644 --- a/src/include/catalog/pg_opclass.h +++ b/src/include/catalog/pg_opclass.h @@ -28,7 +28,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.79 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.80 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 c7f345e5a5..567d95be56 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.157 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.158 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -22,15 +22,9 @@ #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 5c6100e12d..3fd314fd52 100644 --- a/src/include/catalog/pg_opfamily.h +++ b/src/include/catalog/pg_opfamily.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_opfamily.h,v 1.7 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_opfamily.h,v 1.8 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 7f42add120..284ed39c72 100644 --- a/src/include/catalog/pg_pltemplate.h +++ b/src/include/catalog/pg_pltemplate.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_pltemplate.h,v 1.5 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_pltemplate.h,v 1.6 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 b62ff0d752..d4d7cb5b91 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.484 2008/03/23 00:24:19 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.485 2008/03/27 03:57:34 tgl Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -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..3c17471eb5 --- /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: pgsql/src/include/catalog/pg_proc_fn.h,v 1.1 2008/03/27 03:57:34 tgl Exp $ + * + *------------------------------------------------------------------------- + */ +#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 689203c96e..dcffbba7c1 100644 --- a/src/include/catalog/pg_rewrite.h +++ b/src/include/catalog/pg_rewrite.h @@ -11,7 +11,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_rewrite.h,v 1.29 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_rewrite.h,v 1.30 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 a257b9cd03..98244ecd8a 100644 --- a/src/include/catalog/pg_shdepend.h +++ b/src/include/catalog/pg_shdepend.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_shdepend.h,v 1.6 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_shdepend.h,v 1.7 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 5454113490..75a3ce5889 100644 --- a/src/include/catalog/pg_shdescription.h +++ b/src/include/catalog/pg_shdescription.h @@ -15,7 +15,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_shdescription.h,v 1.5 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_shdescription.h,v 1.6 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 06bb22111c..d6c8c87b1c 100644 --- a/src/include/catalog/pg_statistic.h +++ b/src/include/catalog/pg_statistic.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_statistic.h,v 1.34 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_statistic.h,v 1.35 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 e46560b58a..64bbdaf3a6 100644 --- a/src/include/catalog/pg_tablespace.h +++ b/src/include/catalog/pg_tablespace.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_tablespace.h,v 1.10 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_tablespace.h,v 1.11 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 73f4bb7c4c..84d3f69ce5 100644 --- a/src/include/catalog/pg_trigger.h +++ b/src/include/catalog/pg_trigger.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_trigger.h,v 1.30 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_trigger.h,v 1.31 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 79a6aa5ee6..d9987216a5 100644 --- a/src/include/catalog/pg_ts_config.h +++ b/src/include/catalog/pg_ts_config.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config.h,v 1.3 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config.h,v 1.4 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 34ad74fe84..14b0934818 100644 --- a/src/include/catalog/pg_ts_config_map.h +++ b/src/include/catalog/pg_ts_config_map.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config_map.h,v 1.3 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config_map.h,v 1.4 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 19af7fe91a..4ea9e25102 100644 --- a/src/include/catalog/pg_ts_dict.h +++ b/src/include/catalog/pg_ts_dict.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_ts_dict.h,v 1.3 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_ts_dict.h,v 1.4 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 7b187ad5f3..9824a19677 100644 --- a/src/include/catalog/pg_ts_parser.h +++ b/src/include/catalog/pg_ts_parser.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_ts_parser.h,v 1.3 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_ts_parser.h,v 1.4 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 a709fd32f4..cd838ef15f 100644 --- a/src/include/catalog/pg_ts_template.h +++ b/src/include/catalog/pg_ts_template.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_ts_template.h,v 1.4 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_ts_template.h,v 1.5 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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 961f35e589..8f2ca40093 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.192 2008/03/19 18:38:30 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.193 2008/03/27 03:57:34 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -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..8c06ca90fc --- /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: pgsql/src/include/catalog/pg_type_fn.h,v 1.1 2008/03/27 03:57:34 tgl Exp $ + * + *------------------------------------------------------------------------- + */ +#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 01a5ca90a5..cf95b6394a 100644 --- a/src/include/commands/sequence.h +++ b/src/include/commands/sequence.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/commands/sequence.h,v 1.39 2008/01/01 19:45:57 momjian Exp $ + * $PostgreSQL: pgsql/src/include/commands/sequence.h,v 1.40 2008/03/27 03:57:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 c0d546761a..5eead55481 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -6,7 +6,7 @@ * for developers. If you edit any of these, be sure to do a *full* * rebuild (and an initdb if noted). * - * $PostgreSQL: pgsql/src/include/pg_config_manual.h,v 1.29 2008/03/10 20:06:27 tgl Exp $ + * $PostgreSQL: pgsql/src/include/pg_config_manual.h,v 1.30 2008/03/27 03:57:34 tgl Exp $ *------------------------------------------------------------------------ */ @@ -102,6 +102,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. */ diff --git a/src/include/postgres.h b/src/include/postgres.h index 3c90747192..3c4f414f64 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -10,7 +10,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1995, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/postgres.h,v 1.88 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/postgres.h,v 1.89 2008/03/27 03:57:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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 9f928f702b..c124d07154 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.122 2008/03/25 22:42:45 tgl Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.123 2008/03/27 03:57:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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"