Commit d08741ea authored by Tom Lane's avatar Tom Lane

Restructure the key include files per recent pghackers discussion: there

are now separate files "postgres.h" and "postgres_fe.h", which are meant
to be the primary include files for backend .c files and frontend .c files
respectively.  By default, only include files meant for frontend use are
installed into the installation include directory.  There is a new make
target 'make install-all-headers' that adds the whole content of the
src/include tree to the installed fileset, for use by people who want to
develop server-side code without keeping the complete source tree on hand.
Cleaned up a whole lot of crufty and inconsistent header inclusions.
parent cf21985a
# #
# PostgreSQL top level makefile # PostgreSQL top level makefile
# #
# $Header: /cvsroot/pgsql/GNUmakefile.in,v 1.16 2001/01/06 21:24:01 petere Exp $ # $Header: /cvsroot/pgsql/GNUmakefile.in,v 1.17 2001/02/10 02:31:25 tgl Exp $
# #
subdir = subdir =
...@@ -22,6 +22,9 @@ installdirs uninstall distprep: ...@@ -22,6 +22,9 @@ installdirs uninstall distprep:
$(MAKE) -C doc $@ $(MAKE) -C doc $@
$(MAKE) -C src $@ $(MAKE) -C src $@
install-all-headers:
$(MAKE) -C src $@
# clean, distclean, etc should apply to contrib too, even though # clean, distclean, etc should apply to contrib too, even though
# it's not built by default # it's not built by default
clean: clean:
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# GNUmakefile won't exist yet, so we catch that case as well. # GNUmakefile won't exist yet, so we catch that case as well.
all check install installdirs installcheck uninstall dep depend clean distclean maintainer-clean: all check install installdirs install-all-headers installcheck uninstall dep depend clean distclean maintainer-clean:
@if [ ! -f GNUmakefile ] ; then \ @if [ ! -f GNUmakefile ] ; then \
echo "You need to run the 'configure' program first. See the file"; \ echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \ echo "'INSTALL' for installation instructions." ; \
......
/*#include "postgres.h"*/
typedef struct NDBOX { typedef struct NDBOX {
unsigned int size; /* required to be a Postgres varlena type */ unsigned int size; /* required to be a Postgres varlena type */
unsigned int dim; unsigned int dim;
......
#include "postgres.h"
#include <math.h> #include <math.h>
#include <stdio.h>
#include <string.h>
#include <postgres.h> #include "utils/geo_decls.h" /* for Pt */
#include <utils/geo_decls.h> /* for Pt */
#include <utils/palloc.h> /* for palloc */
/* Earth's radius is in statute miles. */ /* Earth's radius is in statute miles. */
const int EARTH_RADIUS = 3958.747716; const int EARTH_RADIUS = 3958.747716;
......
#include "postgres.h" #include "postgres.h"
#include <ctype.h>
#include "executor/spi.h" #include "executor/spi.h"
#include "commands/trigger.h" #include "commands/trigger.h"
#include <ctype.h>
#include <stdio.h> /* debugging */
/* /*
* Trigger function takes 2 arguments: * Trigger function takes 2 arguments:
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
format for these routines is dictated by Postgres architecture. format for these routines is dictated by Postgres architecture.
******************************************************************************/ ******************************************************************************/
#include <stdio.h> #include "postgres.h"
#include <float.h> #include <float.h>
#include <string.h> #include <string.h>
#include "postgres.h"
#include "access/gist.h" #include "access/gist.h"
#include "access/itup.h" #include "access/itup.h"
#include "access/rtree.h" #include "access/rtree.h"
......
/* /*
* PostgreSQL type definitions for ISBNs. * PostgreSQL type definitions for ISBNs.
* *
* $Id: isbn_issn.c,v 1.2 2000/06/19 13:53:39 momjian Exp $ * $Id: isbn_issn.c,v 1.3 2001/02/10 02:31:25 tgl Exp $
*/ */
#include <stdio.h> #include "postgres.h"
#include <postgres.h>
#include <utils/palloc.h>
/* /*
* This is the internal storage format for ISBNs. * This is the internal storage format for ISBNs.
......
/* /*
* PostgreSQL type definitions for managed LargeObjects. * PostgreSQL type definitions for managed LargeObjects.
* *
* $Header: /cvsroot/pgsql/contrib/lo/lo.c,v 1.6 2000/11/21 21:51:58 tgl Exp $ * $Header: /cvsroot/pgsql/contrib/lo/lo.c,v 1.7 2001/02/10 02:31:25 tgl Exp $
* *
*/ */
#include "postgres.h" #include "postgres.h"
#include <stdio.h>
#include "utils/palloc.h"
/* Required for largeobjects */ /* Required for largeobjects */
#include "libpq/libpq-fs.h" #include "libpq/libpq-fs.h"
#include "libpq/be-fsstubs.h" #include "libpq/be-fsstubs.h"
......
/* ------------------------------------------------------------------------- /* -------------------------------------------------------------------------
* pg_dumplo * pg_dumplo
* *
* $Header: /cvsroot/pgsql/contrib/pg_dumplo/Attic/main.c,v 1.5 2001/01/24 19:42:45 momjian Exp $ * $Header: /cvsroot/pgsql/contrib/pg_dumplo/Attic/main.c,v 1.6 2001/02/10 02:31:25 tgl Exp $
* *
* Karel Zak 1999-2000 * Karel Zak 1999-2000
* ------------------------------------------------------------------------- * -------------------------------------------------------------------------
*/ */
/* We import postgres_fe.h mostly to get the HAVE_GETOPT_LONG configure result. */
#ifndef OUT_OF_PG
#include "postgres_fe.h"
#endif
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
/* We import postgres.h mostly to get the HAVE_GETOPT_LONG configure result. */
#ifndef OUT_OF_PG
#include "postgres.h"
#endif
#include <libpq-fe.h> #include <libpq-fe.h>
#include <libpq/libpq-fs.h> #include <libpq/libpq-fs.h>
......
/* /*
* $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.7 2000/11/01 00:45:46 ishii Exp $ * $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.8 2001/02/10 02:31:25 tgl Exp $
* *
* pgbench: a simple TPC-B like benchmark program for PostgreSQL * pgbench: a simple TPC-B like benchmark program for PostgreSQL
* written by Tatsuo Ishii * written by Tatsuo Ishii
...@@ -17,11 +17,8 @@ ...@@ -17,11 +17,8 @@
* suitability of this software for any purpose. It is provided "as * suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty. * is" without express or implied warranty.
*/ */
#include "postgres_fe.h"
#include "config.h"
#include <stdio.h>
#include "postgres.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#include <errno.h> #include <errno.h>
......
...@@ -26,11 +26,12 @@ ...@@ -26,11 +26,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: encode.c,v 1.2 2001/02/06 18:05:13 momjian Exp $ * $Id: encode.c,v 1.3 2001/02/10 02:31:25 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include <fmgr.h>
#include "fmgr.h"
#include "encode.h" #include "encode.h"
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: internal.c,v 1.1 2000/10/31 13:11:28 petere Exp $ * $Id: internal.c,v 1.2 2001/02/10 02:31:25 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include "pgcrypto.h" #include "pgcrypto.h"
......
...@@ -31,15 +31,15 @@ ...@@ -31,15 +31,15 @@
* It is possible that this works with other SHA1/MD5 * It is possible that this works with other SHA1/MD5
* implementations too. * implementations too.
* *
* $Id: krb.c,v 1.1 2000/10/31 13:11:28 petere Exp $ * $Id: krb.c,v 1.2 2001/02/10 02:31:25 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include "pgcrypto.h" #include "pgcrypto.h"
#include <md5.h> #include "md5.h"
#include <sha.h> #include "sha.h"
#ifndef MD5_DIGEST_LENGTH #ifndef MD5_DIGEST_LENGTH
#define MD5_DIGEST_LENGTH 16 #define MD5_DIGEST_LENGTH 16
......
/* $Id: md5.c,v 1.3 2001/01/09 16:07:13 momjian Exp $ */ /* $Id: md5.c,v 1.4 2001/02/10 02:31:25 tgl Exp $ */
/* $KAME: md5.c,v 1.3 2000/02/22 14:01:17 itojun Exp $ */ /* $KAME: md5.c,v 1.3 2000/02/22 14:01:17 itojun Exp $ */
/* /*
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <postgres.h> #include "postgres.h"
#include "md5.h" #include "md5.h"
......
...@@ -26,10 +26,11 @@ ...@@ -26,10 +26,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: mhash.c,v 1.1 2000/10/31 13:11:28 petere Exp $ * $Id: mhash.c,v 1.2 2001/02/10 02:31:26 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include "pgcrypto.h" #include "pgcrypto.h"
#include <mhash.h> #include <mhash.h>
......
...@@ -26,10 +26,11 @@ ...@@ -26,10 +26,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: openssl.c,v 1.1 2000/10/31 13:11:28 petere Exp $ * $Id: openssl.c,v 1.2 2001/02/10 02:31:26 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include "pgcrypto.h" #include "pgcrypto.h"
#include <evp.h> #include <evp.h>
......
...@@ -26,11 +26,12 @@ ...@@ -26,11 +26,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: pgcrypto.c,v 1.5 2001/02/06 18:05:13 momjian Exp $ * $Id: pgcrypto.c,v 1.6 2001/02/10 02:31:26 tgl Exp $
*/ */
#include <postgres.h> #include "postgres.h"
#include <utils/builtins.h>
#include "utils/builtins.h"
#include "pgcrypto.h" #include "pgcrypto.h"
......
/* $Id: sha1.c,v 1.3 2001/01/09 16:07:13 momjian Exp $ */ /* $Id: sha1.c,v 1.4 2001/02/10 02:31:26 tgl Exp $ */
/* $KAME: sha1.c,v 1.3 2000/02/22 14:01:18 itojun Exp $ */ /* $KAME: sha1.c,v 1.3 2000/02/22 14:01:18 itojun Exp $ */
/* /*
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
* implemented by Jun-ichiro itojun Itoh <itojun@itojun.org> * implemented by Jun-ichiro itojun Itoh <itojun@itojun.org>
*/ */
#include <postgres.h> #include "postgres.h"
#include "sha1.h" #include "sha1.h"
......
/* $Header: /cvsroot/pgsql/contrib/soundex/Attic/soundex.c,v 1.9 2000/12/03 20:45:31 tgl Exp $ */ /* $Header: /cvsroot/pgsql/contrib/soundex/Attic/soundex.c,v 1.10 2001/02/10 02:31:26 tgl Exp $ */
#include "postgres.h" #include "postgres.h"
#include <ctype.h>
#include "fmgr.h" #include "fmgr.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include <ctype.h>
#include <string.h>
#include <stdio.h>
Datum text_soundex(PG_FUNCTION_ARGS); Datum text_soundex(PG_FUNCTION_ARGS);
......
...@@ -9,12 +9,10 @@ ...@@ -9,12 +9,10 @@
* either version 2, or (at your option) any later version. * either version 2, or (at your option) any later version.
*/ */
#include "postgres.h"
#include <ctype.h> #include <ctype.h>
#include <string.h>
#include "postgres.h"
#include "utils/elog.h"
#include "utils/palloc.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "string_io.h" #include "string_io.h"
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.34 2001/01/15 21:17:27 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.35 2001/02/10 02:31:26 tgl Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%flattext-install-include[<productname>PostgreSQL</>]]> Installation Instructions</title> <title><![%flattext-install-include[<productname>PostgreSQL</>]]> Installation Instructions</title>
...@@ -783,11 +783,26 @@ All of PostgreSQL is successfully made. Ready to install. ...@@ -783,11 +783,26 @@ All of PostgreSQL is successfully made. Ready to install.
them, but how to do that is left as an exercise. them, but how to do that is left as an exercise.
</para> </para>
<para>
The standard install installs only the header files needed for client
application development. If you plan to do any server-side program
development (such as custom functions or datatypes written in C),
then you may want to install the entire <productname>PostgreSQL</>
include tree into your target include directory. To do that, enter
<screen>
<userinput>gmake install-all-headers</userinput>
</screen>
This adds a megabyte or two to the install footprint, and is only
useful if you don't plan to keep the whole source tree around for
reference. (If you do, you can just use the source's include
directory when building server-side software.)
</para>
<formalpara> <formalpara>
<title>Client-only installation</title> <title>Client-only installation</title>
<para> <para>
If you want to install only the client applications and If you want to install only the client applications and
interfaces, then you can use these commands: interface libraries, then you can use these commands:
<screen> <screen>
<userinput>gmake -C src/bin install</> <userinput>gmake -C src/bin install</>
<userinput>gmake -C src/interfaces install</> <userinput>gmake -C src/interfaces install</>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.60 2000/09/29 17:17:32 petere Exp $ # $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.61 2001/02/10 02:31:26 tgl Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -20,6 +20,9 @@ all install installdirs uninstall dep depend distprep: ...@@ -20,6 +20,9 @@ all install installdirs uninstall dep depend distprep:
$(MAKE) -C bin $@ $(MAKE) -C bin $@
$(MAKE) -C pl $@ $(MAKE) -C pl $@
install-all-headers:
$(MAKE) -C include $@
clean: clean:
$(MAKE) -C backend $@ $(MAKE) -C backend $@
$(MAKE) -C include $@ $(MAKE) -C include $@
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# GNUmakefile won't exist yet, so we catch that case as well. # GNUmakefile won't exist yet, so we catch that case as well.
all check install installdirs installcheck uninstall dep depend clean distclean maintainer-clean: all check install installdirs install-all-headers installcheck uninstall dep depend clean distclean maintainer-clean:
@if [ ! -f GNUmakefile ] ; then \ @if [ ! -f GNUmakefile ] ; then \
echo "You need to run the 'configure' program first. See the file"; \ echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \ echo "'INSTALL' for installation instructions." ; \
......
...@@ -9,23 +9,22 @@ ...@@ -9,23 +9,22 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/lib/dllist.c,v 1.20 2001/01/24 19:42:55 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/lib/dllist.c,v 1.21 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" /* can be used in frontend or backend */
#include "lib/dllist.h"
/* When this file is compiled for inclusion in libpq,
* it can't use assert checking. Probably this fix ought to be
* in c.h or somewhere like that...
*/
#ifdef FRONTEND #ifdef FRONTEND
#undef Assert #include "postgres_fe.h"
/* No assert checks in frontend ... */
#define Assert(condition) #define Assert(condition)
#else
#include "postgres.h"
#endif #endif
#include "lib/dllist.h"
Dllist * Dllist *
DLNewList(void) DLNewList(void)
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* wherein you authenticate a user by seeing what IP address the system * wherein you authenticate a user by seeing what IP address the system
* says he comes from and possibly using ident). * says he comes from and possibly using ident).
* *
* $Id: hba.c,v 1.54 2000/08/27 21:50:18 tgl Exp $ * $Id: hba.c,v 1.55 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -882,7 +882,7 @@ struct CharsetItem ...@@ -882,7 +882,7 @@ struct CharsetItem
char Table[MAX_TOKEN]; char Table[MAX_TOKEN];
}; };
int static bool
InRange(char *buf, int host) InRange(char *buf, int host)
{ {
int valid, int valid,
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.18 2001/01/24 19:42:56 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.19 2001/02/10 02:31:26 tgl Exp $
* *
* NOTES * NOTES
* This shouldn't be in libpq, but the monitor and some other * This shouldn't be in libpq, but the monitor and some other
...@@ -38,10 +38,10 @@ ...@@ -38,10 +38,10 @@
* is to do signal-handler reinstallation, which doesn't work well * is to do signal-handler reinstallation, which doesn't work well
* at all. * at all.
* ------------------------------------------------------------------------*/ * ------------------------------------------------------------------------*/
#include <signal.h>
#include "postgres.h" #include "postgres.h"
#include <signal.h>
#include "libpq/pqsignal.h" #include "libpq/pqsignal.h"
......
/* /*
* $Id: aix.h,v 1.3 2000/09/29 22:00:43 momjian Exp $ * $Id: aix.h,v 1.4 2001/02/10 02:31:26 tgl Exp $
* *
* @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52 * @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52
* This is an unpublished work copyright (c) 1992 HELIOS Software GmbH * This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
...@@ -56,7 +56,6 @@ extern "C" ...@@ -56,7 +56,6 @@ extern "C"
#endif /* HAVE_DLOPEN */ #endif /* HAVE_DLOPEN */
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
#define pg_dlopen(f) dlopen(f, RTLD_LAZY) #define pg_dlopen(f) dlopen(f, RTLD_LAZY)
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/port/dynloader/Attic/beos.c,v 1.5 2001/01/24 19:43:03 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/port/dynloader/Attic/beos.c,v 1.6 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
#include "utils/elog.h"
void * void *
...@@ -74,4 +74,4 @@ pg_dlclose(void *handle) ...@@ -74,4 +74,4 @@ pg_dlclose(void *handle)
elog(NOTICE, "error while unloading add-on"); elog(NOTICE, "error while unloading add-on");
free(handle); free(handle);
} }
} }
\ No newline at end of file
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#ifndef PORT_PROTOS_H #ifndef PORT_PROTOS_H
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: dgux.h,v 1.8 2001/01/24 19:43:04 momjian Exp $ * $Id: dgux.h,v 1.9 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* /*
......
...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91"; ...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91";
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "postgres.h"
#include "dynloader.h" #include "dynloader.h"
static char error_message[BUFSIZ]; static char error_message[BUFSIZ];
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: freebsd.h,v 1.7 2001/01/24 19:43:04 momjian Exp $ * $Id: freebsd.h,v 1.8 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -18,9 +18,6 @@ ...@@ -18,9 +18,6 @@
#include <nlist.h> #include <nlist.h>
#include <link.h> #include <link.h>
#include "postgres.h"
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/port/dynloader/hpux.c,v 1.16 2001/02/07 17:59:58 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/port/dynloader/hpux.c,v 1.17 2001/02/10 02:31:26 tgl Exp $
* *
* NOTES * NOTES
* all functions are defined here -- it's impossible to trace the * all functions are defined here -- it's impossible to trace the
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include "dl.h" #include "dl.h"
#include "dynloader.h" #include "dynloader.h"
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
void * void *
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -7,14 +7,13 @@ ...@@ -7,14 +7,13 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: linux.h,v 1.10 2001/01/24 19:43:04 momjian Exp $ * $Id: linux.h,v 1.11 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#ifndef PORT_PROTOS_H #ifndef PORT_PROTOS_H
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
#ifdef __ELF__ #ifdef __ELF__
#include <dlfcn.h> #include <dlfcn.h>
......
...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91"; ...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91";
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "postgres.h"
#include "dynloader.h" #include "dynloader.h"
static char error_message[BUFSIZ]; static char error_message[BUFSIZ];
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: netbsd.h,v 1.2 2001/01/24 19:43:04 momjian Exp $ * $Id: netbsd.h,v 1.3 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -18,9 +18,6 @@ ...@@ -18,9 +18,6 @@
#include <nlist.h> #include <nlist.h>
#include "link.h" #include "link.h"
#include "postgres.h"
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#ifndef PORT_PROTOS_H #ifndef PORT_PROTOS_H
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
void *next_dlopen(char *name); void *next_dlopen(char *name);
......
...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91"; ...@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)dl.c 5.4 (Berkeley) 2/23/91";
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "postgres.h"
#include "dynloader.h" #include "dynloader.h"
static char error_message[BUFSIZ]; static char error_message[BUFSIZ];
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: openbsd.h,v 1.2 2001/01/24 19:43:04 momjian Exp $ * $Id: openbsd.h,v 1.3 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -18,9 +18,6 @@ ...@@ -18,9 +18,6 @@
#include <nlist.h> #include <nlist.h>
#include "link.h" #include "link.h"
#include "postgres.h"
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/port/dynloader/Attic/qnx4.c,v 1.2 2000/05/28 17:56:02 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/port/dynloader/Attic/qnx4.c,v 1.3 2001/02/10 02:31:26 tgl Exp $
* *
* NOTES * NOTES
* *
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <dl.h> #include <dl.h>
*/ */
#include "postgres.h" #include "postgres.h"
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
#include "dynloader.h" #include "dynloader.h"
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: sco.h,v 1.6 2001/01/24 19:43:04 momjian Exp $ * $Id: sco.h,v 1.7 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
/* $Header: /cvsroot/pgsql/src/backend/port/dynloader/solaris.h,v 1.1 2000/10/10 21:22:23 petere Exp $ */ /* $Header: /cvsroot/pgsql/src/backend/port/dynloader/solaris.h,v 1.2 2001/02/10 02:31:26 tgl Exp $ */
#ifndef DYNLOADER_SOLARIS_H #ifndef DYNLOADER_SOLARIS_H
#define DYNLOADER_SOLARIS_H #define DYNLOADER_SOLARIS_H
#include "config.h"
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
#define pg_dlopen(f) dlopen(f,1) #define pg_dlopen(f) dlopen(f,1)
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: sunos4.h,v 1.6 2001/01/24 19:43:04 momjian Exp $ * $Id: sunos4.h,v 1.7 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: svr4.h,v 1.6 2001/01/24 19:43:04 momjian Exp $ * $Id: svr4.h,v 1.7 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define DYNLOADER_H #define DYNLOADER_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.h */ /* dynloader.h */
......
...@@ -2,22 +2,19 @@ ...@@ -2,22 +2,19 @@
* *
* dynloader.c * dynloader.c
* This dynamic loader uses Andrew Yu's libdl-1.0 package for Ultrix 4.x. * This dynamic loader uses Andrew Yu's libdl-1.0 package for Ultrix 4.x.
* (Note that pg_dlsym and pg_dlclose are actually macros defined in
* "port-protos.h".)
* *
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/port/dynloader/ultrix4.c,v 1.12 2001/01/24 19:43:04 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/port/dynloader/ultrix4.c,v 1.13 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres.h"
#include "dl.h" #include "dl.h"
#include "fmgr.h"
#include "port-protos.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
extern char pg_pathname[]; extern char pg_pathname[];
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h"
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
......
...@@ -32,11 +32,12 @@ ...@@ -32,11 +32,12 @@
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
/* might be in either frontend or backend */
#include "postgres_fe.h"
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <sys/param.h> #include <sys/param.h>
#include "postgres.h"
/* /*
* We do all internal arithmetic in the widest available integer type, * We do all internal arithmetic in the widest available integer type,
...@@ -74,7 +75,7 @@ typedef unsigned long ulong_long; ...@@ -74,7 +75,7 @@ typedef unsigned long ulong_long;
* causing nast effects. * causing nast effects.
**************************************************************/ **************************************************************/
/*static char _id[] = "$Id: snprintf.c,v 1.29 2000/12/30 19:17:47 tgl Exp $";*/ /*static char _id[] = "$Id: snprintf.c,v 1.30 2001/02/10 02:31:26 tgl Exp $";*/
static char *end; static char *end;
static int SnprfOverflow; static int SnprfOverflow;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.205 2001/02/08 00:35:10 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.206 2001/02/10 02:31:26 tgl Exp $
* *
* NOTES * NOTES
* *
...@@ -235,11 +235,6 @@ static void InitSSL(void); ...@@ -235,11 +235,6 @@ static void InitSSL(void);
#endif #endif
#ifdef CYR_RECODE
extern void GetCharSetByHost(char *, int, char *);
#endif
static void static void
checkDataDir(const char *checkdir) checkDataDir(const char *checkdir)
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.84 2001/01/24 19:43:07 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.85 2001/02/10 02:31:26 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -22,8 +22,9 @@ ...@@ -22,8 +22,9 @@
#include "access/genam.h" #include "access/genam.h"
#include "access/heapam.h" #include "access/heapam.h"
#include "access/nbtree.h"
#include "access/htup.h" #include "access/htup.h"
#include "access/nbtree.h"
#include "access/tuptoaster.h"
#include "catalog/catalog.h" #include "catalog/catalog.h"
#include "catalog/catname.h" #include "catalog/catname.h"
#include "catalog/heap.h" #include "catalog/heap.h"
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.73 2001/01/24 19:43:14 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.74 2001/02/10 02:31:27 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "access/hash.h" #include "access/hash.h"
#include "catalog/pg_type.h" #include "catalog/pg_type.h"
#include "miscadmin.h"
#include "utils/acl.h" #include "utils/acl.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/fmgroids.h" #include "utils/fmgroids.h"
......
...@@ -8,15 +8,16 @@ ...@@ -8,15 +8,16 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.67 2001/01/24 19:43:14 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.68 2001/02/10 02:31:27 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include <ctype.h>
#include "postgres.h" #include "postgres.h"
#include <ctype.h>
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#include "miscadmin.h"
#include "utils/builtins.h" #include "utils/builtins.h"
static int text_cmp(text *arg1, text *arg2); static int text_cmp(text *arg1, text *arg2);
......
...@@ -8,13 +8,14 @@ ...@@ -8,13 +8,14 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.49 2001/01/24 19:43:15 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.50 2001/02/10 02:31:27 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres.h"
#include "access/tuptoaster.h"
#include "catalog/pg_language.h" #include "catalog/pg_language.h"
#include "catalog/pg_proc.h" #include "catalog/pg_proc.h"
#include "executor/functions.h" #include "executor/functions.h"
......
...@@ -4,10 +4,12 @@ ...@@ -4,10 +4,12 @@
* *
* Tatsuo Ishii * Tatsuo Ishii
* *
* $Id: alt.c,v 1.2 1999/05/25 16:12:38 momjian Exp $ * $Id: alt.c,v 1.3 2001/02/10 02:31:27 tgl Exp $
*/ */
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int i; int i;
......
...@@ -7,9 +7,12 @@ ...@@ -7,9 +7,12 @@
* *
* 1999/1/15 Tatsuo Ishii * 1999/1/15 Tatsuo Ishii
* *
* $Id: big5.c,v 1.6 2000/12/09 04:27:36 ishii Exp $ * $Id: big5.c,v 1.7 2001/02/10 02:31:27 tgl Exp $
*/ */
/* can be used in either frontend or backend */
#include "postgres_fe.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
typedef struct typedef struct
......
...@@ -2,10 +2,9 @@ ...@@ -2,10 +2,9 @@
* This file contains some public functions * This file contains some public functions
* usable for both the backend and the frontend. * usable for both the backend and the frontend.
* Tatsuo Ishii * Tatsuo Ishii
* $Id: common.c,v 1.10 2000/10/30 10:40:28 ishii Exp $ */ * $Id: common.c,v 1.11 2001/02/10 02:31:27 tgl Exp $
*/
#include <stdlib.h> #include "postgres.h"
#include <string.h>
#ifdef WIN32 #ifdef WIN32
#include "win32.h" #include "win32.h"
...@@ -13,8 +12,6 @@ ...@@ -13,8 +12,6 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#include "postgres.h"
#include "miscadmin.h" #include "miscadmin.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#include "utils/builtins.h" #include "utils/builtins.h"
......
...@@ -6,13 +6,12 @@ ...@@ -6,13 +6,12 @@
* WIN1250 client encoding support contributed by Pavel Behal * WIN1250 client encoding support contributed by Pavel Behal
* SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya * SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya
* *
* $Id: conv.c,v 1.21 2000/11/17 04:42:10 ishii Exp $ * $Id: conv.c,v 1.22 2001/02/10 02:31:27 tgl Exp $
* *
* *
*/ */
/* can be used in either frontend or backend */
#include <stdio.h> #include "postgres_fe.h"
#include <string.h>
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -4,10 +4,12 @@ ...@@ -4,10 +4,12 @@
* *
* Tatsuo Ishii * Tatsuo Ishii
* *
* $Id: iso.c,v 1.2 1999/05/25 16:12:42 momjian Exp $ * $Id: iso.c,v 1.3 2001/02/10 02:31:27 tgl Exp $
*/ */
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int i; int i;
......
#include <stdio.h> #include "postgres_fe.h"
#include <string.h>
#include <ctype.h>
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
* client encoding and server internal encoding. * client encoding and server internal encoding.
* (currently mule internal code (mic) is used) * (currently mule internal code (mic) is used)
* Tatsuo Ishii * Tatsuo Ishii
* $Id: mbutils.c,v 1.14 2000/11/14 18:37:44 tgl Exp $ */ * $Id: mbutils.c,v 1.15 2001/02/10 02:31:27 tgl Exp $
*/
#include "postgres.h" #include "postgres.h"
#include "miscadmin.h" #include "miscadmin.h"
......
/* /*
* conversion functions between pg_wchar and multi-byte streams. * conversion functions between pg_wchar and multi-byte streams.
* Tatsuo Ishii * Tatsuo Ishii
* $Id: wchar.c,v 1.13 2000/10/12 06:06:50 ishii Exp $ * $Id: wchar.c,v 1.14 2001/02/10 02:31:27 tgl Exp $
* *
* WIN1250 client encoding updated by Pavel Behal * WIN1250 client encoding updated by Pavel Behal
* *
*/ */
/* can be used in either frontend or backend */
#include "postgres_fe.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -4,10 +4,12 @@ ...@@ -4,10 +4,12 @@
* *
* Tatsuo Ishii * Tatsuo Ishii
* *
* $Id: win.c,v 1.2 1999/05/25 16:12:45 momjian Exp $ * $Id: win.c,v 1.3 2001/02/10 02:31:27 tgl Exp $
*/ */
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int i; int i;
......
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
/* can be used in either frontend or backend */
#include "postgres_fe.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
/* can be used in either frontend or backend */
#include "postgres_fe.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.52 2001/01/28 03:47:49 pjw Exp $ * $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.53 2001/02/10 02:31:27 tgl Exp $
* *
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
* *
...@@ -27,18 +27,15 @@ ...@@ -27,18 +27,15 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "pg_dump.h"
#include <ctype.h> #include <ctype.h>
#include "postgres.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#ifndef HAVE_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif
#include "pg_dump.h"
static char **findParentsByOid(TableInfo *tbinfo, int numTables, static char **findParentsByOid(TableInfo *tbinfo, int numTables,
InhInfo *inhinfo, int numInherits, InhInfo *inhinfo, int numInherits,
const char *oid, const char *oid,
......
...@@ -40,13 +40,10 @@ ...@@ -40,13 +40,10 @@
*/ */
#ifndef PG_BACKUP__ #ifndef PG_BACKUP__
#include "config.h"
#include "c.h"
#define PG_BACKUP__ #define PG_BACKUP__
#include "postgres.h" #include "postgres_fe.h"
#include "libpq-fe.h" #include "libpq-fe.h"
typedef enum _archiveFormat { typedef enum _archiveFormat {
......
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
#ifndef __PG_BACKUP_ARCHIVE__ #ifndef __PG_BACKUP_ARCHIVE__
#define __PG_BACKUP_ARCHIVE__ #define __PG_BACKUP_ARCHIVE__
#include <stdio.h> #include "postgres_fe.h"
#include <time.h> #include <time.h>
#include "postgres.h"
#include "pqexpbuffer.h" #include "pqexpbuffer.h"
#ifdef HAVE_LIBZ #ifdef HAVE_LIBZ
......
...@@ -31,9 +31,10 @@ ...@@ -31,9 +31,10 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include <stdlib.h>
#include "pg_backup.h" #include "pg_backup.h"
#include "pg_backup_archiver.h" #include "pg_backup_archiver.h"
#include <stdlib.h>
#include <errno.h> #include <errno.h>
/*-------- /*--------
......
...@@ -13,33 +13,24 @@ ...@@ -13,33 +13,24 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "pg_dump.h"
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include "pg_backup_db.h"
#include <unistd.h> /* for getopt() */ #include <unistd.h> /* for getopt() */
#include <ctype.h> #include <ctype.h>
#include "postgres.h"
#ifdef HAVE_TERMIOS_H #ifdef HAVE_TERMIOS_H
#include <termios.h> #include <termios.h>
#endif #endif
#include "access/attnum.h"
#include "access/htup.h"
#include "catalog/pg_index.h"
#include "catalog/pg_language.h"
#include "catalog/pg_trigger.h"
#include "catalog/pg_type.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#include <libpq/libpq-fs.h> #include "libpq/libpq-fs.h"
#ifndef HAVE_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif
#include "pg_dump.h"
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include "pg_backup_db.h"
static const char *progname = "Archiver(db)"; static const char *progname = "Archiver(db)";
static void _prompt_for_password(char *username, char *password); static void _prompt_for_password(char *username, char *password);
......
...@@ -32,11 +32,12 @@ ...@@ -32,11 +32,12 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include <stdlib.h>
#include <string.h>
#include "pg_backup.h" #include "pg_backup.h"
#include "pg_backup_archiver.h" #include "pg_backup_archiver.h"
#include <stdlib.h>
#include <string.h>
static void _ArchiveEntry(ArchiveHandle* AH, TocEntry* te); static void _ArchiveEntry(ArchiveHandle* AH, TocEntry* te);
static void _StartData(ArchiveHandle* AH, TocEntry* te); static void _StartData(ArchiveHandle* AH, TocEntry* te);
static int _WriteData(ArchiveHandle* AH, const void* data, int dLen); static int _WriteData(ArchiveHandle* AH, const void* data, int dLen);
......
...@@ -30,11 +30,12 @@ ...@@ -30,11 +30,12 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h> /* for dup */ #include <unistd.h> /* for dup */
#include "pg_backup.h"
#include "pg_backup_archiver.h"
static int _WriteData(ArchiveHandle* AH, const void* data, int dLen); static int _WriteData(ArchiveHandle* AH, const void* data, int dLen);
static void _EndData(ArchiveHandle* AH, TocEntry* te); static void _EndData(ArchiveHandle* AH, TocEntry* te);
......
...@@ -28,13 +28,14 @@ ...@@ -28,13 +28,14 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include "pg_backup_tar.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <unistd.h> #include <unistd.h>
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include "pg_backup_tar.h"
static void _ArchiveEntry(ArchiveHandle* AH, TocEntry* te); static void _ArchiveEntry(ArchiveHandle* AH, TocEntry* te);
static void _StartData(ArchiveHandle* AH, TocEntry* te); static void _StartData(ArchiveHandle* AH, TocEntry* te);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.190 2001/01/28 03:47:49 pjw Exp $ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.191 2001/02/10 02:31:27 tgl Exp $
* *
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
* *
...@@ -104,13 +104,18 @@ ...@@ -104,13 +104,18 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
/*
* 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 <unistd.h> /* for getopt() */ #include <unistd.h> /* for getopt() */
#include <ctype.h> #include <ctype.h>
#include "pg_backup.h" #include "pg_backup.h"
#include "postgres.h"
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_H
#include <getopt.h> #include <getopt.h>
#endif #endif
...@@ -120,13 +125,12 @@ ...@@ -120,13 +125,12 @@
#include "access/attnum.h" #include "access/attnum.h"
#include "access/htup.h" #include "access/htup.h"
#include "catalog/pg_index.h" #include "catalog/pg_class.h"
#include "catalog/pg_language.h"
#include "catalog/pg_trigger.h" #include "catalog/pg_trigger.h"
#include "catalog/pg_type.h" #include "catalog/pg_type.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#include <libpq/libpq-fs.h> #include "libpq/libpq-fs.h"
#ifndef HAVE_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pg_dump.h,v 1.57 2001/01/24 19:43:18 momjian Exp $ * $Id: pg_dump.h,v 1.58 2001/02/10 02:31:27 tgl Exp $
* *
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
* *
...@@ -29,9 +29,8 @@ ...@@ -29,9 +29,8 @@
#ifndef PG_DUMP_H #ifndef PG_DUMP_H
#define PG_DUMP_H #define PG_DUMP_H
#include "pqexpbuffer.h"
#include "catalog/pg_index.h"
#include "pg_backup.h" #include "pg_backup.h"
#include "pqexpbuffer.h"
/* The data structures used to store system catalog information */ /* The data structures used to store system catalog information */
......
...@@ -50,24 +50,13 @@ ...@@ -50,24 +50,13 @@
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "pg_backup.h"
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
/*
#include "postgres.h"
#include "access/htup.h"
#include "catalog/pg_type.h"
#include "catalog/pg_language.h"
#include "catalog/pg_index.h"
#include "catalog/pg_trigger.h"
#include "libpq-fe.h"
*/
#include "pg_backup.h"
#ifndef HAVE_STRDUP #ifndef HAVE_STRDUP
#include "strdup.h" #include "strdup.h"
#endif #endif
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
* *
* Copyright (C) 2000 by PostgreSQL Global Development Group * Copyright (C) 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/pg_id/Attic/pg_id.c,v 1.16 2000/10/07 14:39:15 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/pg_id/Attic/pg_id.c,v 1.17 2001/02/10 02:31:27 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_H
#include <getopt.h> #include <getopt.h>
......
/* /*
* @(#) pg_passwd.c 1.8 09:13:16 97/07/02 Y. Ichikawa * @(#) pg_passwd.c 1.8 09:13:16 97/07/02 Y. Ichikawa
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <time.h> #include <time.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.45 2001/01/27 21:49:58 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.46 2001/02/10 02:31:27 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "command.h" #include "command.h"
#include <errno.h> #include <errno.h>
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
#include "variables.h" #include "variables.h"
#ifdef MULTIBYTE #ifdef MULTIBYTE
#include "miscadmin.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#else #else
/* Grand unified hard-coded badness */ /* Grand unified hard-coded badness */
......
...@@ -3,9 +3,10 @@ ...@@ -3,9 +3,10 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.29 2000/12/18 17:33:42 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.30 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "common.h" #include "common.h"
#include <errno.h> #include <errno.h>
...@@ -26,7 +27,6 @@ ...@@ -26,7 +27,6 @@
#endif #endif
#include "libpq-fe.h" #include "libpq-fe.h"
#include "postgres_ext.h"
#include "pqsignal.h" #include "pqsignal.h"
#include "settings.h" #include "settings.h"
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.12 2000/08/29 09:36:48 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.13 2001/02/10 02:31:28 tgl Exp $
*/ */
#ifndef COMMON_H #ifndef COMMON_H
#define COMMON_H #define COMMON_H
#include "postgres.h" #include "postgres_fe.h"
#include <signal.h> #include <signal.h>
#include "pqsignal.h" #include "pqsignal.h"
#include "libpq-fe.h" #include "libpq-fe.h"
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/copy.c,v 1.16 2000/12/03 15:39:38 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/copy.c,v 1.17 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "copy.h" #include "copy.h"
#include <errno.h> #include <errno.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.26 2000/10/25 20:36:52 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.27 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "describe.h" #include "describe.h"
#include "libpq-fe.h" #include "libpq-fe.h"
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.35 2001/01/24 19:43:18 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.36 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "help.h" #include "help.h"
#include <signal.h> #include <signal.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/input.c,v 1.14 2000/11/27 02:20:36 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/input.c,v 1.15 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "input.h" #include "input.h"
#include <errno.h> #include <errno.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/large_obj.c,v 1.12 2000/10/24 04:13:28 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/large_obj.c,v 1.13 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "large_obj.h" #include "large_obj.h"
#include "libpq-fe.h" #include "libpq-fe.h"
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.34 2000/07/17 18:24:33 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.35 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "mainloop.h" #include "mainloop.h"
#include "pqexpbuffer.h" #include "pqexpbuffer.h"
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/mainloop.h,v 1.9 2000/04/12 17:16:22 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.h,v 1.10 2001/02/10 02:31:28 tgl Exp $
*/ */
#ifndef MAINLOOP_H #ifndef MAINLOOP_H
#define MAINLOOP_H #define MAINLOOP_H
#include "postgres.h" #include "postgres_fe.h"
#include <stdio.h> #include <stdio.h>
#ifndef WIN32 #ifndef WIN32
#include <setjmp.h> #include <setjmp.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.14 2000/11/16 05:51:03 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.15 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "print.h" #include "print.h"
#include <math.h> #include <math.h>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.16 2000/11/27 02:20:36 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.17 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "prompt.h" #include "prompt.h"
#include "libpq-fe.h" #include "libpq-fe.h"
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.43 2001/01/24 19:43:18 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.44 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include <sys/types.h> #include <sys/types.h>
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "variables.h" #include "variables.h"
#ifdef MULTIBYTE #ifdef MULTIBYTE
#include "miscadmin.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#else #else
/* XXX Grand unified hard-coded badness; this should go into libpq */ /* XXX Grand unified hard-coded badness; this should go into libpq */
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.26 2000/04/12 17:16:23 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.27 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "stringutils.h" #include "stringutils.h"
#include <ctype.h> #include <ctype.h>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.25 2000/12/31 11:57:58 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.26 2001/02/10 02:31:28 tgl Exp $
*/ */
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
*---------------------------------------------------------------------- *----------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "tab-complete.h" #include "tab-complete.h"
#include "input.h" #include "input.h"
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.h,v 1.5 2000/04/12 17:16:23 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.h,v 1.6 2001/02/10 02:31:28 tgl Exp $
*/ */
#ifndef TAB_COMPLETE_H #ifndef TAB_COMPLETE_H
#define TAB_COMPLETE_H #define TAB_COMPLETE_H
#include "postgres.h" #include "postgres_fe.h"
void initialize_readline(void); void initialize_readline(void);
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/variables.c,v 1.8 2000/04/12 17:16:23 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/variables.c,v 1.9 2001/02/10 02:31:28 tgl Exp $
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "variables.h" #include "variables.h"
#include <assert.h> #include <assert.h>
......
...@@ -2,10 +2,11 @@ ...@@ -2,10 +2,11 @@
# #
# Makefile for src/include # Makefile for src/include
# #
# Install exported headers to the include directory (these headers are # 'make install' installs only those headers needed for client-side
# the minimal ones needed to build loadable backend extensions). # programming. 'make install-all-headers' installs the whole contents
# of src/include.
# #
# $Header: /cvsroot/pgsql/src/include/Makefile,v 1.5 2000/10/20 21:04:03 petere Exp $ # $Header: /cvsroot/pgsql/src/include/Makefile,v 1.6 2001/02/10 02:31:28 tgl Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -13,30 +14,23 @@ subdir = src/include ...@@ -13,30 +14,23 @@ subdir = src/include
top_builddir = ../.. top_builddir = ../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
# Headers needed by clients
srcdir_headers := c.h postgres_ext.h postgres_fe.h \
libpq/pqcomm.h libpq/libpq-fs.h lib/dllist.h
srcdir_headers := c.h postgres.h postgres_ext.h fmgr.h \ builddir_headers := os.h config.h
libpq/pqcomm.h libpq/libpq-fs.h lib/dllist.h \
utils/geo_decls.h utils/elog.h utils/palloc.h \
access/attnum.h executor/spi.h commands/trigger.h
builddir_headers := os.h config.h utils/fmgroids.h
HEADERS = $(srcdir_headers) $(builddir_headers) HEADERS = $(srcdir_headers) $(builddir_headers)
# Subdirectories containing headers that install-all-headers should install
all: $(HEADERS) SUBDIRS = access bootstrap catalog commands executor lib libpq mb \
nodes optimizer parser port regex rewrite storage tcop utils
# These rules are necessary in case someone installs the include tree all: $(HEADERS)
# before building the backend tree. Very messy.
utils/fmgroids.h: $(top_builddir)/src/backend/utils/fmgroids.h
cd utils && rm -f fmgroids.h && $(LN_S) ../$(top_builddir)/src/backend/utils/fmgroids.h .
# This file is built in the backend tree, but we need to keep track of
# the dependencies here.
$(top_builddir)/src/backend/utils/fmgroids.h: $(top_srcdir)/src/backend/utils/Gen_fmgrtab.sh catalog/pg_proc.h
$(MAKE) -C $(dir $@) fmgroids.h
# Install only selected headers
install: all installdirs install: all installdirs
for file in $(srcdir_headers); do \ for file in $(srcdir_headers); do \
...@@ -46,13 +40,34 @@ install: all installdirs ...@@ -46,13 +40,34 @@ install: all installdirs
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/$$file || exit; \ $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/$$file || exit; \
done done
# Automatically pick out the needed subdirectories for the include # Automatically pick out the needed subdirectories for the include tree.
# tree.
installdirs: installdirs:
$(mkinstalldirs) $(addprefix $(DESTDIR)$(includedir)/, $(sort $(dir $(HEADERS)))) $(mkinstalldirs) $(addprefix $(DESTDIR)$(includedir)/, $(sort $(dir $(HEADERS))))
# Install all headers
install-all-headers: all install-all-dirs
for file in $(srcdir)/*.h; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/`basename $$file` || exit; \
done
for dir in $(SUBDIRS); do \
for file in $(srcdir)/$$dir/*.h; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/$$dir/`basename $$file` || exit; \
done \
done
for file in $(builddir_headers); do \
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/$$file || exit; \
done
install-all-dirs:
$(mkinstalldirs) $(addprefix $(DESTDIR)$(includedir)/, $(SUBDIRS))
# This isn't a complete uninstall, but rm'ing everything under
# $(DESTDIR)$(includedir) is probably too drastic...
uninstall: uninstall:
rm -f $(addprefix $(DESTDIR)$(includedir)/, $(HEADERS)) rm -rf $(addprefix $(DESTDIR)$(includedir)/, $(HEADERS) $(SUBDIRS))
clean: clean:
rm -f utils/fmgroids.h parser/parse.h rm -f utils/fmgroids.h parser/parse.h
......
...@@ -2,17 +2,22 @@ ...@@ -2,17 +2,22 @@
* *
* c.h * c.h
* Fundamental C definitions. This is included by every .c file in * Fundamental C definitions. This is included by every .c file in
* postgres. * PostgreSQL (via either postgres.h or postgres_fe.h, as appropriate).
*
* Note that the definitions here are not intended to be exposed to clients of
* the frontend interface libraries --- so we don't worry much about polluting
* the namespace with lots of stuff...
* *
* *
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: c.h,v 1.89 2001/01/24 19:43:19 momjian Exp $ * $Id: c.h,v 1.90 2001/02/10 02:31:28 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
/* /*
*----------------------------------------------------------------
* TABLE OF CONTENTS * TABLE OF CONTENTS
* *
* When adding stuff to this file, please try to put stuff * When adding stuff to this file, please try to put stuff
...@@ -20,21 +25,21 @@ ...@@ -20,21 +25,21 @@
* *
* section description * section description
* ------- ------------------------------------------------ * ------- ------------------------------------------------
* 1) bool, true, false, TRUE, FALSE, NULL * 0) config.h and standard system headers
* 2) non-ansi C definitions: * 1) hacks to cope with non-ANSI C compilers
* type prefixes: const, signed, volatile, inline * 2) bool, true, false, TRUE, FALSE, NULL
* cpp magic macros
* 3) standard system types * 3) standard system types
* 4) datum type * 4) IsValid macros for system types
* 5) IsValid macros for system types * 5) offsetof, lengthof, endof, alignment
* 6) offsetof, lengthof, endof * 6) widely useful macros
* 7) exception handling definitions, Assert, Trap, etc macros * 7) random stuff
* 8) Min, Max, Abs, StrNCpy macros * 8) system-specific hacks
* 9) externs
* 10) Berkeley-specific defs
* 11) system-specific hacks
* *
* ---------------------------------------------------------------- * NOTE: since this file is included by both frontend and backend modules, it's
* almost certainly wrong to put an "extern" declaration here. typedefs and macros
* are the kind of thing that might go here.
*
*----------------------------------------------------------------
*/ */
#ifndef C_H #ifndef C_H
#define C_H #define C_H
...@@ -63,56 +68,11 @@ ...@@ -63,56 +68,11 @@
#include <SupportDefs.h> #include <SupportDefs.h>
#endif #endif
/* ----------------------------------------------------------------
* Section 1: bool, true, false, TRUE, FALSE, NULL
* ----------------------------------------------------------------
*/
/*
* bool
* Boolean value, either true or false.
*
*/
/* BeOS defines bool already, but the compiler chokes on the
* #ifndef unless we wrap it in this check.
*/
#ifndef __BEOS__
#ifndef __cplusplus
#ifndef bool
typedef char bool;
#endif /* ndef bool */
#endif /* not C++ */
#ifndef true
#define true ((bool) 1)
#endif
#ifndef false
#define false ((bool) 0)
#endif
#endif /* __BEOS__ */
typedef bool *BoolPtr;
#ifndef TRUE
#define TRUE 1
#endif /* TRUE */
#ifndef FALSE
#define FALSE 0
#endif /* FALSE */
/*
* NULL
* Null pointer.
*/
#ifndef NULL
#define NULL ((void *) 0)
#endif /* !defined(NULL) */
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 2: non-ansi C definitions: * Section 1: hacks to cope with non-ANSI C compilers
* *
* type prefixes: const, signed, volatile, inline * type prefixes (const, signed, volatile, inline) are now handled in config.h.
* cpp magic macros
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
...@@ -157,6 +117,57 @@ typedef bool *BoolPtr; ...@@ -157,6 +117,57 @@ typedef bool *BoolPtr;
#define dummyret char #define dummyret char
#endif #endif
/* ----------------------------------------------------------------
* Section 2: bool, true, false, TRUE, FALSE, NULL
* ----------------------------------------------------------------
*/
/*
* bool
* Boolean value, either true or false.
*
*/
/* BeOS defines bool already, but the compiler chokes on the
* #ifndef unless we wrap it in this check.
*/
#ifndef __BEOS__
#ifndef __cplusplus
#ifndef bool
typedef char bool;
#endif /* ndef bool */
#endif /* not C++ */
#ifndef true
#define true ((bool) 1)
#endif
#ifndef false
#define false ((bool) 0)
#endif
#endif /* __BEOS__ */
typedef bool *BoolPtr;
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
/*
* NULL
* Null pointer.
*/
#ifndef NULL
#define NULL ((void *) 0)
#endif
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 3: standard system types * Section 3: standard system types
* ---------------------------------------------------------------- * ----------------------------------------------------------------
...@@ -182,6 +193,7 @@ typedef signed char int8; /* == 8 bits */ ...@@ -182,6 +193,7 @@ typedef signed char int8; /* == 8 bits */
typedef signed short int16; /* == 16 bits */ typedef signed short int16; /* == 16 bits */
typedef signed int int32; /* == 32 bits */ typedef signed int int32; /* == 32 bits */
#endif /* __BEOS__ */ #endif /* __BEOS__ */
/* /*
* uintN * uintN
* Unsigned integer, EXACTLY N BITS IN SIZE, * Unsigned integer, EXACTLY N BITS IN SIZE,
...@@ -193,21 +205,6 @@ typedef unsigned char uint8; /* == 8 bits */ ...@@ -193,21 +205,6 @@ typedef unsigned char uint8; /* == 8 bits */
typedef unsigned short uint16; /* == 16 bits */ typedef unsigned short uint16; /* == 16 bits */
typedef unsigned int uint32; /* == 32 bits */ typedef unsigned int uint32; /* == 32 bits */
#endif /* __BEOS__ */ #endif /* __BEOS__ */
/*
* floatN
* Floating point number, AT LEAST N BITS IN SIZE,
* used for numerical computations.
*
* Since sizeof(floatN) may be > sizeof(char *), always pass
* floatN by reference.
*
* XXX: these typedefs are now deprecated in favor of float4 and float8.
* They will eventually go away.
*/
typedef float float32data;
typedef double float64data;
typedef float *float32;
typedef double *float64;
/* /*
* boolN * boolN
...@@ -235,44 +232,24 @@ typedef uint16 word16; /* >= 16 bits */ ...@@ -235,44 +232,24 @@ typedef uint16 word16; /* >= 16 bits */
typedef uint32 word32; /* >= 32 bits */ typedef uint32 word32; /* >= 32 bits */
/* /*
* Size * floatN
* Size of any memory resident object, as returned by sizeof. * Floating point number, AT LEAST N BITS IN SIZE,
*/ * used for numerical computations.
typedef size_t Size;
/*
* Index
* Index into any memory resident array.
* *
* Note: * Since sizeof(floatN) may be > sizeof(char *), always pass
* Indices are non negative. * floatN by reference.
*/
typedef unsigned int Index;
#define MAXDIM 6
typedef struct
{
int indx[MAXDIM];
} IntArray;
/*
* Offset
* Offset into any memory resident array.
* *
* Note: * XXX: these typedefs are now deprecated in favor of float4 and float8.
* This differs from an Index in that an Index is always * They will eventually go away.
* non negative, whereas Offset may be negative.
*/ */
typedef signed int Offset; typedef float float32data;
typedef double float64data;
typedef float *float32;
typedef double *float64;
/* /*
* Common Postgres datatypes. * 64-bit integers
*/ */
typedef int16 int2;
typedef int32 int4;
typedef float float4;
typedef double float8;
#ifndef __BEOS__ /* this is already defined on BeOS */ #ifndef __BEOS__ /* this is already defined on BeOS */
#ifdef HAVE_LONG_INT_64 #ifdef HAVE_LONG_INT_64
/* Plain "long int" fits, use it */ /* Plain "long int" fits, use it */
...@@ -292,344 +269,117 @@ typedef unsigned long int uint64; ...@@ -292,344 +269,117 @@ typedef unsigned long int uint64;
#endif #endif
#endif /* __BEOS__ */ #endif /* __BEOS__ */
/* ----------------------------------------------------------------
* Section 4: datum type + support macros
* ----------------------------------------------------------------
*/
/*
* datum.h
* POSTGRES abstract data type datum representation definitions.
*
* Note:
*
* Port Notes:
* Postgres makes the following assumption about machines:
*
* sizeof(Datum) == sizeof(long) >= sizeof(void *) >= 4
*
* Postgres also assumes that
*
* sizeof(char) == 1
*
* and that
*
* sizeof(short) == 2
*
* If your machine meets these requirements, Datums should also be checked
* to see if the positioning is correct.
*/
typedef unsigned long Datum; /* XXX sizeof(long) >= sizeof(void *) */
typedef Datum *DatumPtr;
#define GET_1_BYTE(datum) (((Datum) (datum)) & 0x000000ff)
#define GET_2_BYTES(datum) (((Datum) (datum)) & 0x0000ffff)
#define GET_4_BYTES(datum) (((Datum) (datum)) & 0xffffffff)
#define SET_1_BYTE(value) (((Datum) (value)) & 0x000000ff)
#define SET_2_BYTES(value) (((Datum) (value)) & 0x0000ffff)
#define SET_4_BYTES(value) (((Datum) (value)) & 0xffffffff)
/*
* DatumGetBool
* Returns boolean value of a datum.
*
* Note: any nonzero value will be considered TRUE.
*/
#define DatumGetBool(X) ((bool) (((Datum) (X)) != 0))
/*
* BoolGetDatum
* Returns datum representation for a boolean.
*
* Note: any nonzero value will be considered TRUE.
*/
#define BoolGetDatum(X) ((Datum) ((X) ? 1 : 0))
/*
* DatumGetChar
* Returns character value of a datum.
*/
#define DatumGetChar(X) ((char) GET_1_BYTE(X))
/* /*
* CharGetDatum * Size
* Returns datum representation for a character. * Size of any memory resident object, as returned by sizeof.
*/
#define CharGetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* Int8GetDatum
* Returns datum representation for an 8-bit integer.
*/
#define Int8GetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* DatumGetUInt8
* Returns 8-bit unsigned integer value of a datum.
*/
#define DatumGetUInt8(X) ((uint8) GET_1_BYTE(X))
/*
* UInt8GetDatum
* Returns datum representation for an 8-bit unsigned integer.
*/
#define UInt8GetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* DatumGetInt16
* Returns 16-bit integer value of a datum.
*/
#define DatumGetInt16(X) ((int16) GET_2_BYTES(X))
/*
* Int16GetDatum
* Returns datum representation for a 16-bit integer.
*/
#define Int16GetDatum(X) ((Datum) SET_2_BYTES(X))
/*
* DatumGetUInt16
* Returns 16-bit unsigned integer value of a datum.
*/
#define DatumGetUInt16(X) ((uint16) GET_2_BYTES(X))
/*
* UInt16GetDatum
* Returns datum representation for a 16-bit unsigned integer.
*/
#define UInt16GetDatum(X) ((Datum) SET_2_BYTES(X))
/*
* DatumGetInt32
* Returns 32-bit integer value of a datum.
*/
#define DatumGetInt32(X) ((int32) GET_4_BYTES(X))
/*
* Int32GetDatum
* Returns datum representation for a 32-bit integer.
*/
#define Int32GetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetUInt32
* Returns 32-bit unsigned integer value of a datum.
*/
#define DatumGetUInt32(X) ((uint32) GET_4_BYTES(X))
/*
* UInt32GetDatum
* Returns datum representation for a 32-bit unsigned integer.
*/
#define UInt32GetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetObjectId
* Returns object identifier value of a datum.
*/
#define DatumGetObjectId(X) ((Oid) GET_4_BYTES(X))
/*
* ObjectIdGetDatum
* Returns datum representation for an object identifier.
*/
#define ObjectIdGetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetPointer
* Returns pointer value of a datum.
*/
#define DatumGetPointer(X) ((Pointer) (X))
/*
* PointerGetDatum
* Returns datum representation for a pointer.
*/
#define PointerGetDatum(X) ((Datum) (X))
/*
* DatumGetCString
* Returns C string (null-terminated string) value of a datum.
*
* Note: C string is not a full-fledged Postgres type at present,
* but type input functions use this conversion for their inputs.
*/
#define DatumGetCString(X) ((char *) DatumGetPointer(X))
/*
* CStringGetDatum
* Returns datum representation for a C string (null-terminated string).
*
* Note: C string is not a full-fledged Postgres type at present,
* but type output functions use this conversion for their outputs.
* Note: CString is pass-by-reference; caller must ensure the pointed-to
* value has adequate lifetime.
*/
#define CStringGetDatum(X) PointerGetDatum(X)
/*
* DatumGetName
* Returns name value of a datum.
*/
#define DatumGetName(X) ((Name) DatumGetPointer(X))
/*
* NameGetDatum
* Returns datum representation for a name.
*
* Note: Name is pass-by-reference; caller must ensure the pointed-to
* value has adequate lifetime.
*/ */
typedef size_t Size;
#define NameGetDatum(X) PointerGetDatum(X)
/* /*
* DatumGetInt64 * Index
* Returns 64-bit integer value of a datum. * Index into any memory resident array.
* *
* Note: this macro hides the fact that int64 is currently a * Note:
* pass-by-reference type. Someday it may be pass-by-value, * Indices are non negative.
* at least on some platforms.
*/ */
typedef unsigned int Index;
#define DatumGetInt64(X) (* ((int64 *) DatumGetPointer(X)))
/* /*
* Int64GetDatum * Offset
* Returns datum representation for a 64-bit integer. * Offset into any memory resident array.
* *
* Note: this routine returns a reference to palloc'd space. * Note:
* This differs from an Index in that an Index is always
* non negative, whereas Offset may be negative.
*/ */
typedef signed int Offset;
extern Datum Int64GetDatum(int64 X);
/* /*
* DatumGetFloat4 * Common Postgres datatype names (as used in the catalogs)
* Returns 4-byte floating point value of a datum.
*
* Note: this macro hides the fact that float4 is currently a
* pass-by-reference type. Someday it may be pass-by-value.
*/ */
typedef int16 int2;
#define DatumGetFloat4(X) (* ((float4 *) DatumGetPointer(X))) typedef int32 int4;
typedef float float4;
typedef double float8;
/* /*
* Float4GetDatum * Oid, RegProcedure, TransactionId, CommandId
* Returns datum representation for a 4-byte floating point number.
*
* Note: this routine returns a reference to palloc'd space.
*/ */
extern Datum Float4GetDatum(float4 X); /* typedef Oid is in postgres_ext.h */
/* /* unfortunately, both regproc and RegProcedure are used */
* DatumGetFloat8 typedef Oid regproc;
* Returns 8-byte floating point value of a datum. typedef Oid RegProcedure;
*
* Note: this macro hides the fact that float8 is currently a
* pass-by-reference type. Someday it may be pass-by-value,
* at least on some platforms.
*/
#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X))) typedef uint32 TransactionId;
/* #define InvalidTransactionId 0
* Float8GetDatum
* Returns datum representation for an 8-byte floating point number.
*
* Note: this routine returns a reference to palloc'd space.
*/
extern Datum Float8GetDatum(float8 X); typedef uint32 CommandId;
#define FirstCommandId 0
/* /*
* DatumGetFloat32 * Array indexing support
* Returns 32-bit floating point value of a datum.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of DatumGetFloat4.
* It will eventually go away.
*/ */
#define MAXDIM 6
typedef struct
{
int indx[MAXDIM];
} IntArray;
#define DatumGetFloat32(X) ((float32) DatumGetPointer(X)) /* ----------------
* Variable-length datatypes all share the 'struct varlena' header.
/*
* Float32GetDatum
* Returns datum representation for a 32-bit floating point number.
* This is really a pointer, of course.
* *
* XXX: this macro is now deprecated in favor of Float4GetDatum. * NOTE: for TOASTable types, this is an oversimplification, since the value may be
* It will eventually go away. * compressed or moved out-of-line. However datatype-specific routines are mostly
* content to deal with de-TOASTed values only, and of course client-side routines
* should never see a TOASTed value. See postgres.h for details of the TOASTed form.
* ----------------
*/ */
struct varlena
{
int32 vl_len;
char vl_dat[1];
};
#define Float32GetDatum(X) PointerGetDatum(X) #define VARHDRSZ ((int32) sizeof(int32))
/* /*
* DatumGetFloat64 * These widely-used datatypes are just a varlena header and the data bytes.
* Returns 64-bit floating point value of a datum. * There is no terminating null or anything like that --- the data length is
* This is really a pointer, of course. * always VARSIZE(ptr) - VARHDRSZ.
*
* XXX: this macro is now deprecated in favor of DatumGetFloat8.
* It will eventually go away.
*/ */
typedef struct varlena bytea;
#define DatumGetFloat64(X) ((float64) DatumGetPointer(X)) typedef struct varlena text;
typedef struct varlena BpChar; /* blank-padded char, ie SQL char(n) */
typedef struct varlena VarChar; /* var-length char, ie SQL varchar(n) */
/* /*
* Float64GetDatum * Fixed-length array types (these are not varlena's!)
* Returns datum representation for a 64-bit floating point number.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of Float8GetDatum.
* It will eventually go away.
*/ */
#define Float64GetDatum(X) PointerGetDatum(X) typedef int2 int2vector[INDEX_MAX_KEYS];
typedef Oid oidvector[INDEX_MAX_KEYS];
/* /*
* Int64GetDatumFast * We want NameData to have length NAMEDATALEN and int alignment,
* Float4GetDatumFast * because that's how the data type 'name' is defined in pg_type.
* Float8GetDatumFast * Use a union to make sure the compiler agrees.
*
* These macros are intended to allow writing code that does not depend on
* whether int64, float4, float8 are pass-by-reference types, while not
* sacrificing performance when they are. The argument must be a variable
* that will exist and have the same value for as long as the Datum is needed.
* In the pass-by-ref case, the address of the variable is taken to use as
* the Datum. In the pass-by-val case, these will be the same as the non-Fast
* macros.
*/ */
typedef union nameData
{
char data[NAMEDATALEN];
int alignmentDummy;
} NameData;
typedef NameData *Name;
#define Int64GetDatumFast(X) PointerGetDatum(&(X)) #define NameStr(name) ((name).data)
#define Float4GetDatumFast(X) PointerGetDatum(&(X))
#define Float8GetDatumFast(X) PointerGetDatum(&(X))
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 5: IsValid macros for system types * Section 4: IsValid macros for system types
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
/* /*
...@@ -651,8 +401,13 @@ extern Datum Float8GetDatum(float8 X); ...@@ -651,8 +401,13 @@ extern Datum Float8GetDatum(float8 X);
#define PointerIsAligned(pointer, type) \ #define PointerIsAligned(pointer, type) \
(((long)(pointer) % (sizeof (type))) == 0) (((long)(pointer) % (sizeof (type))) == 0)
#define OidIsValid(objectId) ((bool) ((objectId) != InvalidOid))
#define RegProcedureIsValid(p) OidIsValid(p)
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 6: offsetof, lengthof, endof * Section 5: offsetof, lengthof, endof, alignment
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
/* /*
...@@ -678,125 +433,28 @@ extern Datum Float8GetDatum(float8 X); ...@@ -678,125 +433,28 @@ extern Datum Float8GetDatum(float8 X);
*/ */
#define endof(array) (&array[lengthof(array)]) #define endof(array) (&array[lengthof(array)])
/* ---------------------------------------------------------------- /* ----------------
* Section 7: exception handling definitions * Alignment macros: align a length or address appropriately for a given type.
* Assert, Trap, etc macros
* ----------------------------------------------------------------
*/
/*
* Exception Handling definitions
*/
typedef char *ExcMessage;
typedef struct Exception
{
ExcMessage message;
} Exception;
/*
* USE_ASSERT_CHECKING, if defined, turns on all the assertions.
* - plai 9/5/90
*
* It should _NOT_ be defined in releases or in benchmark copies
*/
/*
* Trap
* Generates an exception if the given condition is true.
*
*/
#define Trap(condition, exception) \
do { \
if ((assert_enabled) && (condition)) \
ExceptionalCondition(CppAsString(condition), &(exception), \
(char*)NULL, __FILE__, __LINE__); \
} while (0)
/*
* TrapMacro is the same as Trap but it's intended for use in macros:
* *
* #define foo(x) (AssertM(x != 0) && bar(x)) * There used to be some incredibly crufty platform-dependent hackery here,
* * but now we rely on the configure script to get the info for us. Much nicer.
* Isn't CPP fun?
*/
#define TrapMacro(condition, exception) \
((bool) ((! assert_enabled) || ! (condition) || \
(ExceptionalCondition(CppAsString(condition), \
&(exception), \
(char*) NULL, __FILE__, __LINE__))))
#ifndef USE_ASSERT_CHECKING
#define Assert(condition)
#define AssertMacro(condition) ((void)true)
#define AssertArg(condition)
#define AssertState(condition)
#define assert_enabled 0
#else
#define Assert(condition) \
Trap(!(condition), FailedAssertion)
#define AssertMacro(condition) \
((void) TrapMacro(!(condition), FailedAssertion))
#define AssertArg(condition) \
Trap(!(condition), BadArg)
#define AssertState(condition) \
Trap(!(condition), BadState)
extern bool assert_enabled;
#endif /* USE_ASSERT_CHECKING */
/*
* LogTrap
* Generates an exception with a message if the given condition is true.
* *
* NOTE: TYPEALIGN will not work if ALIGNVAL is not a power of 2.
* That case seems extremely unlikely to occur in practice, however.
* ----------------
*/ */
#define LogTrap(condition, exception, printArgs) \
do { \
if ((assert_enabled) && (condition)) \
ExceptionalCondition(CppAsString(condition), &(exception), \
vararg_format printArgs, __FILE__, __LINE__); \
} while (0)
/*
* LogTrapMacro is the same as LogTrap but it's intended for use in macros:
*
* #define foo(x) (LogAssertMacro(x != 0, "yow!") && bar(x))
*/
#define LogTrapMacro(condition, exception, printArgs) \
((bool) ((! assert_enabled) || ! (condition) || \
(ExceptionalCondition(CppAsString(condition), \
&(exception), \
vararg_format printArgs, __FILE__, __LINE__))))
#ifndef USE_ASSERT_CHECKING
#define LogAssert(condition, printArgs)
#define LogAssertMacro(condition, printArgs) true
#define LogAssertArg(condition, printArgs)
#define LogAssertState(condition, printArgs)
#else
#define LogAssert(condition, printArgs) \
LogTrap(!(condition), FailedAssertion, printArgs)
#define LogAssertMacro(condition, printArgs) \ #define TYPEALIGN(ALIGNVAL,LEN) (((long)(LEN) + (ALIGNVAL-1)) & ~(ALIGNVAL-1))
LogTrapMacro(!(condition), FailedAssertion, printArgs)
#define LogAssertArg(condition, printArgs) \ #define SHORTALIGN(LEN) TYPEALIGN(ALIGNOF_SHORT, (LEN))
LogTrap(!(condition), BadArg, printArgs) #define INTALIGN(LEN) TYPEALIGN(ALIGNOF_INT, (LEN))
#define LONGALIGN(LEN) TYPEALIGN(ALIGNOF_LONG, (LEN))
#define DOUBLEALIGN(LEN) TYPEALIGN(ALIGNOF_DOUBLE, (LEN))
#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN))
#define LogAssertState(condition, printArgs) \
LogTrap(!(condition), BadState, printArgs)
#ifdef ASSERT_CHECKING_TEST
extern int assertTest(int val);
#endif
#endif /* USE_ASSERT_CHECKING */
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 8: Min, Max, Abs macros * Section 6: widely useful macros
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
/* /*
...@@ -887,56 +545,30 @@ extern int assertTest(int val); ...@@ -887,56 +545,30 @@ extern int assertTest(int val);
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 9: externs * Section 7: random stuff
* ----------------------------------------------------------------
*/
extern Exception FailedAssertion;
extern Exception BadArg;
extern Exception BadState;
/* in utils/error/assert.c */
extern int ExceptionalCondition(char *conditionName,
Exception *exceptionP, char *details,
char *fileName, int lineNumber);
/* ----------------
* vararg_format is used by assert and the exception handling stuff
* ----------------
*/
extern char *vararg_format(const char *fmt,...);
/* ----------------------------------------------------------------
* Section 10: berkeley-specific configuration
*
* this section contains settings which are only relevant to the UC Berkeley
* sites. Other sites can ignore this
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
/* ---------------- /* msb for char */
* storage managers #define CSIGNBIT (0x80)
*
* These are experimental and are not supported in the code that
* we distribute to other sites.
* ----------------
*/
#ifdef NOT_USED
#define STABLE_MEMORY_STORAGE
#endif
#define STATUS_OK (0)
#define STATUS_ERROR (-1)
#define STATUS_NOT_FOUND (-2)
#define STATUS_INVALID (-3)
#define STATUS_UNCATALOGUED (-4)
#define STATUS_REPLACED (-5)
#define STATUS_NOT_DONE (-6)
#define STATUS_BAD_PACKET (-7)
#define STATUS_FOUND (1)
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 11: system-specific hacks * Section 8: system-specific hacks
* *
* This should be limited to things that absolutely have to be * This should be limited to things that absolutely have to be
* included in every source file. The changes should be factored * included in every source file. The port-specific header file
* into a separate file so that changes to one port don't require * is usually a better place for this sort of thing.
* changes to c.h (and everyone recompiling their whole system).
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
...@@ -951,7 +583,6 @@ extern char *vararg_format(const char *fmt,...); ...@@ -951,7 +583,6 @@ extern char *vararg_format(const char *fmt,...);
#endif #endif
#if defined(sun) && defined(__sparc__) && !defined(__SVR4) #if defined(sun) && defined(__sparc__) && !defined(__SVR4)
#define memmove(d, s, l) bcopy(s, d, l)
#include <unistd.h> #include <unistd.h>
#include <varargs.h> #include <varargs.h>
#endif #endif
...@@ -989,8 +620,8 @@ extern int vsnprintf(char *str, size_t count, const char *fmt, va_list args); ...@@ -989,8 +620,8 @@ extern int vsnprintf(char *str, size_t count, const char *fmt, va_list args);
#endif #endif
#ifndef HAVE_MEMMOVE #if !defined(HAVE_MEMMOVE) && !defined(memmove)
#include <regex/utils.h> #define memmove(d, s, c) bcopy(s, d, c)
#endif #endif
/* ---------------- /* ----------------
......
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
#ifndef SPI_H #ifndef SPI_H
#define SPI_H #define SPI_H
/*
* This file may be used by client modules that haven't already
* included postgres.h
*/
#include "postgres.h" #include "postgres.h"
/* /*
......
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* *
* libpq-fs.h * libpq-fs.h
* definitions for using Inversion file system routines * definitions for using Inversion file system routines (ie, large objects)
* *
* *
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: libpq-fs.h,v 1.11 2001/01/24 19:43:25 momjian Exp $ * $Id: libpq-fs.h,v 1.12 2001/02/10 02:31:28 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#ifndef LIBPQ_FS_H #ifndef LIBPQ_FS_H
#define LIBPQ_FS_H #define LIBPQ_FS_H
/* UNIX compatibility junk. This should be in all systems' include files,
but this is not always the case. */
#ifndef MAXNAMLEN
#define MAXNAMLEN 255
#endif /* MAXNAMLEN */
struct pgdirent
{
unsigned long d_ino;
unsigned short d_namlen;
char d_name[MAXNAMLEN + 1];
};
/* for stat(2) */
#ifndef S_IRUSR
/* file modes */
#define S_IRWXU 00700 /* read, write, execute: owner */
#define S_IRUSR 00400 /* read permission: owner */
#define S_IWUSR 00200 /* write permission: owner */
#define S_IXUSR 00100 /* execute permission: owner */
#define S_IRWXG 00070 /* read, write, execute: group */
#define S_IRGRP 00040 /* read permission: group */
#define S_IWGRP 00020 /* write permission: group */
#define S_IXGRP 00010 /* execute permission: group */
#define S_IRWXO 00007 /* read, write, execute: other */
#define S_IROTH 00004 /* read permission: other */
#define S_IWOTH 00002 /* write permission: other */
#define S_IXOTH 00001 /* execute permission: other */
#define _S_IFMT 0170000 /* type of file; sync with S_IFMT */
#define _S_IFBLK 0060000 /* block special; sync with S_IFBLK */
#define _S_IFCHR 0020000 /* character special sync with S_IFCHR */
#define _S_IFDIR 0040000 /* directory; sync with S_IFDIR */
#define _S_IFIFO 0010000 /* FIFO - named pipe; sync with S_IFIFO */
#define _S_IFREG 0100000 /* regular; sync with S_IFREG */
#define S_IFDIR _S_IFDIR
#define S_IFREG _S_IFREG
#define S_ISDIR( mode ) (((mode) & _S_IFMT) == _S_IFDIR)
#endif /* S_IRUSR */
/* /*
* Inversion doesn't have links. * Read/write mode flags for inversion (large object) calls
*/
#ifndef S_ISLNK
#define S_ISLNK(x) 0
#endif
/*
* Flags for inversion file system large objects. Normally, creat()
* takes mode arguments, but we don't use them in inversion, since
* you get postgres protections. Instead, we use the low sixteen bits
* of the integer mode argument to store the number of the storage
* manager to be used, and the high sixteen bits for flags.
*/ */
#define INV_WRITE 0x00020000 #define INV_WRITE 0x00020000
#define INV_READ 0x00040000 #define INV_READ 0x00040000
/* Error values for p_errno */
#define PEPERM 1 /* Not owner */
#define PENOENT 2 /* No such file or directory */
#define PEACCES 13 /* Permission denied */
#define PEEXIST 17 /* File exists */
#define PENOTDIR 20 /* Not a directory */
#define PEISDIR 21 /* Is a directory */
#define PEINVAL 22 /* Invalid argument */
#define PENAMETOOLONG 63 /* File name too long */
#define PENOTEMPTY 66 /* Directory not empty */
#define PEPGIO 99 /* postgres backend had problems */
#endif /* LIBPQ_FS_H */ #endif /* LIBPQ_FS_H */
...@@ -9,18 +9,16 @@ ...@@ -9,18 +9,16 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pqcomm.h,v 1.53 2001/01/24 19:43:25 momjian Exp $ * $Id: pqcomm.h,v 1.54 2001/02/10 02:31:28 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#ifndef PQCOMM_H #ifndef PQCOMM_H
#define PQCOMM_H #define PQCOMM_H
#include "postgres.h"
#include <sys/types.h> #include <sys/types.h>
#ifdef WIN32 #ifdef WIN32
# include "winsock.h" # include <winsock.h>
#else /* not WIN32 */ #else /* not WIN32 */
# include <sys/socket.h> # include <sys/socket.h>
# ifdef HAVE_SYS_UN_H # ifdef HAVE_SYS_UN_H
......
/* $Id: pg_wchar.h,v 1.23 2000/11/14 18:37:48 tgl Exp $ */ /* $Id: pg_wchar.h,v 1.24 2001/02/10 02:31:28 tgl Exp $ */
#ifndef PG_WCHAR_H #ifndef PG_WCHAR_H
#define PG_WCHAR_H #define PG_WCHAR_H
#include "postgres.h"
#include <sys/types.h> #include <sys/types.h>
#ifdef FRONTEND #ifdef FRONTEND
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: miscadmin.h,v 1.80 2001/01/27 00:05:31 tgl Exp $ * $Id: miscadmin.h,v 1.81 2001/02/10 02:31:28 tgl Exp $
* *
* NOTES * NOTES
* some of the information in this file should be moved to * some of the information in this file should be moved to
...@@ -216,6 +216,8 @@ extern int FindExec(char *full_path, const char *argv0, ...@@ -216,6 +216,8 @@ extern int FindExec(char *full_path, const char *argv0,
extern int CheckPathAccess(char *path, char *name, int open_mode); extern int CheckPathAccess(char *path, char *name, int open_mode);
#ifdef CYR_RECODE #ifdef CYR_RECODE
extern void GetCharSetByHost(char *TableName, int host, const char *DataDir);
extern void SetCharSet(void);
extern char *convertstr(unsigned char *buff, int len, int dest); extern char *convertstr(unsigned char *buff, int len, int dest);
#endif #endif
......
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* *
* postgres.h * postgres.h
* definition of (and support for) postgres system types. * Primary include file for PostgreSQL server .c files
* this file is included by almost every .c in the system *
* This should be the first file included by PostgreSQL backend modules.
* Client-side code should include postgres_fe.h instead.
*
* *
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California * Portions Copyright (c) 1995, Regents of the University of California
* *
* $Id: postgres.h,v 1.45 2001/01/24 19:43:19 momjian Exp $ * $Id: postgres.h,v 1.46 2001/02/10 02:31:28 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
/* /*
* NOTES *----------------------------------------------------------------
* this file will eventually contain the definitions for the * TABLE OF CONTENTS
* following (and perhaps other) system types:
* *
* int2 int4 float4 float8 * When adding stuff to this file, please try to put stuff
* Oid regproc RegProcedure * into the relevant section, or add new sections as appropriate.
* aclitem
* struct varlena
* int2vector oidvector
* bytea text
* NameData Name
* *
* TABLE OF CONTENTS * section description
* 1) simple type definitions * ------- ------------------------------------------------
* 2) varlena and array types * 1) variable-length datatypes (TOAST support)
* 3) TransactionId and CommandId * 2) datum type + support macros
* 3) exception handling definitions
* 4) genbki macros used by catalog/pg_xxx.h files * 4) genbki macros used by catalog/pg_xxx.h files
* 5) random stuff
* *
* ---------------------------------------------------------------- * NOTES
*
* In general, this file should contain declarations that are widely needed in the
* backend environment, but are of no interest outside the backend.
*
* Simple type definitions live in c.h, where they are shared with postgres_fe.h.
* We do that since those type definitions are needed by frontend modules that want
* to deal with binary data transmission to or from the backend. Type definitions
* in this file should be for representations that never escape the backend, such
* as Datum or TOASTed varlena objects.
*
*----------------------------------------------------------------
*/ */
#ifndef POSTGRES_H #ifndef POSTGRES_H
#define POSTGRES_H #define POSTGRES_H
...@@ -42,59 +50,16 @@ ...@@ -42,59 +50,16 @@
#include "utils/palloc.h" #include "utils/palloc.h"
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 1: simple type definitions * Section 1: variable-length datatypes (TOAST support)
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
#define InvalidOid ((Oid) 0)
#define OidIsValid(objectId) ((bool) ((objectId) != InvalidOid))
/* unfortunately, both regproc and RegProcedure are used */
typedef Oid regproc;
typedef Oid RegProcedure;
#define RegProcedureIsValid(p) OidIsValid(p)
typedef int4 aclitem; /* PHONY definition for catalog use only */
/* ----------------------------------------------------------------
* Section 2: variable length and array types
* ----------------------------------------------------------------
*/
/* ---------------- /* ----------------
* struct varlena * struct varattrib is the header of a varlena object that may have been TOASTed.
* ---------------- * ----------------
*/ */
struct varlena
{
int32 vl_len;
char vl_dat[1];
};
#define TUPLE_TOASTER_ACTIVE #define TUPLE_TOASTER_ACTIVE
#ifndef TUPLE_TOASTER_ACTIVE
#define VARSIZE(PTR) (((struct varlena *)(PTR))->vl_len)
#define VARDATA(PTR) (((struct varlena *)(PTR))->vl_dat)
#endif
#define VARHDRSZ ((int32) sizeof(int32))
/*
* These widely-used datatypes are just a varlena header and the data bytes.
* There is no terminating null or anything like that --- the data length is
* always VARSIZE(ptr) - VARHDRSZ.
*/
typedef struct varlena bytea;
typedef struct varlena text;
typedef struct varlena BpChar; /* blank-padded char, ie SQL char(n) */
typedef struct varlena VarChar; /* var-length char, ie SQL varchar(n) */
/*
* Proposed new layout for variable length attributes
* DO NOT USE YET - Jan
*/
#ifdef TUPLE_TOASTER_ACTIVE
typedef struct varattrib typedef struct varattrib
{ {
int32 va_header; /* External/compressed storage */ int32 va_header; /* External/compressed storage */
...@@ -142,64 +107,466 @@ typedef struct varattrib ...@@ -142,64 +107,466 @@ typedef struct varattrib
#define VARATT_IS_COMPRESSED(PTR) \ #define VARATT_IS_COMPRESSED(PTR) \
((VARATT_SIZEP(PTR) & VARATT_FLAG_COMPRESSED) != 0) ((VARATT_SIZEP(PTR) & VARATT_FLAG_COMPRESSED) != 0)
/* ----------
* This is regularly declared in access/tuptoaster.h, /* ----------------------------------------------------------------
* but we don't want to include that into every source, * Section 2: datum type + support macros
* so we (evil evil evil) declare it here once more. * ----------------------------------------------------------------
* ---------- */
/*
* Port Notes:
* Postgres makes the following assumption about machines:
*
* sizeof(Datum) == sizeof(long) >= sizeof(void *) >= 4
*
* Postgres also assumes that
*
* sizeof(char) == 1
*
* and that
*
* sizeof(short) == 2
*
* If your machine meets these requirements, Datums should also be checked
* to see if the positioning is correct.
*/
typedef unsigned long Datum; /* XXX sizeof(long) >= sizeof(void *) */
typedef Datum *DatumPtr;
#define GET_1_BYTE(datum) (((Datum) (datum)) & 0x000000ff)
#define GET_2_BYTES(datum) (((Datum) (datum)) & 0x0000ffff)
#define GET_4_BYTES(datum) (((Datum) (datum)) & 0xffffffff)
#define SET_1_BYTE(value) (((Datum) (value)) & 0x000000ff)
#define SET_2_BYTES(value) (((Datum) (value)) & 0x0000ffff)
#define SET_4_BYTES(value) (((Datum) (value)) & 0xffffffff)
/*
* DatumGetBool
* Returns boolean value of a datum.
*
* Note: any nonzero value will be considered TRUE.
*/ */
extern varattrib *heap_tuple_untoast_attr(varattrib * attr);
#define VARATT_GETPLAIN(_ARG,_VAR) { \ #define DatumGetBool(X) ((bool) (((Datum) (X)) != 0))
if (VARATT_IS_EXTENDED(_ARG)) \
(_VAR) = (void *)heap_tuple_untoast_attr(_ARG); \ /*
else \ * BoolGetDatum
(_VAR) = (void *)(_ARG); \ * Returns datum representation for a boolean.
} *
#define VARATT_FREE(_ARG,_VAR) do { \ * Note: any nonzero value will be considered TRUE.
if ((void *)(_VAR) != (void *)(_ARG)) \ */
pfree((void *)(_VAR)); \
} while (0)
#else /* TUPLE_TOASTER_ACTIVE */
#define VARATT_SIZE(__PTR) VARSIZE(__PTR)
#define VARATT_SIZEP(__PTR) VARSIZE(__PTR)
#endif /* TUPLE_TOASTER_ACTIVE */
#define BoolGetDatum(X) ((Datum) ((X) ? 1 : 0))
/* fixed-length array types (these are not varlena's!) */ /*
* DatumGetChar
* Returns character value of a datum.
*/
typedef int2 int2vector[INDEX_MAX_KEYS]; #define DatumGetChar(X) ((char) GET_1_BYTE(X))
typedef Oid oidvector[INDEX_MAX_KEYS];
/* We want NameData to have length NAMEDATALEN and int alignment, /*
* because that's how the data type 'name' is defined in pg_type. * CharGetDatum
* Use a union to make sure the compiler agrees. * Returns datum representation for a character.
*/
#define CharGetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* Int8GetDatum
* Returns datum representation for an 8-bit integer.
*/
#define Int8GetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* DatumGetUInt8
* Returns 8-bit unsigned integer value of a datum.
*/
#define DatumGetUInt8(X) ((uint8) GET_1_BYTE(X))
/*
* UInt8GetDatum
* Returns datum representation for an 8-bit unsigned integer.
*/
#define UInt8GetDatum(X) ((Datum) SET_1_BYTE(X))
/*
* DatumGetInt16
* Returns 16-bit integer value of a datum.
*/
#define DatumGetInt16(X) ((int16) GET_2_BYTES(X))
/*
* Int16GetDatum
* Returns datum representation for a 16-bit integer.
*/
#define Int16GetDatum(X) ((Datum) SET_2_BYTES(X))
/*
* DatumGetUInt16
* Returns 16-bit unsigned integer value of a datum.
*/
#define DatumGetUInt16(X) ((uint16) GET_2_BYTES(X))
/*
* UInt16GetDatum
* Returns datum representation for a 16-bit unsigned integer.
*/
#define UInt16GetDatum(X) ((Datum) SET_2_BYTES(X))
/*
* DatumGetInt32
* Returns 32-bit integer value of a datum.
*/
#define DatumGetInt32(X) ((int32) GET_4_BYTES(X))
/*
* Int32GetDatum
* Returns datum representation for a 32-bit integer.
*/
#define Int32GetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetUInt32
* Returns 32-bit unsigned integer value of a datum.
*/
#define DatumGetUInt32(X) ((uint32) GET_4_BYTES(X))
/*
* UInt32GetDatum
* Returns datum representation for a 32-bit unsigned integer.
*/
#define UInt32GetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetObjectId
* Returns object identifier value of a datum.
*/
#define DatumGetObjectId(X) ((Oid) GET_4_BYTES(X))
/*
* ObjectIdGetDatum
* Returns datum representation for an object identifier.
*/
#define ObjectIdGetDatum(X) ((Datum) SET_4_BYTES(X))
/*
* DatumGetPointer
* Returns pointer value of a datum.
*/
#define DatumGetPointer(X) ((Pointer) (X))
/*
* PointerGetDatum
* Returns datum representation for a pointer.
*/ */
typedef union nameData
{
char data[NAMEDATALEN];
int alignmentDummy;
} NameData;
typedef NameData *Name;
#define NameStr(name) ((name).data) #define PointerGetDatum(X) ((Datum) (X))
/*
* DatumGetCString
* Returns C string (null-terminated string) value of a datum.
*
* Note: C string is not a full-fledged Postgres type at present,
* but type input functions use this conversion for their inputs.
*/
#define DatumGetCString(X) ((char *) DatumGetPointer(X))
/*
* CStringGetDatum
* Returns datum representation for a C string (null-terminated string).
*
* Note: C string is not a full-fledged Postgres type at present,
* but type output functions use this conversion for their outputs.
* Note: CString is pass-by-reference; caller must ensure the pointed-to
* value has adequate lifetime.
*/
#define CStringGetDatum(X) PointerGetDatum(X)
/*
* DatumGetName
* Returns name value of a datum.
*/
#define DatumGetName(X) ((Name) DatumGetPointer(X))
/*
* NameGetDatum
* Returns datum representation for a name.
*
* Note: Name is pass-by-reference; caller must ensure the pointed-to
* value has adequate lifetime.
*/
#define NameGetDatum(X) PointerGetDatum(X)
/*
* DatumGetInt64
* Returns 64-bit integer value of a datum.
*
* Note: this macro hides the fact that int64 is currently a
* pass-by-reference type. Someday it may be pass-by-value,
* at least on some platforms.
*/
#define DatumGetInt64(X) (* ((int64 *) DatumGetPointer(X)))
/*
* Int64GetDatum
* Returns datum representation for a 64-bit integer.
*
* Note: this routine returns a reference to palloc'd space.
*/
extern Datum Int64GetDatum(int64 X);
/*
* DatumGetFloat4
* Returns 4-byte floating point value of a datum.
*
* Note: this macro hides the fact that float4 is currently a
* pass-by-reference type. Someday it may be pass-by-value.
*/
#define DatumGetFloat4(X) (* ((float4 *) DatumGetPointer(X)))
/*
* Float4GetDatum
* Returns datum representation for a 4-byte floating point number.
*
* Note: this routine returns a reference to palloc'd space.
*/
extern Datum Float4GetDatum(float4 X);
/*
* DatumGetFloat8
* Returns 8-byte floating point value of a datum.
*
* Note: this macro hides the fact that float8 is currently a
* pass-by-reference type. Someday it may be pass-by-value,
* at least on some platforms.
*/
#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X)))
/*
* Float8GetDatum
* Returns datum representation for an 8-byte floating point number.
*
* Note: this routine returns a reference to palloc'd space.
*/
extern Datum Float8GetDatum(float8 X);
/*
* DatumGetFloat32
* Returns 32-bit floating point value of a datum.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of DatumGetFloat4.
* It will eventually go away.
*/
#define DatumGetFloat32(X) ((float32) DatumGetPointer(X))
/*
* Float32GetDatum
* Returns datum representation for a 32-bit floating point number.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of Float4GetDatum.
* It will eventually go away.
*/
#define Float32GetDatum(X) PointerGetDatum(X)
/*
* DatumGetFloat64
* Returns 64-bit floating point value of a datum.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of DatumGetFloat8.
* It will eventually go away.
*/
#define DatumGetFloat64(X) ((float64) DatumGetPointer(X))
/*
* Float64GetDatum
* Returns datum representation for a 64-bit floating point number.
* This is really a pointer, of course.
*
* XXX: this macro is now deprecated in favor of Float8GetDatum.
* It will eventually go away.
*/
#define Float64GetDatum(X) PointerGetDatum(X)
/*
* Int64GetDatumFast
* Float4GetDatumFast
* Float8GetDatumFast
*
* These macros are intended to allow writing code that does not depend on
* whether int64, float4, float8 are pass-by-reference types, while not
* sacrificing performance when they are. The argument must be a variable
* that will exist and have the same value for as long as the Datum is needed.
* In the pass-by-ref case, the address of the variable is taken to use as
* the Datum. In the pass-by-val case, these will be the same as the non-Fast
* macros.
*/
#define Int64GetDatumFast(X) PointerGetDatum(&(X))
#define Float4GetDatumFast(X) PointerGetDatum(&(X))
#define Float8GetDatumFast(X) PointerGetDatum(&(X))
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 3: TransactionId and CommandId * Section 3: exception handling definitions
* Assert, Trap, etc macros
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
typedef uint32 TransactionId; typedef char *ExcMessage;
typedef struct Exception
{
ExcMessage message;
} Exception;
extern Exception FailedAssertion;
extern Exception BadArg;
extern Exception BadState;
#define InvalidTransactionId 0 extern bool assert_enabled;
typedef uint32 CommandId; /*
* USE_ASSERT_CHECKING, if defined, turns on all the assertions.
* - plai 9/5/90
*
* It should _NOT_ be defined in releases or in benchmark copies
*/
#define FirstCommandId 0 /*
* Trap
* Generates an exception if the given condition is true.
*
*/
#define Trap(condition, exception) \
do { \
if ((assert_enabled) && (condition)) \
ExceptionalCondition(CppAsString(condition), &(exception), \
(char*)NULL, __FILE__, __LINE__); \
} while (0)
/*
* TrapMacro is the same as Trap but it's intended for use in macros:
*
* #define foo(x) (AssertM(x != 0) && bar(x))
*
* Isn't CPP fun?
*/
#define TrapMacro(condition, exception) \
((bool) ((! assert_enabled) || ! (condition) || \
(ExceptionalCondition(CppAsString(condition), \
&(exception), \
(char*) NULL, __FILE__, __LINE__))))
#ifndef USE_ASSERT_CHECKING
#define Assert(condition)
#define AssertMacro(condition) ((void)true)
#define AssertArg(condition)
#define AssertState(condition)
#define assert_enabled 0
#else
#define Assert(condition) \
Trap(!(condition), FailedAssertion)
#define AssertMacro(condition) \
((void) TrapMacro(!(condition), FailedAssertion))
#define AssertArg(condition) \
Trap(!(condition), BadArg)
#define AssertState(condition) \
Trap(!(condition), BadState)
#endif /* USE_ASSERT_CHECKING */
/*
* LogTrap
* Generates an exception with a message if the given condition is true.
*
*/
#define LogTrap(condition, exception, printArgs) \
do { \
if ((assert_enabled) && (condition)) \
ExceptionalCondition(CppAsString(condition), &(exception), \
vararg_format printArgs, __FILE__, __LINE__); \
} while (0)
/*
* LogTrapMacro is the same as LogTrap but it's intended for use in macros:
*
* #define foo(x) (LogAssertMacro(x != 0, "yow!") && bar(x))
*/
#define LogTrapMacro(condition, exception, printArgs) \
((bool) ((! assert_enabled) || ! (condition) || \
(ExceptionalCondition(CppAsString(condition), \
&(exception), \
vararg_format printArgs, __FILE__, __LINE__))))
extern int ExceptionalCondition(char *conditionName,
Exception *exceptionP, char *details,
char *fileName, int lineNumber);
extern char *vararg_format(const char *fmt, ...);
#ifndef USE_ASSERT_CHECKING
#define LogAssert(condition, printArgs)
#define LogAssertMacro(condition, printArgs) true
#define LogAssertArg(condition, printArgs)
#define LogAssertState(condition, printArgs)
#else
#define LogAssert(condition, printArgs) \
LogTrap(!(condition), FailedAssertion, printArgs)
#define LogAssertMacro(condition, printArgs) \
LogTrapMacro(!(condition), FailedAssertion, printArgs)
#define LogAssertArg(condition, printArgs) \
LogTrap(!(condition), BadArg, printArgs)
#define LogAssertState(condition, printArgs) \
LogTrap(!(condition), BadState, printArgs)
#ifdef ASSERT_CHECKING_TEST
extern int assertTest(int val);
#endif
#endif /* USE_ASSERT_CHECKING */
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 4: genbki macros used by the * Section 4: genbki macros used by catalog/pg_xxx.h files
* catalog/pg_xxx.h files
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
#define CATALOG(x) \ #define CATALOG(x) \
...@@ -217,35 +584,7 @@ typedef uint32 CommandId; ...@@ -217,35 +584,7 @@ typedef uint32 CommandId;
#define BKI_BEGIN #define BKI_BEGIN
#define BKI_END #define BKI_END
/* ---------------------------------------------------------------- typedef int4 aclitem; /* PHONY definition for catalog use only */
* Section 5: random stuff
* CSIGNBIT, STATUS...
* ----------------------------------------------------------------
*/
/* msb for int/unsigned */
#define ISIGNBIT (0x80000000)
#define WSIGNBIT (0x8000)
/* msb for char */
#define CSIGNBIT (0x80)
#define STATUS_OK (0)
#define STATUS_ERROR (-1)
#define STATUS_NOT_FOUND (-2)
#define STATUS_INVALID (-3)
#define STATUS_UNCATALOGUED (-4)
#define STATUS_REPLACED (-5)
#define STATUS_NOT_DONE (-6)
#define STATUS_BAD_PACKET (-7)
#define STATUS_FOUND (1)
/* ---------------
* Cyrillic on the fly charsets recode
* ---------------
*/
#ifdef CYR_RECODE
extern void SetCharSet(void);
#endif /* CYR_RECODE */
#endif /* POSTGRES_H */ #endif /* POSTGRES_H */
...@@ -2,10 +2,9 @@ ...@@ -2,10 +2,9 @@
* *
* postgres_ext.h * postgres_ext.h
* *
* This file contains declarations of things that are visible * This file contains declarations of things that are visible everywhere
* external to Postgres. For example, the Oid type is part of a * in PostgreSQL *and* are visible to clients of frontend interface libraries.
* structure that is passed to the front end via libpq, and is * For example, the Oid type is part of the API of libpq and other libraries.
* accordingly referenced in libpq-fe.h.
* *
* Declarations which are specific to a particular interface should * Declarations which are specific to a particular interface should
* go in the header file for that interface (such as libpq-fe.h). This * go in the header file for that interface (such as libpq-fe.h). This
...@@ -16,7 +15,7 @@ ...@@ -16,7 +15,7 @@
* use header files that are otherwise internal to Postgres to interface * use header files that are otherwise internal to Postgres to interface
* with the backend. * with the backend.
* *
* $Id: postgres_ext.h,v 1.5 2000/12/22 21:36:09 tgl Exp $ * $Id: postgres_ext.h,v 1.6 2001/02/10 02:31:28 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -29,6 +28,8 @@ ...@@ -29,6 +28,8 @@
*/ */
typedef unsigned int Oid; typedef unsigned int Oid;
#define InvalidOid ((Oid) 0)
#define OID_MAX UINT_MAX #define OID_MAX UINT_MAX
/* you will need to include <limits.h> to use the above #define */ /* you will need to include <limits.h> to use the above #define */
......
/*-------------------------------------------------------------------------
*
* postgres_fe.h
* Primary include file for PostgreSQL client-side .c files
*
* This should be the first file included by PostgreSQL client libraries and
* application programs --- but not by backend modules, which should include
* postgres.h.
*
*
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California
*
* $Id: postgres_fe.h,v 1.1 2001/02/10 02:31:28 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef POSTGRES_FE_H
#define POSTGRES_FE_H
#include "postgres_ext.h"
#include "c.h"
#endif /* POSTGRES_FE_H */
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#ifndef _REGEX_H_ #ifndef _REGEX_H_
#define _REGEX_H_ #define _REGEX_H_
#include "postgres.h"
#include <sys/types.h> #include <sys/types.h>
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
......
...@@ -37,9 +37,7 @@ ...@@ -37,9 +37,7 @@
* @(#)regex2.h 8.4 (Berkeley) 3/20/94 * @(#)regex2.h 8.4 (Berkeley) 3/20/94
*/ */
#include "postgres.h" #include <limits.h>
#include "limits.h"
/* /*
* First, the stuff that ends up in the outside-world include file * First, the stuff that ends up in the outside-world include file
......
...@@ -37,9 +37,7 @@ ...@@ -37,9 +37,7 @@
* @(#)utils.h 8.3 (Berkeley) 3/20/94 * @(#)utils.h 8.3 (Berkeley) 3/20/94
*/ */
#include "postgres.h" #include <limits.h>
#include "limits.h"
/* utility definitions */ /* utility definitions */
#define DUPMAX 100000000 /* xxx is this right? */ #define DUPMAX 100000000 /* xxx is this right? */
...@@ -50,6 +48,7 @@ ...@@ -50,6 +48,7 @@
#else #else
#define NC (CHAR_MAX - CHAR_MIN + 1) #define NC (CHAR_MAX - CHAR_MIN + 1)
#endif #endif
typedef unsigned char uch; typedef unsigned char uch;
/* switch off assertions (if not already off) if no REDEBUG */ /* switch off assertions (if not already off) if no REDEBUG */
...@@ -58,8 +57,3 @@ typedef unsigned char uch; ...@@ -58,8 +57,3 @@ typedef unsigned char uch;
#define NDEBUG /* no assertions please */ #define NDEBUG /* no assertions please */
#endif #endif
#endif #endif
/* for old systems with bcopy() but no memmove() */
#if !defined(HAVE_MEMMOVE) && !defined(memmove)
#define memmove(d, s, c) bcopy(s, d, c)
#endif
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: ipc.h,v 1.46 2001/01/24 19:43:27 momjian Exp $ * $Id: ipc.h,v 1.47 2001/02/10 02:31:28 tgl Exp $
* *
* Some files that would normally need to include only sys/ipc.h must * Some files that would normally need to include only sys/ipc.h must
* instead include this file because on Ultrix, sys/ipc.h is not designed * instead include this file because on Ultrix, sys/ipc.h is not designed
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
#ifndef IPC_H #ifndef IPC_H
#define IPC_H #define IPC_H
#include "config.h"
#include <sys/types.h> #include <sys/types.h>
#ifdef HAVE_SYS_IPC_H #ifdef HAVE_SYS_IPC_H
#include <sys/ipc.h> #include <sys/ipc.h>
......
...@@ -7,19 +7,13 @@ ...@@ -7,19 +7,13 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: dynamic_loader.h,v 1.16 2001/01/24 19:43:28 momjian Exp $ * $Id: dynamic_loader.h,v 1.17 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#ifndef DYNAMIC_LOADER_H #ifndef DYNAMIC_LOADER_H
#define DYNAMIC_LOADER_H #define DYNAMIC_LOADER_H
#include <sys/types.h>
/* we need this include because port files use them */
#include "postgres.h"
/* and this one for typedef PGFunction */
#include "fmgr.h" #include "fmgr.h"
......
...@@ -7,15 +7,13 @@ ...@@ -7,15 +7,13 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: exc.h,v 1.18 2001/01/24 19:43:28 momjian Exp $ * $Id: exc.h,v 1.19 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#ifndef EXC_H #ifndef EXC_H
#define EXC_H #define EXC_H
#include "config.h"
#include <setjmp.h> #include <setjmp.h>
extern char *ExcFileName; extern char *ExcFileName;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: geo_decls.h,v 1.32 2001/01/24 19:43:28 momjian Exp $ * $Id: geo_decls.h,v 1.33 2001/02/10 02:31:29 tgl Exp $
* *
* NOTE * NOTE
* These routines do *not* use the float types from adt/. * These routines do *not* use the float types from adt/.
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#ifndef GEO_DECLS_H #ifndef GEO_DECLS_H
#define GEO_DECLS_H #define GEO_DECLS_H
#include "access/attnum.h"
#include "fmgr.h" #include "fmgr.h"
/*-------------------------------------------------------------------- /*--------------------------------------------------------------------
......
...@@ -4,13 +4,11 @@ ...@@ -4,13 +4,11 @@
* External declarations pertaining to backend/utils/misc/guc.c and * External declarations pertaining to backend/utils/misc/guc.c and
* backend/utils/misc/guc-file.l * backend/utils/misc/guc-file.l
* *
* $Header: /cvsroot/pgsql/src/include/utils/guc.h,v 1.4 2000/07/27 19:49:24 momjian Exp $ * $Header: /cvsroot/pgsql/src/include/utils/guc.h,v 1.5 2001/02/10 02:31:29 tgl Exp $
*/ */
#ifndef GUC_H #ifndef GUC_H
#define GUC_H #define GUC_H
#include "postgres.h"
/* /*
* Certain options can only be set at certain times. The rules are * Certain options can only be set at certain times. The rules are
* like this: * like this:
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: palloc.h,v 1.14 2001/01/24 19:43:28 momjian Exp $ * $Id: palloc.h,v 1.15 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -64,24 +64,4 @@ extern char *MemoryContextStrdup(MemoryContext context, const char *string); ...@@ -64,24 +64,4 @@ extern char *MemoryContextStrdup(MemoryContext context, const char *string);
#define pstrdup(str) MemoryContextStrdup(CurrentMemoryContext, (str)) #define pstrdup(str) MemoryContextStrdup(CurrentMemoryContext, (str))
/* ----------------
* Alignment macros: align a length or address appropriately for a given type.
*
* There used to be some incredibly crufty platform-dependent hackery here,
* but now we rely on the configure script to get the info for us. Much nicer.
*
* NOTE: TYPEALIGN will not work if ALIGNVAL is not a power of 2.
* That case seems extremely unlikely to occur in practice, however.
* ----------------
*/
#define TYPEALIGN(ALIGNVAL,LEN) (((long)(LEN) + (ALIGNVAL-1)) & ~(ALIGNVAL-1))
#define SHORTALIGN(LEN) TYPEALIGN(ALIGNOF_SHORT, (LEN))
#define INTALIGN(LEN) TYPEALIGN(ALIGNOF_INT, (LEN))
#define LONGALIGN(LEN) TYPEALIGN(ALIGNOF_LONG, (LEN))
#define DOUBLEALIGN(LEN) TYPEALIGN(ALIGNOF_DOUBLE, (LEN))
#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN))
#endif /* PALLOC_H */ #endif /* PALLOC_H */
#include "postgres.h" #include "postgres_fe.h"
#include "libpq-fe.h" #include "libpq-fe.h"
/* Here are some methods used by the lib. */ /* Here are some methods used by the lib. */
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <ctype.h> #include <ctype.h>
#include "postgres.h"
#include "extern.h" #include "extern.h"
#include "preproc.h" #include "preproc.h"
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
* functions needed for descriptor handling * functions needed for descriptor handling
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "extern.h" #include "extern.h"
/* /*
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
/* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */ /* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */
/* Placed under the same copyright as PostgresSQL */ /* Placed under the same copyright as PostgresSQL */
#include "postgres_fe.h"
#include <unistd.h> #include <unistd.h>
#include "postgres.h"
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_H
#include "getopt.h" #include "getopt.h"
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <ctype.h> #include <ctype.h>
#include "postgres.h"
#include "extern.h" #include "extern.h"
#include "preproc.h" #include "preproc.h"
......
#include "parser/keywords.h"
#include "type.h" #include "type.h"
#include <errno.h> #include <errno.h>
/* defines */ /* defines */
...@@ -74,6 +74,7 @@ extern void reset_variables(void); ...@@ -74,6 +74,7 @@ extern void reset_variables(void);
extern void check_indicator(struct ECPGtype *); extern void check_indicator(struct ECPGtype *);
extern void remove_variables(int); extern void remove_variables(int);
extern struct variable *new_variable(const char *, struct ECPGtype *); extern struct variable *new_variable(const char *, struct ECPGtype *);
extern ScanKeyword *ScanKeywordLookup(char *text);
/* return codes */ /* return codes */
......
...@@ -8,18 +8,16 @@ ...@@ -8,18 +8,16 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.36 2001/01/24 19:43:29 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.37 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <ctype.h> #include <ctype.h>
#include "postgres.h" #include "extern.h"
#include "nodes/parsenodes.h"
#include "nodes/pg_list.h"
#include "type.h"
#include "preproc.h" #include "preproc.h"
#include "parser/keywords.h"
/* /*
* List of (keyword-name, keyword-token-value) pairs. * List of (keyword-name, keyword-token-value) pairs.
......
#include <stdarg.h> #include "postgres_fe.h"
#include "postgres.h"
#include "extern.h" #include "extern.h"
void void
......
...@@ -12,23 +12,19 @@ ...@@ -12,23 +12,19 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.75 2001/02/09 15:13:49 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.76 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <ctype.h> #include <ctype.h>
#include <sys/types.h> #include <sys/types.h>
#include <limits.h> #include <limits.h>
#include <errno.h> #include <errno.h>
#include "postgres.h"
#include "miscadmin.h"
#include "nodes/parsenodes.h"
#include "nodes/pg_list.h"
#include "parser/scansup.h"
#include "extern.h" #include "extern.h"
#include "preproc.h" #include "preproc.h"
#include "utils/builtins.h"
/* some versions of lex define this as a macro */ /* some versions of lex define this as a macro */
#if defined(yywrap) #if defined(yywrap)
......
/* Copyright comment */ /* Copyright comment */
%{ %{
#include <stdarg.h> #include "postgres_fe.h"
#include "postgres.h"
#include "access/htup.h"
#include "catalog/catname.h"
#include "utils/numeric.h"
#include "utils/memutils.h"
#include "storage/bufpage.h"
#include "extern.h" #include "extern.h"
...@@ -2976,10 +2969,6 @@ Geometric: PATH_P { $$ = make_str("path"); }; ...@@ -2976,10 +2969,6 @@ Geometric: PATH_P { $$ = make_str("path"); };
opt_float: '(' PosIntConst ')' opt_float: '(' PosIntConst ')'
{ {
if (atol($2) < 1)
mmerror(ET_ERROR, "precision for FLOAT must be at least 1");
else if (atol($2) >= 16)
mmerror(ET_ERROR, "precision for FLOAT must be less than 16");
$$ = cat_str(3, make_str("("), $2, make_str(")")); $$ = cat_str(3, make_str("("), $2, make_str(")"));
} }
| /*EMPTY*/ | /*EMPTY*/
...@@ -2990,22 +2979,10 @@ opt_float: '(' PosIntConst ')' ...@@ -2990,22 +2979,10 @@ opt_float: '(' PosIntConst ')'
opt_numeric: '(' PosIntConst ',' PosIntConst ')' opt_numeric: '(' PosIntConst ',' PosIntConst ')'
{ {
if (atol($2) < 1 || atol($2) > NUMERIC_MAX_PRECISION) {
sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", $2, NUMERIC_MAX_PRECISION);
mmerror(ET_ERROR, errortext);
}
if (atol($4) < 0 || atol($4) > atol($2)) {
sprintf(errortext, "NUMERIC scale %s must be between 0 and precision %s", $4, $2);
mmerror(ET_ERROR, errortext);
}
$$ = cat_str(5, make_str("("), $2, make_str(","), $4, make_str(")")); $$ = cat_str(5, make_str("("), $2, make_str(","), $4, make_str(")"));
} }
| '(' PosIntConst ')' | '(' PosIntConst ')'
{ {
if (atol($2) < 1 || atol($2) > NUMERIC_MAX_PRECISION) {
sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", $2, NUMERIC_MAX_PRECISION);
mmerror(ET_ERROR, errortext);
}
$$ = cat_str(3, make_str("("), $2, make_str(")")); $$ = cat_str(3, make_str("("), $2, make_str(")"));
} }
| /*EMPTY*/ | /*EMPTY*/
...@@ -3016,22 +2993,10 @@ opt_numeric: '(' PosIntConst ',' PosIntConst ')' ...@@ -3016,22 +2993,10 @@ opt_numeric: '(' PosIntConst ',' PosIntConst ')'
opt_decimal: '(' PosIntConst ',' PosIntConst ')' opt_decimal: '(' PosIntConst ',' PosIntConst ')'
{ {
if (atol($2) < 1 || atol($2) > NUMERIC_MAX_PRECISION) {
sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", $2, NUMERIC_MAX_PRECISION);
mmerror(ET_ERROR, errortext);
}
if (atol($4) < 0 || atol($4) > atol($2)) {
sprintf(errortext, "NUMERIC scale %s must be between 0 and precision %s", $4, $2);
mmerror(ET_ERROR, errortext);
}
$$ = cat_str(5, make_str("("), $2, make_str(","), $4, make_str(")")); $$ = cat_str(5, make_str("("), $2, make_str(","), $4, make_str(")"));
} }
| '(' PosIntConst ')' | '(' PosIntConst ')'
{ {
if (atol($2) < 1 || atol($2) > NUMERIC_MAX_PRECISION) {
sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", $2, NUMERIC_MAX_PRECISION);
mmerror(ET_ERROR, errortext);
}
$$ = cat_str(3, make_str("("), $2, make_str(")")); $$ = cat_str(3, make_str("("), $2, make_str(")"));
} }
| /*EMPTY*/ | /*EMPTY*/
...@@ -3045,23 +3010,12 @@ opt_decimal: '(' PosIntConst ',' PosIntConst ')' ...@@ -3045,23 +3010,12 @@ opt_decimal: '(' PosIntConst ',' PosIntConst ')'
* The following implements BIT() and BIT VARYING(). * The following implements BIT() and BIT VARYING().
*/ */
Bit: bit '(' PosIntConst ')' Bit: bit '(' PosIntConst ')'
{ {
$$ = cat_str(4, $1, make_str("("), $3, make_str(")")); $$ = cat_str(4, $1, make_str("("), $3, make_str(")"));
if (atol($3) < 1) }
{
sprintf(errortext,"length for type '%s' must be at least 1",$1);
mmerror(ET_ERROR, errortext);
}
else if (atol($3) > (MaxAttrSize * BITS_PER_BYTE))
{
sprintf(errortext, "length for type '%s' cannot exceed %d", $1,
(MaxAttrSize * BITS_PER_BYTE));
mmerror(ET_ERROR, errortext);
}
}
| bit | bit
{ {
$$ = $1; $$ = $1;
} }
; ;
...@@ -3077,17 +3031,6 @@ bit: BIT opt_varying ...@@ -3077,17 +3031,6 @@ bit: BIT opt_varying
*/ */
Character: character '(' PosIntConst ')' Character: character '(' PosIntConst ')'
{ {
if (atol($3) < 1)
{
sprintf(errortext, "length for type '%s' type must be at least 1",$1);
mmerror(ET_ERROR, errortext);
}
else if (atol($3) > MaxAttrSize)
{
sprintf(errortext, "length for type '%s' cannot exceed %d", $1, MaxAttrSize);
mmerror(ET_ERROR, errortext);
}
$$ = cat_str(4, $1, make_str("("), $3, make_str(")")); $$ = cat_str(4, $1, make_str("("), $3, make_str(")"));
} }
| character | character
...@@ -3730,14 +3673,7 @@ relation_name: SpecialRuleRelation ...@@ -3730,14 +3673,7 @@ relation_name: SpecialRuleRelation
} }
| ColId | ColId
{ {
/* disallow refs to variable system tables */ $$ = $1;
if (strcmp(LogRelationName, $1) == 0
|| strcmp(VariableRelationName, $1) == 0) {
sprintf(errortext, make_str("%s cannot be accessed by users"),$1);
mmerror(ET_ERROR, errortext);
}
else
$$ = $1;
} }
; ;
......
#include <stdio.h> #include "postgres_fe.h"
#include <string.h>
#include <stdlib.h>
#include "postgres.h"
#include "extern.h" #include "extern.h"
/* malloc + error check */ /* malloc + error check */
......
...@@ -163,3 +163,9 @@ struct fetch_desc ...@@ -163,3 +163,9 @@ struct fetch_desc
char *str; char *str;
char *name; char *name;
}; };
typedef struct ScanKeyword
{
char *name;
int value;
} ScanKeyword;
#include "postgres.h" #include "postgres_fe.h"
#include "extern.h" #include "extern.h"
......
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtcl.c,v 1.19 2001/01/24 19:43:29 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtcl.c,v 1.20 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "libpgtcl.h" #include "libpgtcl.h"
#include "pgtclCmds.h" #include "pgtclCmds.h"
#include "pgtclId.h" #include "pgtclId.h"
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.53 2001/01/24 19:43:29 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.54 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <ctype.h> #include <ctype.h>
#include "postgres.h"
#include "pgtclCmds.h" #include "pgtclCmds.h"
#include "pgtclId.h" #include "pgtclId.h"
#include "libpq/libpq-fs.h" /* large-object interface */ #include "libpq/libpq-fs.h" /* large-object interface */
......
...@@ -13,14 +13,14 @@ ...@@ -13,14 +13,14 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.24 2001/01/24 19:43:29 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.25 2001/02/10 02:31:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <errno.h> #include <errno.h>
#include "postgres.h"
#include "pgtclCmds.h" #include "pgtclCmds.h"
#include "pgtclId.h" #include "pgtclId.h"
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pgconnection.h,v 1.9 2001/01/24 19:43:32 momjian Exp $ * $Id: pgconnection.h,v 1.10 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -38,7 +38,7 @@ extern "C" { ...@@ -38,7 +38,7 @@ extern "C" {
#endif #endif
extern "C" { extern "C" {
#include "postgres.h" #include "postgres_fe.h"
#include "libpq-fe.h" #include "libpq-fe.h"
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes). * exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.45 2001/01/24 19:43:29 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.46 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -28,9 +28,8 @@ ...@@ -28,9 +28,8 @@
* *
*/ */
#ifndef WIN32 #include "postgres_fe.h"
#include "postgres.h"
#endif
#include "libpq-fe.h" #include "libpq-fe.h"
#include "libpq-int.h" #include "libpq-int.h"
#include "fe-auth.h" #include "fe-auth.h"
......
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.159 2001/01/24 19:43:30 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.160 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include <sys/types.h> #include <sys/types.h>
#include <fcntl.h> #include <fcntl.h>
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
#endif #endif
#ifdef MULTIBYTE #ifdef MULTIBYTE
#include "miscadmin.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#endif #endif
......
...@@ -8,15 +8,16 @@ ...@@ -8,15 +8,16 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.100 2001/02/06 02:02:27 tgl Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.101 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <errno.h> #include <errno.h>
#include <ctype.h> #include <ctype.h>
#include <fcntl.h> #include <fcntl.h>
#include "postgres.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#include "libpq-int.h" #include "libpq-int.h"
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.32 2001/01/24 19:43:30 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.33 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres_fe.h"
#include <fcntl.h> #include <fcntl.h>
#include <sys/stat.h> #include <sys/stat.h>
#include "postgres.h"
#include "libpq-fe.h" #include "libpq-fe.h"
#include "libpq-int.h" #include "libpq-int.h"
......
...@@ -25,12 +25,12 @@ ...@@ -25,12 +25,12 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.43 2001/01/24 19:43:30 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.44 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#ifdef WIN32 #ifdef WIN32
#include "win32.h" #include "win32.h"
...@@ -52,7 +52,6 @@ ...@@ -52,7 +52,6 @@
#include "pqsignal.h" #include "pqsignal.h"
#ifdef MULTIBYTE #ifdef MULTIBYTE
#include "miscadmin.h"
#include "mb/pg_wchar.h" #include "mb/pg_wchar.h"
#endif #endif
......
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
* didn't really belong there. * didn't really belong there.
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.40 2001/01/24 19:43:31 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.41 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include <signal.h> #include <signal.h>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: libpq-int.h,v 1.31 2001/01/24 19:43:31 momjian Exp $ * $Id: libpq-int.h,v 1.32 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#define LIBPQ_INT_H #define LIBPQ_INT_H
/* We assume libpq-fe.h has already been included. */ /* We assume libpq-fe.h has already been included. */
#include "postgres_fe.h"
/* include stuff common to fe and be */ /* include stuff common to fe and be */
#include "libpq/pqcomm.h" #include "libpq/pqcomm.h"
......
...@@ -17,17 +17,16 @@ ...@@ -17,17 +17,16 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.8 2001/01/24 19:43:31 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.9 2001/02/10 02:31:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
#include "postgres.h" #include "postgres_fe.h"
#include "pqexpbuffer.h" #include "pqexpbuffer.h"
#ifdef WIN32 #ifdef WIN32
#include <stdarg.h>
#include <stdio.h>
#include "win32.h" #include "win32.h"
#endif #endif
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pqsignal.h,v 1.9 2001/01/24 19:43:31 momjian Exp $ * $Id: pqsignal.h,v 1.10 2001/02/10 02:31:30 tgl Exp $
* *
* NOTES * NOTES
* This shouldn't be in libpq, but the monitor and some other * This shouldn't be in libpq, but the monitor and some other
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#ifndef PQSIGNAL_H #ifndef PQSIGNAL_H
#define PQSIGNAL_H #define PQSIGNAL_H
#include "postgres.h" #include "postgres_fe.h"
typedef void (*pqsigfunc) (int); typedef void (*pqsigfunc) (int);
......
/* /*
* $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.45 2000/11/20 20:36:53 tgl Exp $ * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.46 2001/02/10 02:31:30 tgl Exp $
*/ */
#include <float.h> /* faked on sunos */
#include "postgres.h" #include "postgres.h"
#include <float.h> /* faked on sunos */
#include "utils/geo_decls.h" /* includes <math.h> */ #include "utils/geo_decls.h" /* includes <math.h> */
#include "executor/executor.h" /* For GetAttributeByName */ #include "executor/executor.h" /* For GetAttributeByName */
#include "commands/sequence.h" /* for nextval() */ #include "commands/sequence.h" /* for nextval() */
......
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
See funcs_new.c for examples of "new style". See funcs_new.c for examples of "new style".
*****************************************************************************/ *****************************************************************************/
#include <string.h>
#include "postgres.h" /* general Postgres declarations */ #include "postgres.h" /* general Postgres declarations */
#include "executor/executor.h" /* for GetAttributeByName() */ #include "executor/executor.h" /* for GetAttributeByName() */
......
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
See funcs.c for examples of "old style". See funcs.c for examples of "old style".
*****************************************************************************/ *****************************************************************************/
#include <string.h>
#include "postgres.h" /* general Postgres declarations */ #include "postgres.h" /* general Postgres declarations */
#include "fmgr.h" /* for argument/result macros */ #include "fmgr.h" /* for argument/result macros */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment