PG10 gets rid of controlData->enableIntTimes, remove it in pg_filedump
as well. We could add try adding #ifs to still show it for older major
versions, but given that pg_filedump is cross-version compatible for
dumping the recent major's control files except for this change, it
seems more prudent to simply remove it. We don't show other fields like
float4ByVal either, and pg_controldata is a better tool for control file
inspection anyway, so keep the logic in pg_filedump simple.
Support decoding of 'name' and 'char' types. Also introduce '~'
pseudo-type which just ignores all data left in current tuple during
decoding. These two types allow easily to decode catalog tables and
restore schema of a database even if it's corrupted and PostgreSQL
instance is not starting.
For instance, pg_attribute can be decoded like this:
pg_filedump -D oid,name,oid,int,smallint,~ path/to/segment/1249
Aleksander Alekseev
This feature allows to partially recover data from a given segment file
in format suitable for using in COPY FROM statement. List of supported
data types is currently not full and TOAST is not yet supported, but
it's better than nothing. Hopefully data recovery will be improved in
the future.
Implemented by Aleksander Alekseev, reviewed by Dmitry Ivanov, tested
by Dmitry Ivanov and Grigoriy Smolkin.
A blkno argument passed to pg_checksum_page procedure should be not a
relative block number in a given segment but an absolute block number
in the entire relation. It's the same for the segment number 0, but for
segment number N the difference is RELSEG_SIZE * N.
Aleksander Alekseev
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
Add PostgreSQL Global Development Group to the copyright notices, and
remove a couple of no-longer-appropriate references to Red Hat.
Unfortunately I can't undo Red Hat's choice of GPL licensing, but it is
what it is.
Also reduce the pain of version-stamping by coalescing references to the
version into one pair of macros, and removing not-especially-useful
change logs. IMO the commit logs serve that purpose just as well.