aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/pg_controldata/README.pg_controldata32
-rw-r--r--contrib/pg_controldata/pg_controldata.c147
2 files changed, 0 insertions, 179 deletions
diff --git a/contrib/pg_controldata/README.pg_controldata b/contrib/pg_controldata/README.pg_controldata
deleted file mode 100644
index 85ca0e1467a..00000000000
--- a/contrib/pg_controldata/README.pg_controldata
+++ /dev/null
@@ -1,32 +0,0 @@
-I had a need to read such things as the backend locale and the catalog
-version number from the current database, and couldn't find any existing
-program to do that.
-
-The attached utility produces output like this:
-
-$ pg_controldata
-pg_control version number: 71
-Catalog version number: 200101061
-Database state: IN_PRODUCTION
-pg_control last modified: Sat Mar 10 00:07:55 2001
-Current log file id: 0
-Next log file segment: 9
-Latest checkpoint location: 0/88CAA20
-Prior checkpoint location: 0/70A5D48
-Latest checkpoint's REDO location: 0/88CAA20
-Latest checkpoint's UNDO location: 0/0
-Latest checkpoint's StartUpID: 22
-Latest checkpoint's NextXID: 4711
-Latest checkpoint's NextOID: 444704
-Time of latest checkpoint: Sat Mar 10 00:07:52 2001
-Database block size: 8192
-Blocks per segment of large relation: 131072
-LC_COLLATE: C
-LC_CTYPE: C
-
-
-To access the pg_control file, the program must be run as the Postgres user,
-and PGDATA must be set correctly in its environment.
-
---
-Oliver Elphick <olly@lfix.co.uk>
diff --git a/contrib/pg_controldata/pg_controldata.c b/contrib/pg_controldata/pg_controldata.c
deleted file mode 100644
index b1ac873d241..00000000000
--- a/contrib/pg_controldata/pg_controldata.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * pg_controldata
- *
- * reads the data from $PGDATA/global/pg_control
- *
- * copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
- * licence: BSD
- *
- * $Header: /cvsroot/pgsql/contrib/pg_controldata/Attic/pg_controldata.c,v 1.7 2002/08/14 03:01:43 momjian Exp $
- */
-#include "postgres.h"
-
-#include <unistd.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "catalog/pg_control.h"
-
-
-static const char *
-dbState(DBState state)
-{
- switch (state)
- {
- case DB_STARTUP:
- return "STARTUP";
- case DB_SHUTDOWNED:
- return "SHUTDOWNED";
- case DB_SHUTDOWNING:
- return "SHUTDOWNING";
- case DB_IN_RECOVERY:
- return "IN_RECOVERY";
- case DB_IN_PRODUCTION:
- return "IN_PRODUCTION";
- }
- return "unrecognized status code";
-}
-
-
-int
-main(int argc, char *argv[])
-{
- ControlFileData ControlFile;
- int fd;
- char ControlFilePath[MAXPGPATH];
- char *DataDir;
- crc64 crc;
- char pgctime_str[32];
- char ckpttime_str[32];
-
- if (argc > 1)
- DataDir = argv[1];
- else
- DataDir = getenv("PGDATA");
- if (DataDir == NULL)
- {
- fprintf(stderr, "no data directory specified\n");
- exit(1);
- }
-
- snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
-
- if ((fd = open(ControlFilePath, O_RDONLY)) == -1)
- {
- perror("Failed to open $PGDATA/global/pg_control for reading");
- exit(2);
- }
-
- if (read(fd, &ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData))
- {
- perror("Failed to read $PGDATA/global/pg_control");
- exit(2);
- }
- close(fd);
-
- /* Check the CRC. */
- INIT_CRC64(crc);
- COMP_CRC64(crc,
- (char *) &ControlFile + sizeof(crc64),
- sizeof(ControlFileData) - sizeof(crc64));
- FIN_CRC64(crc);
-
- if (!EQ_CRC64(crc, ControlFile.crc))
- printf("WARNING: Calculated CRC checksum does not match value stored in file.\n"
- "Either the file is corrupt, or it has a different layout than this program\n"
- "is expecting. The results below are untrustworthy.\n\n");
-
- strftime(pgctime_str, 32, "%c",
- localtime(&(ControlFile.time)));
- strftime(ckpttime_str, 32, "%c",
- localtime(&(ControlFile.checkPointCopy.time)));
-
- printf("pg_control version number: %u\n"
- "Catalog version number: %u\n"
- "Database state: %s\n"
- "pg_control last modified: %s\n"
- "Current log file id: %u\n"
- "Next log file segment: %u\n"
- "Latest checkpoint location: %X/%X\n"
- "Prior checkpoint location: %X/%X\n"
- "Latest checkpoint's REDO location: %X/%X\n"
- "Latest checkpoint's UNDO location: %X/%X\n"
- "Latest checkpoint's StartUpID: %u\n"
- "Latest checkpoint's NextXID: %u\n"
- "Latest checkpoint's NextOID: %u\n"
- "Time of latest checkpoint: %s\n"
- "Database block size: %u\n"
- "Blocks per segment of large relation: %u\n"
- "Maximum length of names: %u\n"
- "Maximum number of function arguments: %u\n"
- "Date/time type storage: %s\n"
- "Maximum length of locale name: %u\n"
- "LC_COLLATE: %s\n"
- "LC_CTYPE: %s\n",
-
- ControlFile.pg_control_version,
- ControlFile.catalog_version_no,
- dbState(ControlFile.state),
- pgctime_str,
- ControlFile.logId,
- ControlFile.logSeg,
- ControlFile.checkPoint.xlogid,
- ControlFile.checkPoint.xrecoff,
- ControlFile.prevCheckPoint.xlogid,
- ControlFile.prevCheckPoint.xrecoff,
- ControlFile.checkPointCopy.redo.xlogid,
- ControlFile.checkPointCopy.redo.xrecoff,
- ControlFile.checkPointCopy.undo.xlogid,
- ControlFile.checkPointCopy.undo.xrecoff,
- ControlFile.checkPointCopy.ThisStartUpID,
- ControlFile.checkPointCopy.nextXid,
- ControlFile.checkPointCopy.nextOid,
- ckpttime_str,
- ControlFile.blcksz,
- ControlFile.relseg_size,
- ControlFile.nameDataLen,
- ControlFile.funcMaxArgs,
- (ControlFile.enableIntTimes ?
- "64-bit integers" : "Floating point"),
- ControlFile.localeBuflen,
- ControlFile.lc_collate,
- ControlFile.lc_ctype);
-
- return (0);
-}