Versions in this module Expand all Collapse all v0 v0.2.0 Nov 13, 2018 v0.1.14 Nov 6, 2018 Changes in this version + const BkpBlockFlagMask + const BkpBlockForkMask + const BkpBlockHasData + const BkpBlockHasImage + const BkpBlockSameRel + const BkpBlockWillInit + const BkpImageApply + const BkpImageHasHole + const BkpImageIsCompressed + const BlockSize + const RmBTreeID + const RmBrinID + const RmClogID + const RmCommitTsID + const RmDBaseID + const RmGenericID + const RmGinID + const RmGistID + const RmHashID + const RmHeap2ID + const RmHeapID + const RmLogicalMsgID + const RmMultiXactID + const RmNextFreeID + const RmRelMapID + const RmReplOriginID + const RmSPGistID + const RmSeqID + const RmSmgrID + const RmStandbyID + const RmTblSpcID + const RmXactID + const RmXlogID + const WalPageSize + const WalSwitchRecordSize + const XLogRecordAlignment + const XLogRecordHeaderSize + const XLogSwitch + const XlpAllFlags + const XlpBkpRemovable + const XlpFirstIsContRecord + const XlpLongHeader + const XlrBlockIdDataLong + const XlrBlockIdDataShort + const XlrBlockIdOrigin + const XlrCheckConsistency + const XlrInfoMask + const XlrMaxBlockId + const XlrRmgrInfoMask + const XlrSpecialRelUpdate + var ContinuationNotFoundError = errors.New(...) + var InvalidPageHeaderError = errors.New("invalid page header") + var NoPrevRelFileNodeError = errors.New("expected to copy previous rel file node, but not found one") + var PartialPageError = errors.New("the page is partial, maybe it is the last non zero page of .partial file") + var ZeroPageError = errors.New("the whole page consists only of zero bytes") + var ZeroPageHeaderError = errors.New(...) + var ZeroRecordHeaderError = errors.New(...) + type AlignedReader struct + func NewAlignedReader(source io.Reader, alignment int) *AlignedReader + func (reader *AlignedReader) Read(p []byte) (n int, err error) + func (reader *AlignedReader) ReadToAlignment() error + type BlockLocation struct + BlockNo uint32 + RelationFileNode RelFileNode + func NewBlockLocation(spcNode, dbNode, relNode Oid, blockNo uint32) *BlockLocation + type InconsistentBlockDataStateError struct + func (err InconsistentBlockDataStateError) Error() string + type InconsistentBlockImageHoleStateError struct + func (err InconsistentBlockImageHoleStateError) Error() string + type InconsistentBlockImageLengthError struct + func (err InconsistentBlockImageLengthError) Error() string + type InconsistentXLogRecordTotalLengthError struct + func (err InconsistentXLogRecordTotalLengthError) Error() string + type InvalidRecordBlockIdError struct + func (err InvalidRecordBlockIdError) Error() string + type InvalidXLogRecordResourceManagerIDError struct + func (err InvalidXLogRecordResourceManagerIDError) Error() string + type NotEnoughDataToShrinkError struct + func (err NotEnoughDataToShrinkError) Error() string + type Oid uint32 + type OutOfOrderBlockIdError struct + func (err OutOfOrderBlockIdError) Error() string + type RelFileNode struct + DBNode Oid + RelNode Oid + SpcNode Oid + type ShrinkableReader struct + func (reader *ShrinkableReader) Read(p []byte) (n int, err error) + func (reader *ShrinkableReader) Shrink(length int) error + type TimeLineID uint32 + type WalPageReader struct + func NewWalPageReader(walFileReader io.Reader) *WalPageReader + func (reader *WalPageReader) ReadPageData() ([]byte, error) + type WalParser struct + func LoadWalParser(reader io.Reader) (*WalParser, error) + func LoadWalParserFromCurrentRecordData(currentRecordData []byte) *WalParser + func NewWalParser() *WalParser + func (parser *WalParser) GetCurrentRecordData() []byte + func (parser *WalParser) Invalidate() + func (parser *WalParser) ParseRecordsFromPage(reader io.Reader) (prevRecordTail []byte, pageRecords []XLogRecord, err error) + func (parser *WalParser) Save(writer io.Writer) error + type XLogPage struct + Header XLogPageHeader + NextRecordHeadingData []byte + PrevRecordTrailingData []byte + Records []XLogRecord + type XLogPageHeader struct + Info uint16 + Magic uint16 + PageAddress XLogRecordPtr + RemainingDataLen uint32 + TimeLineID TimeLineID + func (pageHeader *XLogPageHeader) HasContinuationRecord() bool + func (pageHeader *XLogPageHeader) IsLong() bool + func (pageHeader *XLogPageHeader) IsValid() bool + type XLogRecord struct + Blocks []XLogRecordBlock + Header XLogRecordHeader + MainData []byte + MainDataLen uint32 + Origin uint16 + func NewXLogRecord(header XLogRecordHeader) *XLogRecord + func ParseXLogRecordFromBytes(data []byte) (*XLogRecord, error) + func (record *XLogRecord) IsZero() bool + type XLogRecordBlock struct + Data []byte + Header XLogRecordBlockHeader + Image []byte + type XLogRecordBlockHeader struct + BlockId uint8 + BlockLocation BlockLocation + DataLength uint16 + ForkFlags uint8 + ImageHeader XLogRecordBlockImageHeader + func NewXLogRecordBlockHeader(blockId uint8) *XLogRecordBlockHeader + func (blockHeader *XLogRecordBlockHeader) ForkNum() uint8 + func (blockHeader *XLogRecordBlockHeader) HasData() bool + func (blockHeader *XLogRecordBlockHeader) HasImage() bool + func (blockHeader *XLogRecordBlockHeader) HasSameRel() bool + func (blockHeader *XLogRecordBlockHeader) WillInit() bool + type XLogRecordBlockImageHeader struct + HoleLength uint16 + HoleOffset uint16 + ImageLength uint16 + Info uint8 + func (imageHeader *XLogRecordBlockImageHeader) ApplyImage() bool + func (imageHeader *XLogRecordBlockImageHeader) HasHole() bool + func (imageHeader *XLogRecordBlockImageHeader) IsCompressed() bool + type XLogRecordHeader struct + Crc32Hash uint32 + Info uint8 + PrevRecordPtr XLogRecordPtr + ResourceManagerID uint8 + TotalRecordLength uint32 + XactID uint32 + type XLogRecordPtr uint64