Support 9.5 and recognize more flags
This follows the CRC32 macro renames in 9.5 (we do not attempt to maintain support for the older versions), adds support for the DB_SHUTDOWNED_IN_RECOVERY dbState, and adds support for missing BTree and GIN page flags. Satoshi Nagayasu
This commit is contained in:
parent
595225c836
commit
10d27139e2
4
Makefile
4
Makefile
@ -1,7 +1,7 @@
|
||||
# View README.pg_filedump first
|
||||
|
||||
# note this must match version macros in pg_filedump.h
|
||||
FD_VERSION=9.3.0
|
||||
FD_VERSION=9.5.0
|
||||
|
||||
CC=gcc
|
||||
CFLAGS=-g -O -Wall -Wmissing-prototypes -Wmissing-declarations
|
||||
@ -19,7 +19,7 @@ DISTFILES= README.pg_filedump Makefile Makefile.contrib \
|
||||
all: pg_filedump
|
||||
|
||||
pg_filedump: pg_filedump.o
|
||||
${CC} ${CFLAGS} -o pg_filedump pg_filedump.o
|
||||
${CC} ${CFLAGS} -o pg_filedump pg_filedump.o -lpgport
|
||||
|
||||
pg_filedump.o: pg_filedump.c
|
||||
${CC} ${CFLAGS} -I${PGSQL_INCLUDE_DIR} pg_filedump.c -c
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
#include "pg_filedump.h"
|
||||
|
||||
#include "utils/pg_crc_tables.h"
|
||||
#include <utils/pg_crc.h>
|
||||
|
||||
/* checksum_impl.h uses Assert, which doesn't work outside the server */
|
||||
#undef Assert
|
||||
@ -1132,6 +1132,8 @@ FormatSpecial()
|
||||
strcat(flagString, "SPLITEND|");
|
||||
if (btreeSection->btpo_flags & BTP_HAS_GARBAGE)
|
||||
strcat(flagString, "HASGARBAGE|");
|
||||
if (btreeSection->btpo_flags & BTP_INCOMPLETE_SPLIT)
|
||||
strcat(flagString, "INCOMPLETESPLIT|");
|
||||
if (strlen(flagString))
|
||||
flagString[strlen(flagString) - 1] = '\0';
|
||||
|
||||
@ -1216,6 +1218,10 @@ FormatSpecial()
|
||||
strcat(flagString, "LIST|");
|
||||
if (ginSection->flags & GIN_LIST_FULLROW)
|
||||
strcat(flagString, "FULLROW|");
|
||||
if (ginSection->flags & GIN_INCOMPLETE_SPLIT)
|
||||
strcat(flagString, "INCOMPLETESPLIT|");
|
||||
if (ginSection->flags & GIN_COMPRESSED)
|
||||
strcat(flagString, "COMPRESSED|");
|
||||
if (strlen(flagString))
|
||||
flagString[strlen(flagString) - 1] = '\0';
|
||||
printf(" GIN Index Section:\n"
|
||||
@ -1340,9 +1346,9 @@ FormatControl()
|
||||
char *dbState;
|
||||
|
||||
/* Compute a local copy of the CRC to verify the one on disk */
|
||||
INIT_CRC32(crcLocal);
|
||||
COMP_CRC32(crcLocal, buffer, offsetof(ControlFileData, crc));
|
||||
FIN_CRC32(crcLocal);
|
||||
INIT_CRC32C(crcLocal);
|
||||
COMP_CRC32C(crcLocal, buffer, offsetof(ControlFileData, crc));
|
||||
FIN_CRC32C(crcLocal);
|
||||
|
||||
/* Grab a readable version of the database state */
|
||||
switch (controlData->state)
|
||||
@ -1353,6 +1359,9 @@ FormatControl()
|
||||
case DB_SHUTDOWNED:
|
||||
dbState = "SHUTDOWNED";
|
||||
break;
|
||||
case DB_SHUTDOWNED_IN_RECOVERY:
|
||||
dbState = "SHUTDOWNED_IN_RECOVERY";
|
||||
break;
|
||||
case DB_SHUTDOWNING:
|
||||
dbState = "SHUTDOWNING";
|
||||
break;
|
||||
@ -1400,7 +1409,7 @@ FormatControl()
|
||||
" Maximum Index Keys: %u\n"
|
||||
" TOAST Chunk Size: %u\n"
|
||||
" Date and Time Type Storage: %s\n\n",
|
||||
EQ_CRC32(crcLocal,
|
||||
EQ_CRC32C(crcLocal,
|
||||
controlData->crc) ? "Correct" : "Not Correct",
|
||||
controlData->pg_control_version,
|
||||
(controlData->pg_control_version == PG_CONTROL_VERSION ?
|
||||
|
@ -22,8 +22,8 @@
|
||||
* Original Author: Patrick Macdonald <patrickm@redhat.com>
|
||||
*/
|
||||
|
||||
#define FD_VERSION "9.4.0" /* version ID of pg_filedump */
|
||||
#define FD_PG_VERSION "PostgreSQL 9.4.x" /* PG version it works with */
|
||||
#define FD_VERSION "9.5.0" /* version ID of pg_filedump */
|
||||
#define FD_PG_VERSION "PostgreSQL 9.5.x" /* PG version it works with */
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user