aboutsummaryrefslogtreecommitdiff
path: root/src/utils/version.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/version.c')
-rw-r--r--src/utils/version.c149
1 files changed, 0 insertions, 149 deletions
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);
- }
-}