#
# 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 =
$(MAKE) -C doc $@
$(MAKE) -C src $@
+install-all-headers:
+ $(MAKE) -C src $@
+
# clean, distclean, etc should apply to contrib too, even though
# it's not built by default
clean:
# 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 \
echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \
-/*#include "postgres.h"*/
-
typedef struct NDBOX {
unsigned int size; /* required to be a Postgres varlena type */
unsigned int dim;
+#include "postgres.h"
+
#include <math.h>
-#include <stdio.h>
-#include <string.h>
-#include <postgres.h>
-#include <utils/geo_decls.h> /* for Pt */
-#include <utils/palloc.h> /* for palloc */
+#include "utils/geo_decls.h" /* for Pt */
+
/* Earth's radius is in statute miles. */
const int EARTH_RADIUS = 3958.747716;
#include "postgres.h"
+
+#include <ctype.h>
+
#include "executor/spi.h"
#include "commands/trigger.h"
-#include <ctype.h>
-#include <stdio.h> /* debugging */
/*
* Trigger function takes 2 arguments:
format for these routines is dictated by Postgres architecture.
******************************************************************************/
-#include <stdio.h>
+#include "postgres.h"
+
#include <float.h>
#include <string.h>
-#include "postgres.h"
#include "access/gist.h"
#include "access/itup.h"
#include "access/rtree.h"
/*
* 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.
/*
* 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 <stdio.h>
-
-#include "utils/palloc.h"
-
/* Required for largeobjects */
#include "libpq/libpq-fs.h"
#include "libpq/be-fsstubs.h"
/* -------------------------------------------------------------------------
* 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
* -------------------------------------------------------------------------
*/
+/* 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 <unistd.h>
#include <stdlib.h>
#include <string.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/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
* written by Tatsuo Ishii
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*/
+#include "postgres_fe.h"
-#include "config.h"
-
-#include <stdio.h>
-#include "postgres.h"
#include "libpq-fe.h"
#include <errno.h>
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* 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 <fmgr.h>
+#include "postgres.h"
+
+#include "fmgr.h"
#include "encode.h"
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* 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"
* It is possible that this works with other SHA1/MD5
* 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 <md5.h>
-#include <sha.h>
+#include "md5.h"
+#include "sha.h"
#ifndef MD5_DIGEST_LENGTH
#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 $ */
/*
* SUCH DAMAGE.
*/
-#include <postgres.h>
+#include "postgres.h"
#include "md5.h"
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* 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 <mhash.h>
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* 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 <evp.h>
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* 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 <utils/builtins.h>
+#include "postgres.h"
+
+#include "utils/builtins.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 $ */
/*
* implemented by Jun-ichiro itojun Itoh <itojun@itojun.org>
*/
-#include <postgres.h>
+#include "postgres.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 <ctype.h>
+
#include "fmgr.h"
#include "utils/builtins.h"
-#include <ctype.h>
-#include <string.h>
-#include <stdio.h>
Datum text_soundex(PG_FUNCTION_ARGS);
* either version 2, or (at your option) any later version.
*/
+#include "postgres.h"
+
#include <ctype.h>
-#include <string.h>
-#include "postgres.h"
-#include "utils/elog.h"
-#include "utils/palloc.h"
#include "utils/builtins.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">
<title><![%flattext-install-include[<productname>PostgreSQL</>]]> Installation Instructions</title>
them, but how to do that is left as an exercise.
</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>
<title>Client-only installation</title>
<para>
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>
<userinput>gmake -C src/bin install</>
<userinput>gmake -C src/interfaces install</>
#
# 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 $
#
#-------------------------------------------------------------------------
$(MAKE) -C bin $@
$(MAKE) -C pl $@
+install-all-headers:
+ $(MAKE) -C include $@
+
clean:
$(MAKE) -C backend $@
$(MAKE) -C include $@
# 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 \
echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \
*
*
* 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"
-#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...
- */
+/* can be used in frontend or backend */
#ifdef FRONTEND
-#undef Assert
+#include "postgres_fe.h"
+/* No assert checks in frontend ... */
#define Assert(condition)
+#else
+#include "postgres.h"
#endif
+#include "lib/dllist.h"
+
Dllist *
DLNewList(void)
* wherein you authenticate a user by seeing what IP address the system
* 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 $
*
*-------------------------------------------------------------------------
*/
char Table[MAX_TOKEN];
};
-int
+static bool
InRange(char *buf, int host)
{
int valid,
*
*
* 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
* This shouldn't be in libpq, but the monitor and some other
* is to do signal-handler reinstallation, which doesn't work well
* at all.
* ------------------------------------------------------------------------*/
-#include <signal.h>
-
#include "postgres.h"
+#include <signal.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
* This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
#endif /* HAVE_DLOPEN */
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
#define pg_dlopen(f) dlopen(f, RTLD_LAZY)
*
*
* 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 "utils/dynamic_loader.h"
-#include "utils/elog.h"
void *
elog(NOTICE, "error while unloading add-on");
free(handle);
}
-}
\ No newline at end of file
+}
#ifndef PORT_PROTOS_H
#define PORT_PROTOS_H
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/*
#include <stdio.h>
#include <stdlib.h>
+#include "postgres.h"
#include "dynloader.h"
static char error_message[BUFSIZ];
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#include <nlist.h>
#include <link.h>
-#include "postgres.h"
-
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
*
*
* 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
* all functions are defined here -- it's impossible to trace the
#include "dl.h"
#include "dynloader.h"
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
void *
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
#define PORT_PROTOS_H
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
#ifdef __ELF__
#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>
+#include "postgres.h"
#include "dynloader.h"
static char error_message[BUFSIZ];
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#include <nlist.h>
#include "link.h"
-#include "postgres.h"
-
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
#ifndef PORT_PROTOS_H
#define PORT_PROTOS_H
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
void *next_dlopen(char *name);
#include <stdio.h>
#include <stdlib.h>
+#include "postgres.h"
#include "dynloader.h"
static char error_message[BUFSIZ];
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#include <nlist.h>
#include "link.h"
-#include "postgres.h"
-
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
*
*
* 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
*
#include <dl.h>
*/
#include "postgres.h"
-#include "fmgr.h"
+
#include "utils/dynamic_loader.h"
#include "dynloader.h"
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* 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
#define DYNLOADER_SOLARIS_H
-#include "config.h"
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
#define pg_dlopen(f) dlopen(f,1)
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#define DYNLOADER_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.h */
*
* dynloader.c
* 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) 1994, Regents of the University of California
*
*
* 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 "dl.h"
-#include "fmgr.h"
-#include "port-protos.h"
#include "utils/dynamic_loader.h"
extern char pg_pathname[];
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
#define PORT_PROTOS_H
#include <dlfcn.h>
-#include "fmgr.h"
#include "utils/dynamic_loader.h"
/* dynloader.c */
* SUCH DAMAGE.
*/
+/* might be in either frontend or backend */
+#include "postgres_fe.h"
+
#include <sys/ioctl.h>
#include <sys/param.h>
-#include "postgres.h"
-
/*
* We do all internal arithmetic in the widest available integer type,
* 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 int SnprfOverflow;
*
*
* 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
*
#endif
-#ifdef CYR_RECODE
-extern void GetCharSetByHost(char *, int, char *);
-
-#endif
-
static void
checkDataDir(const char *checkdir)
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
#include "access/genam.h"
#include "access/heapam.h"
-#include "access/nbtree.h"
#include "access/htup.h"
+#include "access/nbtree.h"
+#include "access/tuptoaster.h"
#include "catalog/catalog.h"
#include "catalog/catname.h"
#include "catalog/heap.h"
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
#include "access/hash.h"
#include "catalog/pg_type.h"
+#include "miscadmin.h"
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
*
*
* 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 <ctype.h>
+
#include "mb/pg_wchar.h"
+#include "miscadmin.h"
#include "utils/builtins.h"
static int text_cmp(text *arg1, text *arg2);
*
*
* 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 "access/tuptoaster.h"
#include "catalog/pg_language.h"
#include "catalog/pg_proc.h"
#include "executor/functions.h"
*
* 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>
+
+
main()
{
int i;
*
* 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"
typedef struct
* This file contains some public functions
* usable for both the backend and the frontend.
* Tatsuo Ishii
- * $Id: common.c,v 1.10 2000/10/30 10:40:28 ishii Exp $ */
-
-#include <stdlib.h>
-#include <string.h>
+ * $Id: common.c,v 1.11 2001/02/10 02:31:27 tgl Exp $
+ */
+#include "postgres.h"
#ifdef WIN32
#include "win32.h"
#include <unistd.h>
#endif
-#include "postgres.h"
-
#include "miscadmin.h"
#include "mb/pg_wchar.h"
#include "utils/builtins.h"
* WIN1250 client encoding support contributed by Pavel Behal
* 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 $
*
*
*/
-
-#include <stdio.h>
-#include <string.h>
+/* can be used in either frontend or backend */
+#include "postgres_fe.h"
#include "mb/pg_wchar.h"
*
* 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>
+
+
main()
{
int i;
-#include <stdio.h>
-#include <string.h>
+#include "postgres_fe.h"
+
+#include <ctype.h>
#include "mb/pg_wchar.h"
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* 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 "miscadmin.h"
/*
* conversion functions between pg_wchar and multi-byte streams.
* 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
*
*/
+/* can be used in either frontend or backend */
+#include "postgres_fe.h"
#include "mb/pg_wchar.h"
*
* 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>
+
+
main()
{
int i;
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+/* can be used in either frontend or backend */
+#include "postgres_fe.h"
#include "mb/pg_wchar.h"
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+/* can be used in either frontend or backend */
+#include "postgres_fe.h"
#include "mb/pg_wchar.h"
*
*
* 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
*
*-------------------------------------------------------------------------
*/
+#include "pg_dump.h"
#include <ctype.h>
-#include "postgres.h"
-
#include "libpq-fe.h"
#ifndef HAVE_STRDUP
#include "strdup.h"
#endif
-#include "pg_dump.h"
-
static char **findParentsByOid(TableInfo *tbinfo, int numTables,
InhInfo *inhinfo, int numInherits,
const char *oid,
*/
#ifndef PG_BACKUP__
-
-#include "config.h"
-#include "c.h"
-
#define PG_BACKUP__
-#include "postgres.h"
+#include "postgres_fe.h"
+
#include "libpq-fe.h"
typedef enum _archiveFormat {
#ifndef __PG_BACKUP_ARCHIVE__
#define __PG_BACKUP_ARCHIVE__
-#include <stdio.h>
+#include "postgres_fe.h"
+
#include <time.h>
-#include "postgres.h"
#include "pqexpbuffer.h"
#ifdef HAVE_LIBZ
*-------------------------------------------------------------------------
*/
-#include <stdlib.h>
#include "pg_backup.h"
#include "pg_backup_archiver.h"
+
+#include <stdlib.h>
#include <errno.h>
/*--------
*-------------------------------------------------------------------------
*/
+#include "pg_dump.h"
+#include "pg_backup.h"
+#include "pg_backup_archiver.h"
+#include "pg_backup_db.h"
+
#include <unistd.h> /* for getopt() */
#include <ctype.h>
-#include "postgres.h"
-
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#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/libpq-fs.h>
+#include "libpq/libpq-fs.h"
#ifndef HAVE_STRDUP
#include "strdup.h"
#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 void _prompt_for_password(char *username, char *password);
*-------------------------------------------------------------------------
*/
-#include <stdlib.h>
-#include <string.h>
#include "pg_backup.h"
#include "pg_backup_archiver.h"
+#include <stdlib.h>
+#include <string.h>
+
static void _ArchiveEntry(ArchiveHandle* AH, TocEntry* te);
static void _StartData(ArchiveHandle* AH, TocEntry* te);
static int _WriteData(ArchiveHandle* AH, const void* data, int dLen);
*-------------------------------------------------------------------------
*/
+#include "pg_backup.h"
+#include "pg_backup_archiver.h"
+
#include <stdlib.h>
#include <string.h>
#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 void _EndData(ArchiveHandle* AH, TocEntry* te);
*-------------------------------------------------------------------------
*/
+#include "pg_backup.h"
+#include "pg_backup_archiver.h"
+#include "pg_backup_tar.h"
+
#include <stdlib.h>
#include <string.h>
#include <ctype.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 _StartData(ArchiveHandle* AH, TocEntry* te);
*
*
* 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
*
*-------------------------------------------------------------------------
*/
+/*
+ * 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 <ctype.h>
#include "pg_backup.h"
-#include "postgres.h"
-
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif
#include "access/attnum.h"
#include "access/htup.h"
-#include "catalog/pg_index.h"
-#include "catalog/pg_language.h"
+#include "catalog/pg_class.h"
#include "catalog/pg_trigger.h"
#include "catalog/pg_type.h"
#include "libpq-fe.h"
-#include <libpq/libpq-fs.h>
+#include "libpq/libpq-fs.h"
#ifndef HAVE_STRDUP
#include "strdup.h"
#endif
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
*
#ifndef PG_DUMP_H
#define PG_DUMP_H
-#include "pqexpbuffer.h"
-#include "catalog/pg_index.h"
#include "pg_backup.h"
+#include "pqexpbuffer.h"
/* The data structures used to store system catalog information */
*-------------------------------------------------------------------------
*/
+#include "pg_backup.h"
+
#include <stdlib.h>
#include <stdio.h>
#include <string.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
#include "strdup.h"
#endif
*
* 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
#include <getopt.h>
/*
* @(#) pg_passwd.c 1.8 09:13:16 97/07/02 Y. Ichikawa
*/
-#include "postgres.h"
+#include "postgres_fe.h"
+
#include <unistd.h>
#include <errno.h>
#include <time.h>
*
* 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 <errno.h>
#include "variables.h"
#ifdef MULTIBYTE
-#include "miscadmin.h"
#include "mb/pg_wchar.h"
#else
/* Grand unified hard-coded badness */
*
* 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 <errno.h>
#endif
#include "libpq-fe.h"
-#include "postgres_ext.h"
#include "pqsignal.h"
#include "settings.h"
*
* 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
#define COMMON_H
-#include "postgres.h"
+#include "postgres_fe.h"
#include <signal.h>
#include "pqsignal.h"
#include "libpq-fe.h"
*
* 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 <errno.h>
*
* 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 "libpq-fe.h"
*
* 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 <signal.h>
*
* 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 <errno.h>
*
* 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 "libpq-fe.h"
*
* 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 "pqexpbuffer.h"
*
* 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
#define MAINLOOP_H
-#include "postgres.h"
+#include "postgres_fe.h"
#include <stdio.h>
#ifndef WIN32
#include <setjmp.h>
*
* 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 <math.h>
*
* 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 "libpq-fe.h"
*
* 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 "variables.h"
#ifdef MULTIBYTE
-#include "miscadmin.h"
#include "mb/pg_wchar.h"
#else
/* XXX Grand unified hard-coded badness; this should go into libpq */
*
* 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 <ctype.h>
*
* 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 $
*/
/*----------------------------------------------------------------------
*----------------------------------------------------------------------
*/
-#include "postgres.h"
+#include "postgres_fe.h"
#include "tab-complete.h"
#include "input.h"
*
* 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
#define TAB_COMPLETE_H
-#include "postgres.h"
+#include "postgres_fe.h"
void initialize_readline(void);
*
* 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 <assert.h>
#
# Makefile for src/include
#
-# Install exported headers to the include directory (these headers are
-# the minimal ones needed to build loadable backend extensions).
+# 'make install' installs only those headers needed for client-side
+# 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 $
#
#-------------------------------------------------------------------------
top_builddir = ../..
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 \
- 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
+builddir_headers := os.h config.h
HEADERS = $(srcdir_headers) $(builddir_headers)
-
-all: $(HEADERS)
+# Subdirectories containing headers that install-all-headers should install
+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
-# 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 .
+all: $(HEADERS)
-# 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
for file in $(srcdir_headers); do \
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/$$file || exit; \
done
-# Automatically pick out the needed subdirectories for the include
-# tree.
+# Automatically pick out the needed subdirectories for the include tree.
installdirs:
$(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:
- rm -f $(addprefix $(DESTDIR)$(includedir)/, $(HEADERS))
+ rm -rf $(addprefix $(DESTDIR)$(includedir)/, $(HEADERS) $(SUBDIRS))
clean:
rm -f utils/fmgroids.h parser/parse.h
*
* c.h
* 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) 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
*
* When adding stuff to this file, please try to put stuff
*
* section description
* ------- ------------------------------------------------
- * 1) bool, true, false, TRUE, FALSE, NULL
- * 2) non-ansi C definitions:
- * type prefixes: const, signed, volatile, inline
- * cpp magic macros
+ * 0) config.h and standard system headers
+ * 1) hacks to cope with non-ANSI C compilers
+ * 2) bool, true, false, TRUE, FALSE, NULL
* 3) standard system types
- * 4) datum type
- * 5) IsValid macros for system types
- * 6) offsetof, lengthof, endof
- * 7) exception handling definitions, Assert, Trap, etc macros
- * 8) Min, Max, Abs, StrNCpy macros
- * 9) externs
- * 10) Berkeley-specific defs
- * 11) system-specific hacks
+ * 4) IsValid macros for system types
+ * 5) offsetof, lengthof, endof, alignment
+ * 6) widely useful macros
+ * 7) random stuff
+ * 8) 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
#define C_H
#include <SupportDefs.h>
#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
- * cpp magic macros
+ * type prefixes (const, signed, volatile, inline) are now handled in config.h.
* ----------------------------------------------------------------
*/
#define dummyret char
#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
* ----------------------------------------------------------------
typedef signed short int16; /* == 16 bits */
typedef signed int int32; /* == 32 bits */
#endif /* __BEOS__ */
+
/*
* uintN
* Unsigned integer, EXACTLY N BITS IN SIZE,
typedef unsigned short uint16; /* == 16 bits */
typedef unsigned int uint32; /* == 32 bits */
#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
typedef uint32 word32; /* >= 32 bits */
/*
- * Size
- * Size of any memory resident object, as returned by sizeof.
- */
-typedef size_t Size;
-
-/*
- * Index
- * Index into any memory resident array.
+ * floatN
+ * Floating point number, AT LEAST N BITS IN SIZE,
+ * used for numerical computations.
*
- * Note:
- * Indices are non negative.
- */
-typedef unsigned int Index;
-
-#define MAXDIM 6
-typedef struct
-{
- int indx[MAXDIM];
-} IntArray;
-
-/*
- * Offset
- * Offset into any memory resident array.
+ * Since sizeof(floatN) may be > sizeof(char *), always pass
+ * floatN by reference.
*
- * Note:
- * This differs from an Index in that an Index is always
- * non negative, whereas Offset may be negative.
+ * XXX: these typedefs are now deprecated in favor of float4 and float8.
+ * They will eventually go away.
*/
-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 */
#ifdef HAVE_LONG_INT_64
/* Plain "long int" fits, use it */
#endif
#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
- * 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.
- */
-
-#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.
+ * Size
+ * Size of any memory resident object, as returned by sizeof.
*/
-
-#define NameGetDatum(X) PointerGetDatum(X)
+typedef size_t Size;
/*
- * DatumGetInt64
- * Returns 64-bit integer value of a datum.
+ * Index
+ * Index into any memory resident array.
*
- * 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.
+ * Note:
+ * Indices are non negative.
*/
-
-#define DatumGetInt64(X) (* ((int64 *) DatumGetPointer(X)))
+typedef unsigned int Index;
/*
- * Int64GetDatum
- * Returns datum representation for a 64-bit integer.
+ * Offset
+ * 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.
*/
-
-extern Datum Int64GetDatum(int64 X);
+typedef signed int Offset;
/*
- * 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.
+ * Common Postgres datatype names (as used in the catalogs)
*/
-
-#define DatumGetFloat4(X) (* ((float4 *) DatumGetPointer(X)))
+typedef int16 int2;
+typedef int32 int4;
+typedef float float4;
+typedef double float8;
/*
- * Float4GetDatum
- * Returns datum representation for a 4-byte floating point number.
- *
- * Note: this routine returns a reference to palloc'd space.
+ * Oid, RegProcedure, TransactionId, CommandId
*/
-extern Datum Float4GetDatum(float4 X);
+/* typedef Oid is in postgres_ext.h */
-/*
- * 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.
- */
+/* unfortunately, both regproc and RegProcedure are used */
+typedef Oid regproc;
+typedef Oid RegProcedure;
-#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X)))
+typedef uint32 TransactionId;
-/*
- * Float8GetDatum
- * Returns datum representation for an 8-byte floating point number.
- *
- * Note: this routine returns a reference to palloc'd space.
- */
+#define InvalidTransactionId 0
-extern Datum Float8GetDatum(float8 X);
+typedef uint32 CommandId;
+#define FirstCommandId 0
/*
- * 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.
+ * Array indexing support
*/
+#define MAXDIM 6
+typedef struct
+{
+ int indx[MAXDIM];
+} IntArray;
-#define DatumGetFloat32(X) ((float32) DatumGetPointer(X))
-
-/*
- * Float32GetDatum
- * Returns datum representation for a 32-bit floating point number.
- * This is really a pointer, of course.
+/* ----------------
+ * Variable-length datatypes all share the 'struct varlena' header.
*
- * XXX: this macro is now deprecated in favor of Float4GetDatum.
- * It will eventually go away.
+ * NOTE: for TOASTable types, this is an oversimplification, since the value may be
+ * 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
- * 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.
+ * 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.
*/
-
-#define DatumGetFloat64(X) ((float64) DatumGetPointer(X))
+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) */
/*
- * 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.
+ * Fixed-length array types (these are not varlena's!)
*/
-#define Float64GetDatum(X) PointerGetDatum(X)
+typedef int2 int2vector[INDEX_MAX_KEYS];
+typedef Oid oidvector[INDEX_MAX_KEYS];
/*
- * 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.
+ * We want NameData to have length NAMEDATALEN and int alignment,
+ * because that's how the data type 'name' is defined in pg_type.
+ * Use a union to make sure the compiler agrees.
*/
+typedef union nameData
+{
+ char data[NAMEDATALEN];
+ int alignmentDummy;
+} NameData;
+typedef NameData *Name;
-#define Int64GetDatumFast(X) PointerGetDatum(&(X))
-#define Float4GetDatumFast(X) PointerGetDatum(&(X))
-#define Float8GetDatumFast(X) PointerGetDatum(&(X))
+#define NameStr(name) ((name).data)
/* ----------------------------------------------------------------
- * Section 5: IsValid macros for system types
+ * Section 4: IsValid macros for system types
* ----------------------------------------------------------------
*/
/*
#define PointerIsAligned(pointer, type) \
(((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
* ----------------------------------------------------------------
*/
/*
*/
#define endof(array) (&array[lengthof(array)])
-/* ----------------------------------------------------------------
- * Section 7: exception handling definitions
- * 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:
+/* ----------------
+ * Alignment macros: align a length or address appropriately for a given type.
*
- * #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)
-
-extern bool assert_enabled;
-
-#endif /* USE_ASSERT_CHECKING */
-
-/*
- * LogTrap
- * Generates an exception with a message if the given condition is true.
+ * 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 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) \
- LogTrapMacro(!(condition), FailedAssertion, printArgs)
+#define TYPEALIGN(ALIGNVAL,LEN) (((long)(LEN) + (ALIGNVAL-1)) & ~(ALIGNVAL-1))
-#define LogAssertArg(condition, printArgs) \
- LogTrap(!(condition), BadArg, printArgs)
+#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))
-#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
* ----------------------------------------------------------------
*/
/*
/* ----------------------------------------------------------------
- * Section 9: externs
- * ----------------------------------------------------------------
- */
-
-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
+ * Section 7: random stuff
* ----------------------------------------------------------------
*/
-/* ----------------
- * storage managers
- *
- * These are experimental and are not supported in the code that
- * we distribute to other sites.
- * ----------------
- */
-#ifdef NOT_USED
-#define STABLE_MEMORY_STORAGE
-#endif
+/* 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)
/* ----------------------------------------------------------------
- * Section 11: system-specific hacks
+ * Section 8: system-specific hacks
*
* This should be limited to things that absolutely have to be
- * included in every source file. The changes should be factored
- * into a separate file so that changes to one port don't require
- * changes to c.h (and everyone recompiling their whole system).
+ * included in every source file. The port-specific header file
+ * is usually a better place for this sort of thing.
* ----------------------------------------------------------------
*/
#endif
#if defined(sun) && defined(__sparc__) && !defined(__SVR4)
-#define memmove(d, s, l) bcopy(s, d, l)
#include <unistd.h>
#include <varargs.h>
#endif
#endif
-#ifndef HAVE_MEMMOVE
-#include <regex/utils.h>
+#if !defined(HAVE_MEMMOVE) && !defined(memmove)
+#define memmove(d, s, c) bcopy(s, d, c)
#endif
/* ----------------
#ifndef SPI_H
#define SPI_H
+/*
+ * This file may be used by client modules that haven't already
+ * included postgres.h
+ */
#include "postgres.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) 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
#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.
- */
-#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.
+ * Read/write mode flags for inversion (large object) calls
*/
#define INV_WRITE 0x00020000
#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 */
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
#define PQCOMM_H
-#include "postgres.h"
-
#include <sys/types.h>
#ifdef WIN32
-# include "winsock.h"
+# include <winsock.h>
#else /* not WIN32 */
# include <sys/socket.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
#define PG_WCHAR_H
-#include "postgres.h"
#include <sys/types.h>
#ifdef FRONTEND
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
* some of the information in this file should be moved to
extern int CheckPathAccess(char *path, char *name, int open_mode);
#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);
#endif
/*-------------------------------------------------------------------------
*
* postgres.h
- * definition of (and support for) postgres system types.
- * this file is included by almost every .c in the system
+ * Primary include file for PostgreSQL server .c files
+ *
+ * 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) 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
- * following (and perhaps other) system types:
+ *----------------------------------------------------------------
+ * TABLE OF CONTENTS
*
- * int2 int4 float4 float8
- * Oid regproc RegProcedure
- * aclitem
- * struct varlena
- * int2vector oidvector
- * bytea text
- * NameData Name
+ * When adding stuff to this file, please try to put stuff
+ * into the relevant section, or add new sections as appropriate.
*
- * TABLE OF CONTENTS
- * 1) simple type definitions
- * 2) varlena and array types
- * 3) TransactionId and CommandId
+ * section description
+ * ------- ------------------------------------------------
+ * 1) variable-length datatypes (TOAST support)
+ * 2) datum type + support macros
+ * 3) exception handling definitions
* 4) genbki macros used by catalog/pg_xxx.h files
- * 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
#define POSTGRES_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
-#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
{
int32 va_header; /* External/compressed storage */
#define VARATT_IS_COMPRESSED(PTR) \
((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,
- * so we (evil evil evil) declare it here once more.
- * ----------
+
+/* ----------------------------------------------------------------
+ * Section 2: datum type + support macros
+ * ----------------------------------------------------------------
+ */
+
+/*
+ * 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) { \
- if (VARATT_IS_EXTENDED(_ARG)) \
- (_VAR) = (void *)heap_tuple_untoast_attr(_ARG); \
- else \
- (_VAR) = (void *)(_ARG); \
- }
-#define VARATT_FREE(_ARG,_VAR) do { \
- 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 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))
-/* fixed-length array types (these are not varlena's!) */
+/*
+ * DatumGetChar
+ * Returns character value of a datum.
+ */
-typedef int2 int2vector[INDEX_MAX_KEYS];
-typedef Oid oidvector[INDEX_MAX_KEYS];
+#define DatumGetChar(X) ((char) GET_1_BYTE(X))
-/* We want NameData to have length NAMEDATALEN and int alignment,
- * because that's how the data type 'name' is defined in pg_type.
- * Use a union to make sure the compiler agrees.
+/*
+ * CharGetDatum
+ * 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
- * catalog/pg_xxx.h files
+ * Section 4: genbki macros used by catalog/pg_xxx.h files
* ----------------------------------------------------------------
*/
#define CATALOG(x) \
#define BKI_BEGIN
#define BKI_END
-/* ----------------------------------------------------------------
- * 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)
+typedef int4 aclitem; /* PHONY definition for catalog use only */
-/* ---------------
- * Cyrillic on the fly charsets recode
- * ---------------
- */
-#ifdef CYR_RECODE
-extern void SetCharSet(void);
-#endif /* CYR_RECODE */
#endif /* POSTGRES_H */
*
* postgres_ext.h
*
- * This file contains declarations of things that are visible
- * external to Postgres. For example, the Oid type is part of a
- * structure that is passed to the front end via libpq, and is
- * accordingly referenced in libpq-fe.h.
+ * This file contains declarations of things that are visible everywhere
+ * in PostgreSQL *and* are visible to clients of frontend interface libraries.
+ * For example, the Oid type is part of the API of libpq and other libraries.
*
* Declarations which are specific to a particular interface should
* go in the header file for that interface (such as libpq-fe.h). This
* use header files that are otherwise internal to Postgres to interface
* 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 $
*
*-------------------------------------------------------------------------
*/
*/
typedef unsigned int Oid;
+#define InvalidOid ((Oid) 0)
+
#define OID_MAX UINT_MAX
/* you will need to include <limits.h> to use the above #define */
--- /dev/null
+/*-------------------------------------------------------------------------
+ *
+ * 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 */
#ifndef _REGEX_H_
#define _REGEX_H_
-#include "postgres.h"
#include <sys/types.h>
#include "mb/pg_wchar.h"
* @(#)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
* @(#)utils.h 8.3 (Berkeley) 3/20/94
*/
-#include "postgres.h"
-
-#include "limits.h"
+#include <limits.h>
/* utility definitions */
#define DUPMAX 100000000 /* xxx is this right? */
#else
#define NC (CHAR_MAX - CHAR_MIN + 1)
#endif
+
typedef unsigned char uch;
/* switch off assertions (if not already off) if no REDEBUG */
#define NDEBUG /* no assertions please */
#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
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
* instead include this file because on Ultrix, sys/ipc.h is not designed
#ifndef IPC_H
#define IPC_H
-#include "config.h"
-
#include <sys/types.h>
#ifdef HAVE_SYS_IPC_H
#include <sys/ipc.h>
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
#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"
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
#define EXC_H
-#include "config.h"
-
#include <setjmp.h>
extern char *ExcFileName;
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
* These routines do *not* use the float types from adt/.
#ifndef GEO_DECLS_H
#define GEO_DECLS_H
-#include "access/attnum.h"
#include "fmgr.h"
/*--------------------------------------------------------------------
* External declarations pertaining to backend/utils/misc/guc.c and
* 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
#define GUC_H
-#include "postgres.h"
-
/*
* Certain options can only be set at certain times. The rules are
* like this:
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#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 */
-#include "postgres.h"
+#include "postgres_fe.h"
#include "libpq-fe.h"
/* Here are some methods used by the lib. */
*
*-------------------------------------------------------------------------
*/
+#include "postgres_fe.h"
+
#include <ctype.h>
-#include "postgres.h"
#include "extern.h"
#include "preproc.h"
* functions needed for descriptor handling
*/
-#include "postgres.h"
+#include "postgres_fe.h"
+
#include "extern.h"
/*
/* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */
/* Placed under the same copyright as PostgresSQL */
+#include "postgres_fe.h"
+
#include <unistd.h>
-#include "postgres.h"
#ifdef HAVE_GETOPT_H
#include "getopt.h"
*
*-------------------------------------------------------------------------
*/
+#include "postgres_fe.h"
+
#include <ctype.h>
-#include "postgres.h"
#include "extern.h"
#include "preproc.h"
-#include "parser/keywords.h"
#include "type.h"
+
#include <errno.h>
/* defines */
extern void check_indicator(struct ECPGtype *);
extern void remove_variables(int);
extern struct variable *new_variable(const char *, struct ECPGtype *);
+extern ScanKeyword *ScanKeywordLookup(char *text);
/* return codes */
*
*
* 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 "postgres.h"
-#include "nodes/parsenodes.h"
-#include "nodes/pg_list.h"
-#include "type.h"
+#include "extern.h"
#include "preproc.h"
-#include "parser/keywords.h"
/*
* List of (keyword-name, keyword-token-value) pairs.
-#include <stdarg.h>
+#include "postgres_fe.h"
-#include "postgres.h"
#include "extern.h"
void
*
*
* 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 <sys/types.h>
#include <limits.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 "preproc.h"
-#include "utils/builtins.h"
/* some versions of lex define this as a macro */
#if defined(yywrap)
/* Copyright comment */
%{
-#include <stdarg.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 "postgres_fe.h"
#include "extern.h"
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(")"));
}
| /*EMPTY*/
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(")"));
}
| '(' 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(")"));
}
| /*EMPTY*/
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(")"));
}
| '(' 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(")"));
}
| /*EMPTY*/
* The following implements BIT() and BIT VARYING().
*/
Bit: bit '(' PosIntConst ')'
- {
- $$ = 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);
- }
- }
+ {
+ $$ = cat_str(4, $1, make_str("("), $3, make_str(")"));
+ }
| bit
- {
- $$ = $1;
+ {
+ $$ = $1;
}
;
*/
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(")"));
}
| character
}
| ColId
{
- /* disallow refs to variable system tables */
- 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;
+ $$ = $1;
}
;
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
+#include "postgres_fe.h"
-#include "postgres.h"
#include "extern.h"
/* malloc + error check */
char *str;
char *name;
};
+
+typedef struct ScanKeyword
+{
+ char *name;
+ int value;
+} ScanKeyword;
-#include "postgres.h"
+#include "postgres_fe.h"
#include "extern.h"
*
*
* 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 "pgtclCmds.h"
#include "pgtclId.h"
*
*
* 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 "postgres.h"
#include "pgtclCmds.h"
#include "pgtclId.h"
#include "libpq/libpq-fs.h" /* large-object interface */
* Portions Copyright (c) 1994, Regents of the University of California
*
* 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 "postgres.h"
#include "pgtclCmds.h"
#include "pgtclId.h"
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#endif
extern "C" {
-#include "postgres.h"
+#include "postgres_fe.h"
#include "libpq-fe.h"
}
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
*
* 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 $
*
*-------------------------------------------------------------------------
*/
*
*/
-#ifndef WIN32
-#include "postgres.h"
-#endif
+#include "postgres_fe.h"
+
#include "libpq-fe.h"
#include "libpq-int.h"
#include "fe-auth.h"
*
*
* 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 <fcntl.h>
#endif
#ifdef MULTIBYTE
-#include "miscadmin.h"
#include "mb/pg_wchar.h"
#endif
*
*
* 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 <ctype.h>
#include <fcntl.h>
-#include "postgres.h"
#include "libpq-fe.h"
#include "libpq-int.h"
*
*
* 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 <sys/stat.h>
-#include "postgres.h"
#include "libpq-fe.h"
#include "libpq-int.h"
*
*
* 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
#include "win32.h"
#include "pqsignal.h"
#ifdef MULTIBYTE
-#include "miscadmin.h"
#include "mb/pg_wchar.h"
#endif
* didn't really belong there.
*
* 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>
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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 $
*
*-------------------------------------------------------------------------
*/
#define LIBPQ_INT_H
/* We assume libpq-fe.h has already been included. */
+#include "postgres_fe.h"
/* include stuff common to fe and be */
#include "libpq/pqcomm.h"
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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"
#ifdef WIN32
-#include <stdarg.h>
-#include <stdio.h>
#include "win32.h"
#endif
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* 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
* This shouldn't be in libpq, but the monitor and some other
#ifndef PQSIGNAL_H
#define PQSIGNAL_H
-#include "postgres.h"
+#include "postgres_fe.h"
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 <float.h> /* faked on sunos */
+
#include "utils/geo_decls.h" /* includes <math.h> */
#include "executor/executor.h" /* For GetAttributeByName */
#include "commands/sequence.h" /* for nextval() */
See funcs_new.c for examples of "new style".
*****************************************************************************/
-#include <string.h>
-
#include "postgres.h" /* general Postgres declarations */
#include "executor/executor.h" /* for GetAttributeByName() */
See funcs.c for examples of "old style".
*****************************************************************************/
-#include <string.h>
-
#include "postgres.h" /* general Postgres declarations */
#include "fmgr.h" /* for argument/result macros */