diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/GNUmakefile.in | 4 | ||||
-rw-r--r-- | src/Makefile.global.in | 5 | ||||
-rw-r--r-- | src/backend/Makefile | 13 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 71 | ||||
-rw-r--r-- | src/backend/utils/adt/version.c | 3 | ||||
-rw-r--r-- | src/backend/utils/init/miscinit.c | 51 | ||||
-rw-r--r-- | src/backend/utils/init/postinit.c | 11 | ||||
-rw-r--r-- | src/bin/Makefile | 4 | ||||
-rw-r--r-- | src/bin/initdb/Makefile | 6 | ||||
-rw-r--r-- | src/bin/initdb/initdb.sh | 19 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 20 | ||||
-rw-r--r-- | src/bin/pg_version/Makefile | 43 | ||||
-rw-r--r-- | src/bin/pg_version/pg_version.c | 46 | ||||
-rw-r--r-- | src/bin/psql/common.c | 3 | ||||
-rw-r--r-- | src/bin/psql/startup.c | 7 | ||||
-rw-r--r-- | src/include/config.h.in | 7 | ||||
-rw-r--r-- | src/include/miscadmin.h | 5 | ||||
-rw-r--r-- | src/include/version.h.in | 25 | ||||
-rw-r--r-- | src/tools/RELEASE_CHANGES | 3 | ||||
-rw-r--r-- | src/utils/Makefile | 24 | ||||
-rw-r--r-- | src/utils/version.c | 149 |
21 files changed, 139 insertions, 380 deletions
diff --git a/src/GNUmakefile.in b/src/GNUmakefile.in index cb3c1b4449e..a2516087018 100644 --- a/src/GNUmakefile.in +++ b/src/GNUmakefile.in @@ -7,7 +7,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.55 2000/07/01 21:16:42 petere Exp $ +# $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.56 2000/07/02 15:20:41 petere Exp $ # #------------------------------------------------------------------------- @@ -24,14 +24,12 @@ ETAGS = @etags@ XARGS = @xargs@ all: - $(MAKE) -C utils all $(MAKE) -C backend all $(MAKE) -C interfaces all $(MAKE) -C bin all $(MAKE) -C pl all install: installdirs - $(MAKE) -C utils install $(MAKE) -C backend install $(MAKE) -C interfaces install $(MAKE) -C bin install diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 653102a3ea8..cf766b08b61 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -7,7 +7,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.84 2000/07/01 21:16:42 petere Exp $ +# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.85 2000/07/02 15:20:41 petere Exp $ # # NOTES # Essentially all Postgres make files include this file and use the @@ -35,6 +35,9 @@ # #------------------------------------------------------------------------- +# PostgreSQL version number +VERSION = @VERSION@ + ifndef SRCDIR # This should be changed once we have separate build dirs. top_srcdir = $(top_builddir) diff --git a/src/backend/Makefile b/src/backend/Makefile index ab691cef462..5c3a520fbdd 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -34,7 +34,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.56 2000/06/28 03:30:57 tgl Exp $ +# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.57 2000/07/02 15:20:44 petere Exp $ # #------------------------------------------------------------------------- @@ -57,10 +57,8 @@ ifeq ($(PORTNAME), qnx4) OBJS+= bootstrap/bootstrap.o endif -VERSIONOBJ = $(SRCDIR)/utils/version.o - ifeq ($(MAKE_DLL), true) -DLLOBJS= $(OBJS) $(VERSIONOBJ) +DLLOBJS= $(OBJS) DLLLIBS= -L/usr/local/lib -lcygipc -lcrypt -lcygwin -lkernel32 postgres.def: $(DLLOBJS) @@ -74,8 +72,8 @@ all: prebuildheaders postgres $(POSTGRES_IMP) ifneq ($(PORTNAME), win) -postgres: $(OBJS) $(VERSIONOBJ) - $(CC) $(CFLAGS) -o postgres $(OBJS) $(VERSIONOBJ) $(LDFLAGS) +postgres: $(OBJS) + $(CC) $(CFLAGS) -o postgres $(OBJS) $(LDFLAGS) else @@ -93,9 +91,6 @@ $(OBJS): $(DIRS:%=%.dir) $(DIRS:%=%.dir): $(MAKE) -C $(subst .dir,,$@) all -$(VERSIONOBJ): $(SRCDIR)/utils/version.c $(SRCDIR)/include/version.h - $(MAKE) -C $(SRCDIR)/utils version.o - $(SRCDIR)/utils/dllinit.o: $(SRCDIR)/utils/dllinit.c $(MAKE) -C $(SRCDIR)/utils dllinit.o diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 135b6d5950e..f7d2e0d8a6d 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.150 2000/06/28 03:31:52 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.151 2000/07/02 15:20:48 petere Exp $ * * NOTES * @@ -84,7 +84,6 @@ #include "access/xlog.h" #include "tcop/tcopprot.h" #include "utils/guc.h" -#include "version.h" /* * "postmaster.opts" is a file containing options for postmaser. @@ -300,8 +299,11 @@ int assert_enabled = 1; #endif static void -checkDataDir(const char *DataDir, bool *DataDirOK) +checkDataDir(const char *DataDir) { + char path[MAXPGPATH]; + FILE *fp; + if (DataDir == NULL) { fprintf(stderr, "%s does not know where to find the database system " @@ -309,59 +311,35 @@ checkDataDir(const char *DataDir, bool *DataDirOK) "database system either by specifying the -D invocation " "option or by setting the PGDATA environment variable.\n\n", progname); - *DataDirOK = false; + exit(2); } - else - { - char path[MAXPGPATH]; - FILE *fp; - snprintf(path, sizeof(path), "%s%cbase%ctemplate1%cpg_class", - DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR); - fp = AllocateFile(path, PG_BINARY_R); - if (fp == NULL) - { - fprintf(stderr, "%s does not find the database system. " - "Expected to find it " - "in the PGDATA directory \"%s\", but unable to open file " - "with pathname \"%s\".\n\n", - progname, DataDir, path); - *DataDirOK = false; - } - else - { - char *reason; + snprintf(path, sizeof(path), "%s%cbase%ctemplate1%cpg_class", + DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR); - /* reason ValidatePgVersion failed. NULL if didn't */ + fp = AllocateFile(path, PG_BINARY_R); + if (fp == NULL) + { + fprintf(stderr, "%s does not find the database system. " + "Expected to find it " + "in the PGDATA directory \"%s\", but unable to open file " + "with pathname \"%s\".\n\n", + progname, DataDir, path); + exit(2); + } - FreeFile(fp); + FreeFile(fp); - ValidatePgVersion(DataDir, &reason); - if (reason) - { - fprintf(stderr, - "Database system in directory %s " - "is not compatible with this version of " - "Postgres, or we are unable to read the " - "PG_VERSION file. " - "Explanation from ValidatePgVersion: %s\n\n", - DataDir, reason); - free(reason); - *DataDirOK = false; - } - else - *DataDirOK = true; - } - } + ValidatePgVersion(DataDir); } + int PostmasterMain(int argc, char *argv[]) { int opt; int status; int silentflag = 0; - bool DataDirOK; /* We have a usable PGDATA value */ char original_extraoptions[MAXPGPATH]; IsUnderPostmaster = true; /* so that backends know this */ @@ -435,12 +413,7 @@ PostmasterMain(int argc, char *argv[]) } optind = 1; /* start over */ - checkDataDir(DataDir, &DataDirOK); /* issues error messages */ - if (!DataDirOK) - { - fprintf(stderr, "No data directory -- can't proceed.\n"); - exit(2); - } + checkDataDir(DataDir); /* issues error messages */ ProcessConfigFile(PGC_POSTMASTER); diff --git a/src/backend/utils/adt/version.c b/src/backend/utils/adt/version.c index 2d4dd5cf273..4914acc8e35 100644 --- a/src/backend/utils/adt/version.c +++ b/src/backend/utils/adt/version.c @@ -5,14 +5,13 @@ * * IDENTIFICATION * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.9 1999/07/17 20:18:00 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.10 2000/07/02 15:20:51 petere Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" -#include "version.h" text *version(void); diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index eaee59d81fe..2b63ace0eca 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.50 2000/06/14 18:17:46 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.51 2000/07/02 15:20:56 petere Exp $ * *------------------------------------------------------------------------- */ @@ -24,6 +24,7 @@ #include <grp.h> #include <pwd.h> #include <stdlib.h> +#include <errno.h> #include "catalog/catname.h" #include "catalog/pg_shadow.h" @@ -520,3 +521,51 @@ SetPidFile(pid_t pid) return (0); } + + + +/* + * Determine whether the PG_VERSION file in directory `path' indicates + * a data version compatible with the version of this program. + * + * If compatible, return. Otherwise, elog(FATAL). + */ +void +ValidatePgVersion(const char *path) +{ + char full_path[MAXPGPATH]; + FILE *file; + int ret; + long file_major, file_minor; + long my_major = 0, my_minor = 0; + char *endptr; + const char *version_string = PG_VERSION; + + my_major = strtol(version_string, &endptr, 10); + if (*endptr == '.') + my_minor = strtol(endptr+1, NULL, 10); + + snprintf(full_path, MAXPGPATH, "%s/PG_VERSION", path); + + file = AllocateFile(full_path, "r"); + if (!file) + { + if (errno == ENOENT) + elog(FATAL, "File %s is missing. This is not a valid data directory.", full_path); + else + elog(FATAL, "cannot open %s: %s", full_path, strerror(errno)); + } + + ret = fscanf(file, "%ld.%ld", &file_major, &file_minor); + if (ret == EOF) + elog(FATAL, "cannot read %s: %s", full_path, strerror(errno)); + else if (ret != 2) + elog(FATAL, "`%s' does not have a valid format. You need to initdb.", full_path); + + FreeFile(file); + + if (my_major != file_major || my_minor != file_minor) + elog(FATAL, "The data directory was initalized by PostgreSQL version %ld.%ld, " + "which is not compatible with this verion %s.", + file_major, file_minor, version_string); +} diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index f2a5864666c..813eb131174 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.60 2000/06/28 03:32:43 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.61 2000/07/02 15:20:56 petere Exp $ * * *------------------------------------------------------------------------- @@ -34,7 +34,6 @@ #include "utils/portal.h" #include "utils/relcache.h" #include "utils/syscache.h" -#include "version.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h" @@ -267,9 +266,7 @@ InitPostgres(const char *dbname) elog(FATAL, "Database system not found. Data directory '%s' does not exist.", DataDir); - ValidatePgVersion(DataDir, &reason); - if (reason != NULL) - elog(FATAL, reason); + ValidatePgVersion(DataDir); /*----------------- * Find oid and path of the database we're about to open. Since we're @@ -300,9 +297,7 @@ InitPostgres(const char *dbname) elog(FATAL, "Database \"%s\" does not exist. The data directory '%s' is missing.", dbname, fullpath); - ValidatePgVersion(fullpath, &reason); - if (reason != NULL) - elog(FATAL, "%s", reason); + ValidatePgVersion(fullpath); if (chdir(fullpath) == -1) elog(FATAL, "Unable to change directory to '%s': %s", fullpath, strerror(errno)); diff --git a/src/bin/Makefile b/src/bin/Makefile index 156a588fb1c..d3e1556b5db 100644 --- a/src/bin/Makefile +++ b/src/bin/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1994, Regents of the University of California # -# $Header: /cvsroot/pgsql/src/bin/Makefile,v 1.27 2000/07/01 15:02:19 petere Exp $ +# $Header: /cvsroot/pgsql/src/bin/Makefile,v 1.28 2000/07/02 15:20:56 petere Exp $ # #------------------------------------------------------------------------- @@ -13,7 +13,7 @@ top_builddir = ../.. include ../Makefile.global DIRS := initdb initlocation ipcclean pg_ctl pg_dump pg_id \ - pg_passwd pg_version psql scripts + pg_passwd psql scripts ifdef MULTIBYTE DIRS += pg_encoding diff --git a/src/bin/initdb/Makefile b/src/bin/initdb/Makefile index 0224abec6ec..850deb86b83 100644 --- a/src/bin/initdb/Makefile +++ b/src/bin/initdb/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1994, Regents of the University of California # -# $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.18 2000/06/27 00:30:53 petere Exp $ +# $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.19 2000/07/02 15:21:00 petere Exp $ # #------------------------------------------------------------------------- @@ -14,8 +14,8 @@ include ../../Makefile.global all: initdb -initdb: initdb.sh - sed -e 's/__MULTIBYTE__/$(MULTIBYTE)/g' < $< > $@ +initdb: initdb.sh ../../Makefile.global + sed -e 's/__MULTIBYTE__/$(MULTIBYTE)/g' -e 's/__VERSION__/$(VERSION)/g' < $< > $@ install: all installdirs $(INSTALL_SCRIPT) initdb $(bindir)/initdb diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh index a83bb981246..25f55ef0838 100644 --- a/src/bin/initdb/initdb.sh +++ b/src/bin/initdb/initdb.sh @@ -26,7 +26,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.97 2000/06/22 22:31:22 petere Exp $ +# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.98 2000/07/02 15:21:00 petere Exp $ # #------------------------------------------------------------------------- @@ -88,7 +88,7 @@ else fi # Check if needed programs actually exist in path -for prog in postgres pg_version pg_id +for prog in postgres pg_id do if [ ! -x "$PGPATH/$prog" ] then @@ -117,6 +117,13 @@ then exit 1 fi +# Replaced at build time +VERSION=__VERSION__ +short_version=`echo $VERSION | sed -e 's!^\([0-9][0-9]*\.[0-9][0-9]*\).*!\1!'` +if [ x"$short_version" = x"" ] ; then + echo "$CMDNAME: bug: version number is out of format" + exit 1 +fi # 0 is the default (non-)encoding MULTIBYTEID=0 @@ -144,6 +151,10 @@ do usage=t break ;; + --version) + echo "initdb (PostgreSQL) $VERSION" + exit 0 + ;; --debug|-d) debug=1 echo "Running with debug mode on." @@ -439,7 +450,7 @@ cat "$TEMPLATE" \ | "$PGPATH"/postgres $FIRSTRUN template1 \ || exit_nicely -"$PGPATH"/pg_version "$PGDATA"/base/template1 || exit_nicely +echo $short_version > "$PGDATA"/base/template1/PG_VERSION || exit_nicely #---------------------------------------------------------------------------- # Create the global classes, if requested. @@ -456,7 +467,7 @@ then | "$PGPATH"/postgres $BACKENDARGS template1 \ || exit_nicely - "$PGPATH"/pg_version "$PGDATA" || exit_nicely + echo $short_version > "$PGDATA/PG_VERSION" || exit_nicely cp "$PG_HBA_SAMPLE" "$PGDATA"/pg_hba.conf || exit_nicely cp "$POSTGRESQL_CONF_SAMPLE" "$PGDATA"/postgresql.conf || exit_nicely diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 603b0e62263..48b75e6447b 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.152 2000/06/14 18:17:50 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.153 2000/07/02 15:21:05 petere Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -70,7 +70,6 @@ #include "catalog/pg_language.h" #include "catalog/pg_trigger.h" #include "catalog/pg_type.h" -#include "version.h" #include "libpq-fe.h" #ifndef HAVE_STRDUP @@ -177,7 +176,7 @@ help(const char *progname) static void version(void) { - puts("pg_dump (PostgreSQL) " PG_RELEASE "." PG_VERSION "." PG_SUBVERSION); + puts("pg_dump (PostgreSQL) " PG_VERSION); puts("Portions Copyright (c) 1996-2000, PostgreSQL, Inc"); puts("Portions Copyright (C) 1996 Regents of the University of California"); puts("Read the file COPYRIGHT to see the usage and distribution terms."); @@ -541,10 +540,11 @@ static void check_database_version(bool ignoreVersion) { PGresult *res; - const char *dbversion; - const char *myversion = "PostgreSQL " PG_RELEASE "." PG_VERSION; - int myversionlen = strlen(myversion); + double myversion; + const char *remoteversion_str; + double remoteversion; + myversion = strtod(PG_VERSION, NULL); res = PQexec(g_conn, "SELECT version()"); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK || @@ -553,11 +553,13 @@ check_database_version(bool ignoreVersion) fprintf(stderr, "check_database_version(): command failed. Explanation from backend: '%s'.\n", PQerrorMessage(g_conn)); exit_nicely(g_conn); } - dbversion = PQgetvalue(res, 0, 0); - if (strncmp(dbversion, myversion, myversionlen) != 0) + + remoteversion_str = PQgetvalue(res, 0, 0); + remoteversion = strtod(remoteversion_str + 11, NULL); + if (myversion != remoteversion) { fprintf(stderr, "Database version: %s\npg_dump version: %s\n", - dbversion, PG_RELEASE "." PG_VERSION); + remoteversion_str, PG_VERSION); if (ignoreVersion) fprintf(stderr, "Proceeding despite version mismatch.\n"); else diff --git a/src/bin/pg_version/Makefile b/src/bin/pg_version/Makefile deleted file mode 100644 index 373031fc9fb..00000000000 --- a/src/bin/pg_version/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -#------------------------------------------------------------------------- -# -# Makefile for src/bin/pg_version -# -# Portions Copyright (c) 1996-2000, PostgreSQL, Inc -# Portions Copyright (c) 1994, Regents of the University of California -# -# $Header: /cvsroot/pgsql/src/bin/pg_version/Attic/Makefile,v 1.7 2000/06/27 00:31:29 petere Exp $ -# -#------------------------------------------------------------------------- - -subdir = src/bin/pg_version -top_builddir = ../../.. -include ../../Makefile.global - -OBJS= pg_version.o $(top_builddir)/src/utils/version.o $(STRERROR2) - -all: pg_version$(X) - -pg_version$(X): $(OBJS) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) - -$(top_builddir)/src/utils/version.o: $(top_srcdir)/src/utils/version.c $(top_builddir)/src/include/version.h - $(MAKE) -C $(top_builddir)/src/utils version.o - -install: all installdirs - $(INSTALL_PROGRAM) pg_version$(X) $(bindir)/pg_version$(X) - -installdirs: - $(mkinstalldirs) $(bindir) - -uninstall: - rm -f $(bindir)/pg_version$(X) - -depend dep: - $(CC) -MM $(CFLAGS) *.c >depend - -clean distclean maintainer-clean: - rm -f pg_version$(X) pg_version.o - -ifeq (depend,$(wildcard depend)) -include depend -endif diff --git a/src/bin/pg_version/pg_version.c b/src/bin/pg_version/pg_version.c deleted file mode 100644 index 91d1609531a..00000000000 --- a/src/bin/pg_version/pg_version.c +++ /dev/null @@ -1,46 +0,0 @@ -/*------------------------------------------------------------------------- - * - * pg_version.c - * - * - * Portions Copyright (c) 1996-2000, PostgreSQL, Inc - * Portions Copyright (c) 1994, Regents of the University of California - * - * - * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_version/Attic/pg_version.c,v 1.12 2000/01/26 05:57:40 momjian Exp $ - * - *------------------------------------------------------------------------- - */ -#include <stdlib.h> -#include <stdio.h> - -#include "version.h" /* interface to SetPgVersion */ - - - -int -main(int argc, char **argv) -{ - int retcode; /* our eventual return code */ - char *reason; /* Reason that SetPgVersion failed, NULL - * if it didn't. */ - - if (argc < 2) - { - fprintf(stderr, "pg_version: missing argument\n"); - exit(1); - } - SetPgVersion(argv[1], &reason); - if (reason) - { - fprintf(stderr, - "pg_version is unable to create the PG_VERSION file. " - "SetPgVersion gave this reason: %s\n", - reason); - retcode = 10; - } - else - retcode = 0; - return retcode; -} diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index d3551c5accc..4c802198a63 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.20 2000/04/12 17:16:22 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.21 2000/07/02 15:21:17 petere Exp $ */ #include "postgres.h" #include "common.h" @@ -28,7 +28,6 @@ #include "libpq-fe.h" #include "postgres_ext.h" #include "pqsignal.h" -#include "version.h" #include "settings.h" #include "variables.h" diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index 46c77ca3b23..88ef5865afd 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.33 2000/05/14 18:05:05 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.34 2000/07/02 15:21:17 petere Exp $ */ #include "postgres.h" @@ -22,7 +22,6 @@ #endif #include "libpq-fe.h" -#include "version.h" #include "command.h" #include "common.h" @@ -580,7 +579,7 @@ process_psqlrc(void) exit(EXIT_FAILURE); } - sprintf(psqlrc, "%s/.psqlrc-" PG_RELEASE "." PG_VERSION "." PG_SUBVERSION, home); + sprintf(psqlrc, "%s/.psqlrc-" PG_VERSION, home); if (access(psqlrc, R_OK) == 0) process_file(psqlrc); else @@ -602,7 +601,7 @@ process_psqlrc(void) static void showVersion(void) { - puts("psql (PostgreSQL) " PG_RELEASE "." PG_VERSION "." PG_SUBVERSION); + puts("psql (PostgreSQL) " PG_VERSION); #if defined(USE_READLINE) || defined (USE_HISTORY) || defined(MULTIBYTE) fputs("contains ", stdout); diff --git a/src/include/config.h.in b/src/include/config.h.in index 8de4d16e2ed..c9ec69116d3 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -8,7 +8,7 @@ * or in config.h afterwards. Of course, if you edit config.h, then your * changes will be overwritten the next time you run configure. * - * $Id: config.h.in,v 1.121 2000/06/29 05:50:29 tgl Exp $ + * $Id: config.h.in,v 1.122 2000/07/02 15:21:18 petere Exp $ */ #ifndef CONFIG_H @@ -28,6 +28,11 @@ *------------------------------------------------------------------------ */ +/* The version number is actually hard-coded into configure.in */ +#undef PG_VERSION +/* A canonical string containing the version number, platform, and C compiler */ +#undef PG_VERSION_STR + /* Set to 1 if you want LOCALE support (--enable-locale) */ #undef USE_LOCALE diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index e6b8309aac8..59269216ea7 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -12,7 +12,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: miscadmin.h,v 1.61 2000/06/28 03:32:56 tgl Exp $ + * $Id: miscadmin.h,v 1.62 2000/07/02 15:21:18 petere Exp $ * * NOTES * some of the information in this file will be moved to @@ -227,4 +227,7 @@ extern void SetPidFname(char *datadir); extern void UnlinkPidFile(void); extern int SetPidFile(pid_t pid); + +extern void ValidatePgVersion(const char *path); + #endif /* MISCADMIN_H */ diff --git a/src/include/version.h.in b/src/include/version.h.in deleted file mode 100644 index cf291a5734c..00000000000 --- a/src/include/version.h.in +++ /dev/null @@ -1,25 +0,0 @@ -/*------------------------------------------------------------------------- - * - * version.h.in - * this file contains the interface to version.c. - * Also some parameters. - * - * $Header: /cvsroot/pgsql/src/include/Attic/version.h.in,v 1.9 2000/06/12 22:36:10 momjian Exp $ - * - *------------------------------------------------------------------------- - */ -#ifndef VERSION_H -#define VERSION_H - -void ValidatePgVersion(const char *path, char **reason_p); -void SetPgVersion(const char *path, char **reason_p); - -#define PG_RELEASE "7" -#define PG_VERSION "1" -#define PG_SUBVERSION "0" - -#define PG_VERFILE "PG_VERSION" - -#define PG_VERSION_STR "PostgreSQL " PG_RELEASE "." PG_VERSION "." PG_SUBVERSION " on @host@, compiled by @CC@ @CC_VERSION@" - -#endif diff --git a/src/tools/RELEASE_CHANGES b/src/tools/RELEASE_CHANGES index 34c1a019144..1445f9f21be 100644 --- a/src/tools/RELEASE_CHANGES +++ b/src/tools/RELEASE_CHANGES @@ -1,9 +1,9 @@ +update version number in configure.in README HISTORY register.txt doc/Machine-specific FAQ's doc/bug.template -update include/version.h.in after release, including subversion update pgaccess update src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java update src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java @@ -13,7 +13,6 @@ update doc/src/sgml/install.sgml update interfaces/libpq/libpq.rc update documentation command-line arg printout from inside the program - psql help in psqlHelp.c man pages sgml docs update VERSION numbers of interfaces diff --git a/src/utils/Makefile b/src/utils/Makefile index c1f153900b4..cd641ce675e 100644 --- a/src/utils/Makefile +++ b/src/utils/Makefile @@ -1,10 +1,8 @@ #------------------------------------------------------------------------- # -# Makefile-- -# Makefile for utils +# Makefile for utils # -# IDENTIFICATION -# $Header: /cvsroot/pgsql/src/utils/Attic/Makefile,v 1.7 2000/02/27 01:18:46 tgl Exp $ +# $Header: /cvsroot/pgsql/src/utils/Attic/Makefile,v 1.8 2000/07/02 15:21:27 petere Exp $ # # About strdup: Some systems have strdup in their standard library, others # don't. Ones that don't will use this make file to compile the strdup.c @@ -19,24 +17,18 @@ # #------------------------------------------------------------------------- -SRCDIR = .. -include $(SRCDIR)/Makefile.global +subdir = src/utils +top_builddir = ../.. +include ../Makefile.global -all: version.o +all: -install: +clean distclean maintainer-clean: + rm -f dllinit.o getopt.o strdup.o depend dep: $(CC) $(CFLAGS) -MM *.c >depend -clean: - rm -f dllinit.o getopt.o strdup.o version.o - -# Make sure version.o has proper dependency on version.h, -# even if we didn't do make depend. -version.o: version.c $(SRCDIR)/include/version.h - ifeq (depend,$(wildcard depend)) include depend endif - diff --git a/src/utils/version.c b/src/utils/version.c deleted file mode 100644 index d58ccdf6853..00000000000 --- a/src/utils/version.c +++ /dev/null @@ -1,149 +0,0 @@ -/*------------------------------------------------------------------------- - * - * version.c - * Routines to handle Postgres version number. - * - * Portions Copyright (c) 1996-2000, PostgreSQL, Inc - * Portions Copyright (c) 1994, Regents of the University of California - * - * - * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/utils/Attic/version.c,v 1.17 2000/06/14 18:18:01 petere Exp $ - * - * STANDALONE CODE - do not use error routines as this code is not linked - * with any... - *------------------------------------------------------------------------- - */ -#include <sys/types.h> -#include <sys/file.h> -#include <fcntl.h> /* For open() flags */ -#include <sys/stat.h> -#include <ctype.h> -#include <unistd.h> -#include <errno.h> - -#include "postgres.h" - -#include "storage/fd.h" /* for O_ */ - -#include "version.h" - - -static void -PathSetVersionFilePath(const char *path, char *filepathbuf) -{ -/*---------------------------------------------------------------------------- - PathSetVersionFilePath - - Destructively change "filepathbuf" to contain the concatenation of "path" - and the name of the version file name. -----------------------------------------------------------------------------*/ - if ((strlen(path) + 1 + strlen(PG_VERFILE)) >= MAXPGPATH) - *filepathbuf = '\0'; - else - sprintf(filepathbuf, "%s%c%s", path, SEP_CHAR, PG_VERFILE); -} - - - -void -ValidatePgVersion(const char *path, char **reason_p) -{ -/*---------------------------------------------------------------------------- - Determine whether the PG_VERSION file in directory <path> indicates - a data version compatible with the version of this program. - - If compatible, return <*reason_p> == NULL. Otherwise, malloc space, - fill it with a text string explaining how it isn't compatible (or why - we can't tell), and return a pointer to that space as <*reason_p>. ------------------------------------------------------------------------------*/ - int fd; - int nread; - char myversion[32]; - char version[32]; - char full_path[MAXPGPATH]; - - PathSetVersionFilePath(path, full_path); - - sprintf(myversion, "%s.%s\n", PG_RELEASE, PG_VERSION); - - if ((fd = open(full_path, O_RDONLY | PG_BINARY, 0)) == -1) - { - *reason_p = malloc(100 + strlen(full_path)); - sprintf(*reason_p, "File '%s' does not exist or no read permission.", full_path); - } - else - { - nread = read(fd, version, sizeof(version) - 1); - if (nread < 4 || - !isdigit((int)version[0]) || - version[nread - 1] != '\n') - { - *reason_p = malloc(100 + strlen(full_path)); - sprintf(*reason_p, "File '%s' does not have a valid format " - "for a PG_VERSION file.", full_path); - } - else - { - version[nread] = '\0'; - if (strcmp(version, myversion) != 0) - { - *reason_p = malloc(200 + strlen(full_path)); - sprintf(*reason_p, - "Version number in file '%s' should be %s, " - "not %s.", - full_path, myversion, version); - } - else - *reason_p = NULL; - } - close(fd); - } -} - - - -void -SetPgVersion(const char *path, char **reason_p) -{ -/*--------------------------------------------------------------------------- - Create the PG_VERSION file in the directory <path>. - - If we fail, allocate storage, fill it with a text string explaining why, - and return a pointer to that storage as <*reason_p>. If we succeed, - return *reason_p = NULL. ----------------------------------------------------------------------------*/ - int fd; - char version[32]; - char full_path[MAXPGPATH]; - - PathSetVersionFilePath(path, full_path); - - sprintf(version, "%s.%s\n", PG_RELEASE, PG_VERSION); - - fd = open(full_path, O_WRONLY | O_CREAT | O_EXCL | PG_BINARY, 0666); - if (fd < 0) - { - *reason_p = malloc(100 + strlen(full_path)); - sprintf(*reason_p, - "Unable to create file '%s', errno from open(): %s (%d).", - full_path, strerror(errno), errno); - } - else - { - int rc; /* return code from some function we call */ - - rc = write(fd, version, strlen(version)); - if (rc != strlen(version)) - { - *reason_p = malloc(100 + strlen(full_path)); - sprintf(*reason_p, - "Failed to write to file '%s', after it was already " - "open. Errno from write(): %s (%d)", - full_path, strerror(errno), errno); - } - else - *reason_p = NULL; - close(fd); - } -} |