Documentation ¶
Index ¶
- Constants
- Variables
- func Decompress7BitCompression(buf []byte) string
- func DlvDebug()
- func DumpPage(ctx *ESEContext, id int64)
- func ParseArray_byte(profile *ESEProfile, reader io.ReaderAt, offset int64, count int) []byte
- func ParseInt16(reader io.ReaderAt, offset int64) int16
- func ParseInt32(reader io.ReaderAt, offset int64) int32
- func ParseInt64(reader io.ReaderAt, offset int64) int64
- func ParseInt8(reader io.ReaderAt, offset int64) int8
- func ParseLongText(buf []byte, flag uint32) string
- func ParseString(reader io.ReaderAt, offset int64, length int64) string
- func ParseTaggedValues(ctx *ESEContext, buffer []byte) map[uint32][]byte
- func ParseTerminatedString(reader io.ReaderAt, offset int64) string
- func ParseTerminatedUTF16String(reader io.ReaderAt, offset int64) string
- func ParseText(reader io.ReaderAt, offset int64, len int64, flags uint32) string
- func ParseUTF16String(reader io.ReaderAt, offset int64, length int64) string
- func ParseUint16(reader io.ReaderAt, offset int64) uint16
- func ParseUint32(reader io.ReaderAt, offset int64) uint32
- func ParseUint64(reader io.ReaderAt, offset int64) uint64
- func ParseUint8(reader io.ReaderAt, offset int64) byte
- func UTF16BytesToUTF8(b []byte, o binary.ByteOrder) string
- func WalkPages(ctx *ESEContext, id int64, ...) error
- func WinFileTime64(reader io.ReaderAt, offset int64) time.Time
- type BufferReaderAt
- type CATALOG_TYPE_COLUMN
- func (self *CATALOG_TYPE_COLUMN) CodePage() uint32
- func (self *CATALOG_TYPE_COLUMN) ColumnFlags() uint32
- func (self *CATALOG_TYPE_COLUMN) ColumnType() *Enumeration
- func (self *CATALOG_TYPE_COLUMN) DebugString() string
- func (self *CATALOG_TYPE_COLUMN) Size() int
- func (self *CATALOG_TYPE_COLUMN) SpaceUsage() uint32
- type CATALOG_TYPE_INDEX
- func (self *CATALOG_TYPE_INDEX) DebugString() string
- func (self *CATALOG_TYPE_INDEX) FatherDataPageNumber() uint32
- func (self *CATALOG_TYPE_INDEX) IndexFlags() uint32
- func (self *CATALOG_TYPE_INDEX) Locale() uint32
- func (self *CATALOG_TYPE_INDEX) Size() int
- func (self *CATALOG_TYPE_INDEX) SpaceUsage() uint32
- type CATALOG_TYPE_LONG_VALUE
- func (self *CATALOG_TYPE_LONG_VALUE) DebugString() string
- func (self *CATALOG_TYPE_LONG_VALUE) FatherDataPageNumber() uint32
- func (self *CATALOG_TYPE_LONG_VALUE) InitialNumberOfPages() uint32
- func (self *CATALOG_TYPE_LONG_VALUE) LVFlags() uint32
- func (self *CATALOG_TYPE_LONG_VALUE) Size() int
- func (self *CATALOG_TYPE_LONG_VALUE) SpaceUsage() uint32
- type CATALOG_TYPE_TABLE
- type Catalog
- type ColumnSpec
- type DBTime
- type ESEContext
- type ESENT_BRANCH_ENTRY
- type ESENT_BRANCH_HEADER
- type ESENT_CATALOG_DATA_DEFINITION_ENTRY
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Column() *CATALOG_TYPE_COLUMN
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) DebugString() string
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) FDPId() uint32
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Identifier() uint32
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Index() *CATALOG_TYPE_INDEX
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) LongValue() *CATALOG_TYPE_LONG_VALUE
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Size() int
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Table() *CATALOG_TYPE_TABLE
- func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Type() *Enumeration
- type ESENT_DATA_DEFINITION_HEADER
- func (self *ESENT_DATA_DEFINITION_HEADER) DebugString() string
- func (self *ESENT_DATA_DEFINITION_HEADER) LastFixedType() int8
- func (self *ESENT_DATA_DEFINITION_HEADER) LastVariableDataType() byte
- func (self *ESENT_DATA_DEFINITION_HEADER) Size() int
- func (self *ESENT_DATA_DEFINITION_HEADER) VariableSizeOffset() uint16
- type ESENT_INDEX_ENTRY
- type ESENT_LEAF_ENTRY
- type ESENT_LEAF_HEADER
- type ESENT_ROOT_HEADER
- func (self *ESENT_ROOT_HEADER) DebugString() string
- func (self *ESENT_ROOT_HEADER) Dump()
- func (self *ESENT_ROOT_HEADER) ExtentSpace() *Enumeration
- func (self *ESENT_ROOT_HEADER) InitialNumberOfPages() uint32
- func (self *ESENT_ROOT_HEADER) ParentFDP() uint32
- func (self *ESENT_ROOT_HEADER) Size() int
- func (self *ESENT_ROOT_HEADER) SpaceTreePageNumber() uint32
- type ESENT_SPACE_TREE_ENTRY
- func (self *ESENT_SPACE_TREE_ENTRY) DebugString() string
- func (self *ESENT_SPACE_TREE_ENTRY) Dump()
- func (self *ESENT_SPACE_TREE_ENTRY) LastPageNumber() uint32
- func (self *ESENT_SPACE_TREE_ENTRY) NumberOfPages() uint32
- func (self *ESENT_SPACE_TREE_ENTRY) PageKeySize() uint16
- func (self *ESENT_SPACE_TREE_ENTRY) Size() int
- type ESENT_SPACE_TREE_HEADER
- type ESEProfile
- func (self *ESEProfile) CATALOG_TYPE_COLUMN(reader io.ReaderAt, offset int64) *CATALOG_TYPE_COLUMN
- func (self *ESEProfile) CATALOG_TYPE_INDEX(reader io.ReaderAt, offset int64) *CATALOG_TYPE_INDEX
- func (self *ESEProfile) CATALOG_TYPE_LONG_VALUE(reader io.ReaderAt, offset int64) *CATALOG_TYPE_LONG_VALUE
- func (self *ESEProfile) CATALOG_TYPE_TABLE(reader io.ReaderAt, offset int64) *CATALOG_TYPE_TABLE
- func (self *ESEProfile) DBTime(reader io.ReaderAt, offset int64) *DBTime
- func (self *ESEProfile) ESENT_BRANCH_ENTRY(reader io.ReaderAt, offset int64) *ESENT_BRANCH_ENTRY
- func (self *ESEProfile) ESENT_BRANCH_HEADER(reader io.ReaderAt, offset int64) *ESENT_BRANCH_HEADER
- func (self *ESEProfile) ESENT_CATALOG_DATA_DEFINITION_ENTRY(reader io.ReaderAt, offset int64) *ESENT_CATALOG_DATA_DEFINITION_ENTRY
- func (self *ESEProfile) ESENT_DATA_DEFINITION_HEADER(reader io.ReaderAt, offset int64) *ESENT_DATA_DEFINITION_HEADER
- func (self *ESEProfile) ESENT_INDEX_ENTRY(reader io.ReaderAt, offset int64) *ESENT_INDEX_ENTRY
- func (self *ESEProfile) ESENT_LEAF_ENTRY(reader io.ReaderAt, offset int64) *ESENT_LEAF_ENTRY
- func (self *ESEProfile) ESENT_LEAF_HEADER(reader io.ReaderAt, offset int64) *ESENT_LEAF_HEADER
- func (self *ESEProfile) ESENT_ROOT_HEADER(reader io.ReaderAt, offset int64) *ESENT_ROOT_HEADER
- func (self *ESEProfile) ESENT_SPACE_TREE_ENTRY(reader io.ReaderAt, offset int64) *ESENT_SPACE_TREE_ENTRY
- func (self *ESEProfile) ESENT_SPACE_TREE_HEADER(reader io.ReaderAt, offset int64) *ESENT_SPACE_TREE_HEADER
- func (self *ESEProfile) FileHeader(reader io.ReaderAt, offset int64) *FileHeader
- func (self *ESEProfile) GUID(reader io.ReaderAt, offset int64) *GUID
- func (self *ESEProfile) JET_LOGTIME(reader io.ReaderAt, offset int64) *JET_LOGTIME
- func (self *ESEProfile) JET_SIGNATURE(reader io.ReaderAt, offset int64) *JET_SIGNATURE
- func (self *ESEProfile) Misc(reader io.ReaderAt, offset int64) *Misc
- func (self *ESEProfile) PageHeader(reader io.ReaderAt, offset int64) *PageHeader
- func (self *ESEProfile) RecordTag(reader io.ReaderAt, offset int64) *RecordTag
- func (self *ESEProfile) Tag(reader io.ReaderAt, offset int64) *Tag
- type Enumeration
- type FileHeader
- func (self *FileHeader) DataBaseTime() *DBTime
- func (self *FileHeader) DebugString() string
- func (self *FileHeader) FileType() *Enumeration
- func (self *FileHeader) FormatRevision() uint32
- func (self *FileHeader) FormatVersion() uint32
- func (self *FileHeader) Magic() uint32
- func (self *FileHeader) PageSize() uint32
- func (self *FileHeader) Signature() *JET_SIGNATURE
- func (self *FileHeader) Size() int
- type Flags
- type GUID
- type JET_LOGTIME
- func (self *JET_LOGTIME) Days() byte
- func (self *JET_LOGTIME) DebugString() string
- func (self *JET_LOGTIME) Hours() byte
- func (self *JET_LOGTIME) Min() byte
- func (self *JET_LOGTIME) Month() byte
- func (self *JET_LOGTIME) Sec() byte
- func (self *JET_LOGTIME) Size() int
- func (self *JET_LOGTIME) Year() byte
- type JET_SIGNATURE
- type Misc
- type PageHeader
- func (self *PageHeader) AvailableDataOffset() uint16
- func (self *PageHeader) AvailableDataSize() uint16
- func (self *PageHeader) AvailablePageTag() uint16
- func (self *PageHeader) DebugString() string
- func (self *PageHeader) EndOffset(ctx *ESEContext) int64
- func (self *PageHeader) FatherPage() uint32
- func (self *PageHeader) Flags() *Flags
- func (self *PageHeader) IsBranch() bool
- func (self *PageHeader) IsLeaf() bool
- func (self *PageHeader) LastModified() *DBTime
- func (self *PageHeader) NextPageNumber() uint32
- func (self *PageHeader) PreviousPageNumber() uint32
- func (self *PageHeader) Size() int
- type RecordTag
- type Table
- type Tag
- type Value
Constants ¶
const ( // Flags on the record header COMPRESSION = 0x02 INLINE_STRING = 0x01 INLINE_STRING_2 = 0x08 LZMA_COMPRESSION = 0x18 // Not supported )
const (
CATALOG_PAGE_NUMBER = 4
)
const (
TAG_COMMON = 4
)
Variables ¶
var ( // General purpose debug statements. Debug = false // Debugging during walk DebugWalk = false )
Functions ¶
func Decompress7BitCompression ¶ added in v0.2.0
func DumpPage ¶
func DumpPage(ctx *ESEContext, id int64)
func ParseArray_byte ¶ added in v0.2.0
func ParseLongText ¶ added in v0.2.0
func ParseTaggedValues ¶
func ParseTaggedValues(ctx *ESEContext, buffer []byte) map[uint32][]byte
Tagged values are used to store sparse values.
The consist of an array of RecordTag, each RecordTag has an Identifier and an offset to the start of its data. The length of the data in each record is determine by the start of the next record.
Example:
00000050 00 01 0c 40 a4 01 21 00 a5 01 23 00 01 6c 00 61 |...@..!...#..l.a| 00000060 00 62 00 5c 00 64 00 63 00 2d 00 31 00 24 00 00 |.b.\.d.c.-.1.$..| 00000070 00 3d 00 f9 00 |.=...|
Slice is 0x50-0x75 00010c40a4012100a5012300016c00610062005c00640063002d003100240000003d00f900 Consumed 0x15 bytes of TAGGED space from 0xc to 0x21 for tag 0x100 Consumed 0x2 bytes of TAGGED space from 0x21 to 0x23 for tag 0x1a4 Consumed 0x2 bytes of TAGGED space from 0x23 to 0x25 for tag 0x1a5
func ParseUTF16String ¶
func WalkPages ¶
func WalkPages(ctx *ESEContext, id int64, cb func(header *PageHeader, page_id int64, value *Value) error) error
WalkPages walks the b tree starting with the page id specified and extracts all tagged values into the callback. The callback may return an error which will cause WalkPages to stop and relay that error to our caller.
Types ¶
type BufferReaderAt ¶
type BufferReaderAt struct {
// contains filtered or unexported fields
}
type CATALOG_TYPE_COLUMN ¶
type CATALOG_TYPE_COLUMN struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*CATALOG_TYPE_COLUMN) CodePage ¶
func (self *CATALOG_TYPE_COLUMN) CodePage() uint32
func (*CATALOG_TYPE_COLUMN) ColumnFlags ¶
func (self *CATALOG_TYPE_COLUMN) ColumnFlags() uint32
func (*CATALOG_TYPE_COLUMN) ColumnType ¶
func (self *CATALOG_TYPE_COLUMN) ColumnType() *Enumeration
func (*CATALOG_TYPE_COLUMN) DebugString ¶
func (self *CATALOG_TYPE_COLUMN) DebugString() string
func (*CATALOG_TYPE_COLUMN) Size ¶
func (self *CATALOG_TYPE_COLUMN) Size() int
func (*CATALOG_TYPE_COLUMN) SpaceUsage ¶
func (self *CATALOG_TYPE_COLUMN) SpaceUsage() uint32
type CATALOG_TYPE_INDEX ¶
type CATALOG_TYPE_INDEX struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*CATALOG_TYPE_INDEX) DebugString ¶
func (self *CATALOG_TYPE_INDEX) DebugString() string
func (*CATALOG_TYPE_INDEX) FatherDataPageNumber ¶
func (self *CATALOG_TYPE_INDEX) FatherDataPageNumber() uint32
func (*CATALOG_TYPE_INDEX) IndexFlags ¶
func (self *CATALOG_TYPE_INDEX) IndexFlags() uint32
func (*CATALOG_TYPE_INDEX) Locale ¶
func (self *CATALOG_TYPE_INDEX) Locale() uint32
func (*CATALOG_TYPE_INDEX) Size ¶
func (self *CATALOG_TYPE_INDEX) Size() int
func (*CATALOG_TYPE_INDEX) SpaceUsage ¶
func (self *CATALOG_TYPE_INDEX) SpaceUsage() uint32
type CATALOG_TYPE_LONG_VALUE ¶
type CATALOG_TYPE_LONG_VALUE struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*CATALOG_TYPE_LONG_VALUE) DebugString ¶
func (self *CATALOG_TYPE_LONG_VALUE) DebugString() string
func (*CATALOG_TYPE_LONG_VALUE) FatherDataPageNumber ¶
func (self *CATALOG_TYPE_LONG_VALUE) FatherDataPageNumber() uint32
func (*CATALOG_TYPE_LONG_VALUE) InitialNumberOfPages ¶
func (self *CATALOG_TYPE_LONG_VALUE) InitialNumberOfPages() uint32
func (*CATALOG_TYPE_LONG_VALUE) LVFlags ¶
func (self *CATALOG_TYPE_LONG_VALUE) LVFlags() uint32
func (*CATALOG_TYPE_LONG_VALUE) Size ¶
func (self *CATALOG_TYPE_LONG_VALUE) Size() int
func (*CATALOG_TYPE_LONG_VALUE) SpaceUsage ¶
func (self *CATALOG_TYPE_LONG_VALUE) SpaceUsage() uint32
type CATALOG_TYPE_TABLE ¶
type CATALOG_TYPE_TABLE struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*CATALOG_TYPE_TABLE) DebugString ¶
func (self *CATALOG_TYPE_TABLE) DebugString() string
func (*CATALOG_TYPE_TABLE) FatherDataPageNumber ¶
func (self *CATALOG_TYPE_TABLE) FatherDataPageNumber() uint32
func (*CATALOG_TYPE_TABLE) Size ¶
func (self *CATALOG_TYPE_TABLE) Size() int
func (*CATALOG_TYPE_TABLE) SpaceUsage ¶
func (self *CATALOG_TYPE_TABLE) SpaceUsage() uint32
type Catalog ¶
type Catalog struct { Tables *ordereddict.Dict // contains filtered or unexported fields }
Catalog represents the database's catalog.
func ReadCatalog ¶
func ReadCatalog(ctx *ESEContext) (*Catalog, error)
type ColumnSpec ¶
type ColumnSpec struct { FDPId uint32 Name string Identifier uint32 Type string Flags uint32 SpaceUsage int64 }
Store a simple struct of column spec for speed.
type DBTime ¶
type DBTime struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*DBTime) DebugString ¶
type ESEContext ¶
type ESEContext struct { Reader io.ReaderAt Profile *ESEProfile PageSize int64 Header *FileHeader Version uint32 Revision uint32 }
func NewESEContext ¶
func NewESEContext(reader io.ReaderAt) (*ESEContext, error)
func (*ESEContext) GetPage ¶
func (self *ESEContext) GetPage(id int64) *PageHeader
type ESENT_BRANCH_ENTRY ¶
type ESENT_BRANCH_ENTRY struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func NewESENT_BRANCH_ENTRY ¶
func NewESENT_BRANCH_ENTRY(ctx *ESEContext, value *Value) *ESENT_BRANCH_ENTRY
NewESENT_BRANCH_ENTRY creates a new ESENT_BRANCH_ENTRY object. Depending on the Tag flags, there may be present a CommonPageKeySize field before the struct. This construstor then positions the struct appropriately.
func (*ESENT_BRANCH_ENTRY) ChildPageNumber ¶
func (self *ESENT_BRANCH_ENTRY) ChildPageNumber() int64
func (*ESENT_BRANCH_ENTRY) DebugString ¶
func (self *ESENT_BRANCH_ENTRY) DebugString() string
func (*ESENT_BRANCH_ENTRY) Dump ¶
func (self *ESENT_BRANCH_ENTRY) Dump()
func (*ESENT_BRANCH_ENTRY) LocalPageKeySize ¶
func (self *ESENT_BRANCH_ENTRY) LocalPageKeySize() uint16
func (*ESENT_BRANCH_ENTRY) Size ¶
func (self *ESENT_BRANCH_ENTRY) Size() int
type ESENT_BRANCH_HEADER ¶
type ESENT_BRANCH_HEADER struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func GetBranch ¶
func GetBranch(ctx *ESEContext, value *Value) *ESENT_BRANCH_HEADER
func (*ESENT_BRANCH_HEADER) CommonPageKey ¶
func (self *ESENT_BRANCH_HEADER) CommonPageKey() string
func (*ESENT_BRANCH_HEADER) DebugString ¶
func (self *ESENT_BRANCH_HEADER) DebugString() string
func (*ESENT_BRANCH_HEADER) Dump ¶
func (self *ESENT_BRANCH_HEADER) Dump()
func (*ESENT_BRANCH_HEADER) Size ¶
func (self *ESENT_BRANCH_HEADER) Size() int
type ESENT_CATALOG_DATA_DEFINITION_ENTRY ¶
type ESENT_CATALOG_DATA_DEFINITION_ENTRY struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Column ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Column() *CATALOG_TYPE_COLUMN
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) DebugString ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) DebugString() string
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) FDPId ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) FDPId() uint32
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Identifier ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Identifier() uint32
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Index ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Index() *CATALOG_TYPE_INDEX
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) LongValue ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) LongValue() *CATALOG_TYPE_LONG_VALUE
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Size ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Size() int
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Table ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Table() *CATALOG_TYPE_TABLE
func (*ESENT_CATALOG_DATA_DEFINITION_ENTRY) Type ¶
func (self *ESENT_CATALOG_DATA_DEFINITION_ENTRY) Type() *Enumeration
type ESENT_DATA_DEFINITION_HEADER ¶
type ESENT_DATA_DEFINITION_HEADER struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_DATA_DEFINITION_HEADER) DebugString ¶
func (self *ESENT_DATA_DEFINITION_HEADER) DebugString() string
func (*ESENT_DATA_DEFINITION_HEADER) LastFixedType ¶
func (self *ESENT_DATA_DEFINITION_HEADER) LastFixedType() int8
func (*ESENT_DATA_DEFINITION_HEADER) LastVariableDataType ¶
func (self *ESENT_DATA_DEFINITION_HEADER) LastVariableDataType() byte
func (*ESENT_DATA_DEFINITION_HEADER) Size ¶
func (self *ESENT_DATA_DEFINITION_HEADER) Size() int
func (*ESENT_DATA_DEFINITION_HEADER) VariableSizeOffset ¶
func (self *ESENT_DATA_DEFINITION_HEADER) VariableSizeOffset() uint16
type ESENT_INDEX_ENTRY ¶
type ESENT_INDEX_ENTRY struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_INDEX_ENTRY) DebugString ¶
func (self *ESENT_INDEX_ENTRY) DebugString() string
func (*ESENT_INDEX_ENTRY) Dump ¶
func (self *ESENT_INDEX_ENTRY) Dump()
func (*ESENT_INDEX_ENTRY) RecordPageKey ¶
func (self *ESENT_INDEX_ENTRY) RecordPageKey() string
func (*ESENT_INDEX_ENTRY) Size ¶
func (self *ESENT_INDEX_ENTRY) Size() int
type ESENT_LEAF_ENTRY ¶
type ESENT_LEAF_ENTRY struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func NewESENT_LEAF_ENTRY ¶
func NewESENT_LEAF_ENTRY(ctx *ESEContext, value *Value) *ESENT_LEAF_ENTRY
NewESENT_LEAF_ENTRY creates a new ESENT_LEAF_ENTRY object. Depending on the Tag flags, there may be present a CommonPageKeySize field before the struct. This constructor then positions the struct appropriately.
func (*ESENT_LEAF_ENTRY) CommonPageKeySize ¶
func (self *ESENT_LEAF_ENTRY) CommonPageKeySize() uint16
func (*ESENT_LEAF_ENTRY) DebugString ¶
func (self *ESENT_LEAF_ENTRY) DebugString() string
func (*ESENT_LEAF_ENTRY) Dump ¶
func (self *ESENT_LEAF_ENTRY) Dump()
func (*ESENT_LEAF_ENTRY) EntryData ¶
func (self *ESENT_LEAF_ENTRY) EntryData() int64
func (*ESENT_LEAF_ENTRY) LocalPageKeySize ¶
func (self *ESENT_LEAF_ENTRY) LocalPageKeySize() uint16
func (*ESENT_LEAF_ENTRY) Size ¶
func (self *ESENT_LEAF_ENTRY) Size() int
type ESENT_LEAF_HEADER ¶
type ESENT_LEAF_HEADER struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_LEAF_HEADER) CommonPageKey ¶
func (self *ESENT_LEAF_HEADER) CommonPageKey() string
func (*ESENT_LEAF_HEADER) DebugString ¶
func (self *ESENT_LEAF_HEADER) DebugString() string
func (*ESENT_LEAF_HEADER) Dump ¶
func (self *ESENT_LEAF_HEADER) Dump()
func (*ESENT_LEAF_HEADER) Size ¶
func (self *ESENT_LEAF_HEADER) Size() int
type ESENT_ROOT_HEADER ¶
type ESENT_ROOT_HEADER struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func GetRoot ¶
func GetRoot(ctx *ESEContext, value *Value) *ESENT_ROOT_HEADER
func (*ESENT_ROOT_HEADER) DebugString ¶
func (self *ESENT_ROOT_HEADER) DebugString() string
func (*ESENT_ROOT_HEADER) Dump ¶
func (self *ESENT_ROOT_HEADER) Dump()
func (*ESENT_ROOT_HEADER) ExtentSpace ¶
func (self *ESENT_ROOT_HEADER) ExtentSpace() *Enumeration
func (*ESENT_ROOT_HEADER) InitialNumberOfPages ¶
func (self *ESENT_ROOT_HEADER) InitialNumberOfPages() uint32
func (*ESENT_ROOT_HEADER) ParentFDP ¶
func (self *ESENT_ROOT_HEADER) ParentFDP() uint32
func (*ESENT_ROOT_HEADER) Size ¶
func (self *ESENT_ROOT_HEADER) Size() int
func (*ESENT_ROOT_HEADER) SpaceTreePageNumber ¶
func (self *ESENT_ROOT_HEADER) SpaceTreePageNumber() uint32
type ESENT_SPACE_TREE_ENTRY ¶
type ESENT_SPACE_TREE_ENTRY struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_SPACE_TREE_ENTRY) DebugString ¶
func (self *ESENT_SPACE_TREE_ENTRY) DebugString() string
func (*ESENT_SPACE_TREE_ENTRY) Dump ¶
func (self *ESENT_SPACE_TREE_ENTRY) Dump()
func (*ESENT_SPACE_TREE_ENTRY) LastPageNumber ¶
func (self *ESENT_SPACE_TREE_ENTRY) LastPageNumber() uint32
func (*ESENT_SPACE_TREE_ENTRY) NumberOfPages ¶
func (self *ESENT_SPACE_TREE_ENTRY) NumberOfPages() uint32
func (*ESENT_SPACE_TREE_ENTRY) PageKeySize ¶
func (self *ESENT_SPACE_TREE_ENTRY) PageKeySize() uint16
func (*ESENT_SPACE_TREE_ENTRY) Size ¶
func (self *ESENT_SPACE_TREE_ENTRY) Size() int
type ESENT_SPACE_TREE_HEADER ¶
type ESENT_SPACE_TREE_HEADER struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*ESENT_SPACE_TREE_HEADER) DebugString ¶
func (self *ESENT_SPACE_TREE_HEADER) DebugString() string
func (*ESENT_SPACE_TREE_HEADER) Dump ¶
func (self *ESENT_SPACE_TREE_HEADER) Dump()
func (*ESENT_SPACE_TREE_HEADER) Size ¶
func (self *ESENT_SPACE_TREE_HEADER) Size() int
type ESEProfile ¶
type ESEProfile struct { Off_CATALOG_TYPE_COLUMN_ColumnType int64 Off_CATALOG_TYPE_COLUMN_SpaceUsage int64 Off_CATALOG_TYPE_COLUMN_ColumnFlags int64 Off_CATALOG_TYPE_COLUMN_CodePage int64 Off_CATALOG_TYPE_INDEX_FatherDataPageNumber int64 Off_CATALOG_TYPE_INDEX_SpaceUsage int64 Off_CATALOG_TYPE_INDEX_IndexFlags int64 Off_CATALOG_TYPE_INDEX_Locale int64 Off_CATALOG_TYPE_LONG_VALUE_FatherDataPageNumber int64 Off_CATALOG_TYPE_LONG_VALUE_SpaceUsage int64 Off_CATALOG_TYPE_LONG_VALUE_LVFlags int64 Off_CATALOG_TYPE_LONG_VALUE_InitialNumberOfPages int64 Off_CATALOG_TYPE_TABLE_FatherDataPageNumber int64 Off_CATALOG_TYPE_TABLE_SpaceUsage int64 Off_DBTime_Hours int64 Off_DBTime_Min int64 Off_DBTime_Sec int64 Off_ESENT_BRANCH_ENTRY_LocalPageKeySize int64 Off_ESENT_BRANCH_HEADER_CommonPageKey int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_FDPId int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_Type int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_Identifier int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_Column int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_Table int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_Index int64 Off_ESENT_CATALOG_DATA_DEFINITION_ENTRY_LongValue int64 Off_ESENT_DATA_DEFINITION_HEADER_LastFixedType int64 Off_ESENT_DATA_DEFINITION_HEADER_LastVariableDataType int64 Off_ESENT_DATA_DEFINITION_HEADER_VariableSizeOffset int64 Off_ESENT_INDEX_ENTRY_RecordPageKey int64 Off_ESENT_LEAF_ENTRY_CommonPageKeySize int64 Off_ESENT_LEAF_ENTRY_LocalPageKeySize int64 Off_ESENT_LEAF_HEADER_CommonPageKey int64 Off_ESENT_ROOT_HEADER_InitialNumberOfPages int64 Off_ESENT_ROOT_HEADER_ParentFDP int64 Off_ESENT_ROOT_HEADER_ExtentSpace int64 Off_ESENT_ROOT_HEADER_SpaceTreePageNumber int64 Off_ESENT_SPACE_TREE_ENTRY_PageKeySize int64 Off_ESENT_SPACE_TREE_ENTRY_LastPageNumber int64 Off_ESENT_SPACE_TREE_ENTRY_NumberOfPages int64 Off_FileHeader_Magic int64 Off_FileHeader_FormatVersion int64 Off_FileHeader_FormatRevision int64 Off_FileHeader_FileType int64 Off_FileHeader_DataBaseTime int64 Off_FileHeader_Signature int64 Off_FileHeader_PageSize int64 Off_GUID_Data1 int64 Off_GUID_Data2 int64 Off_GUID_Data3 int64 Off_GUID_Data4 int64 Off_JET_LOGTIME_Sec int64 Off_JET_LOGTIME_Min int64 Off_JET_LOGTIME_Hours int64 Off_JET_LOGTIME_Days int64 Off_JET_LOGTIME_Month int64 Off_JET_LOGTIME_Year int64 Off_JET_SIGNATURE_Creation int64 Off_JET_SIGNATURE_CreatorMachine int64 Off_Misc_Misc int64 Off_Misc_Misc2 int64 Off_Misc_Misc3 int64 Off_Misc_Misc5 int64 Off_Misc_Misc4 int64 Off_PageHeader_LastModified int64 Off_PageHeader_PreviousPageNumber int64 Off_PageHeader_NextPageNumber int64 Off_PageHeader_FatherPage int64 Off_PageHeader_AvailableDataSize int64 Off_PageHeader_AvailableDataOffset int64 Off_PageHeader_AvailablePageTag int64 Off_PageHeader_Flags int64 Off_RecordTag_Identifier int64 Off_RecordTag_DataOffset int64 Off_RecordTag_Flags int64 Off_Tag__ValueSize int64 Off_Tag__ValueOffset int64 }
func NewESEProfile ¶
func NewESEProfile() *ESEProfile
func (*ESEProfile) CATALOG_TYPE_COLUMN ¶
func (self *ESEProfile) CATALOG_TYPE_COLUMN(reader io.ReaderAt, offset int64) *CATALOG_TYPE_COLUMN
func (*ESEProfile) CATALOG_TYPE_INDEX ¶
func (self *ESEProfile) CATALOG_TYPE_INDEX(reader io.ReaderAt, offset int64) *CATALOG_TYPE_INDEX
func (*ESEProfile) CATALOG_TYPE_LONG_VALUE ¶
func (self *ESEProfile) CATALOG_TYPE_LONG_VALUE(reader io.ReaderAt, offset int64) *CATALOG_TYPE_LONG_VALUE
func (*ESEProfile) CATALOG_TYPE_TABLE ¶
func (self *ESEProfile) CATALOG_TYPE_TABLE(reader io.ReaderAt, offset int64) *CATALOG_TYPE_TABLE
func (*ESEProfile) DBTime ¶
func (self *ESEProfile) DBTime(reader io.ReaderAt, offset int64) *DBTime
func (*ESEProfile) ESENT_BRANCH_ENTRY ¶
func (self *ESEProfile) ESENT_BRANCH_ENTRY(reader io.ReaderAt, offset int64) *ESENT_BRANCH_ENTRY
func (*ESEProfile) ESENT_BRANCH_HEADER ¶
func (self *ESEProfile) ESENT_BRANCH_HEADER(reader io.ReaderAt, offset int64) *ESENT_BRANCH_HEADER
func (*ESEProfile) ESENT_CATALOG_DATA_DEFINITION_ENTRY ¶
func (self *ESEProfile) ESENT_CATALOG_DATA_DEFINITION_ENTRY(reader io.ReaderAt, offset int64) *ESENT_CATALOG_DATA_DEFINITION_ENTRY
func (*ESEProfile) ESENT_DATA_DEFINITION_HEADER ¶
func (self *ESEProfile) ESENT_DATA_DEFINITION_HEADER(reader io.ReaderAt, offset int64) *ESENT_DATA_DEFINITION_HEADER
func (*ESEProfile) ESENT_INDEX_ENTRY ¶
func (self *ESEProfile) ESENT_INDEX_ENTRY(reader io.ReaderAt, offset int64) *ESENT_INDEX_ENTRY
func (*ESEProfile) ESENT_LEAF_ENTRY ¶
func (self *ESEProfile) ESENT_LEAF_ENTRY(reader io.ReaderAt, offset int64) *ESENT_LEAF_ENTRY
func (*ESEProfile) ESENT_LEAF_HEADER ¶
func (self *ESEProfile) ESENT_LEAF_HEADER(reader io.ReaderAt, offset int64) *ESENT_LEAF_HEADER
func (*ESEProfile) ESENT_ROOT_HEADER ¶
func (self *ESEProfile) ESENT_ROOT_HEADER(reader io.ReaderAt, offset int64) *ESENT_ROOT_HEADER
func (*ESEProfile) ESENT_SPACE_TREE_ENTRY ¶
func (self *ESEProfile) ESENT_SPACE_TREE_ENTRY(reader io.ReaderAt, offset int64) *ESENT_SPACE_TREE_ENTRY
func (*ESEProfile) ESENT_SPACE_TREE_HEADER ¶
func (self *ESEProfile) ESENT_SPACE_TREE_HEADER(reader io.ReaderAt, offset int64) *ESENT_SPACE_TREE_HEADER
func (*ESEProfile) FileHeader ¶
func (self *ESEProfile) FileHeader(reader io.ReaderAt, offset int64) *FileHeader
func (*ESEProfile) GUID ¶ added in v0.2.0
func (self *ESEProfile) GUID(reader io.ReaderAt, offset int64) *GUID
func (*ESEProfile) JET_LOGTIME ¶
func (self *ESEProfile) JET_LOGTIME(reader io.ReaderAt, offset int64) *JET_LOGTIME
func (*ESEProfile) JET_SIGNATURE ¶
func (self *ESEProfile) JET_SIGNATURE(reader io.ReaderAt, offset int64) *JET_SIGNATURE
func (*ESEProfile) PageHeader ¶
func (self *ESEProfile) PageHeader(reader io.ReaderAt, offset int64) *PageHeader
type Enumeration ¶
func (Enumeration) DebugString ¶
func (self Enumeration) DebugString() string
type FileHeader ¶
type FileHeader struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*FileHeader) DataBaseTime ¶
func (self *FileHeader) DataBaseTime() *DBTime
func (*FileHeader) DebugString ¶
func (self *FileHeader) DebugString() string
func (*FileHeader) FileType ¶
func (self *FileHeader) FileType() *Enumeration
func (*FileHeader) FormatRevision ¶
func (self *FileHeader) FormatRevision() uint32
func (*FileHeader) FormatVersion ¶
func (self *FileHeader) FormatVersion() uint32
func (*FileHeader) Magic ¶
func (self *FileHeader) Magic() uint32
func (*FileHeader) PageSize ¶
func (self *FileHeader) PageSize() uint32
func (*FileHeader) Signature ¶
func (self *FileHeader) Signature() *JET_SIGNATURE
func (*FileHeader) Size ¶
func (self *FileHeader) Size() int
type Flags ¶
func (Flags) DebugString ¶
type GUID ¶ added in v0.2.0
type GUID struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*GUID) DebugString ¶ added in v0.2.0
type JET_LOGTIME ¶
type JET_LOGTIME struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*JET_LOGTIME) Days ¶
func (self *JET_LOGTIME) Days() byte
func (*JET_LOGTIME) DebugString ¶
func (self *JET_LOGTIME) DebugString() string
func (*JET_LOGTIME) Hours ¶
func (self *JET_LOGTIME) Hours() byte
func (*JET_LOGTIME) Min ¶
func (self *JET_LOGTIME) Min() byte
func (*JET_LOGTIME) Month ¶
func (self *JET_LOGTIME) Month() byte
func (*JET_LOGTIME) Sec ¶
func (self *JET_LOGTIME) Sec() byte
func (*JET_LOGTIME) Size ¶
func (self *JET_LOGTIME) Size() int
func (*JET_LOGTIME) Year ¶
func (self *JET_LOGTIME) Year() byte
type JET_SIGNATURE ¶
type JET_SIGNATURE struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*JET_SIGNATURE) Creation ¶
func (self *JET_SIGNATURE) Creation() *JET_LOGTIME
func (*JET_SIGNATURE) CreatorMachine ¶
func (self *JET_SIGNATURE) CreatorMachine() string
func (*JET_SIGNATURE) DebugString ¶
func (self *JET_SIGNATURE) DebugString() string
func (*JET_SIGNATURE) Size ¶
func (self *JET_SIGNATURE) Size() int
type Misc ¶
type Misc struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*Misc) DebugString ¶
type PageHeader ¶
type PageHeader struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*PageHeader) AvailableDataOffset ¶
func (self *PageHeader) AvailableDataOffset() uint16
func (*PageHeader) AvailableDataSize ¶
func (self *PageHeader) AvailableDataSize() uint16
func (*PageHeader) AvailablePageTag ¶
func (self *PageHeader) AvailablePageTag() uint16
func (*PageHeader) DebugString ¶
func (self *PageHeader) DebugString() string
func (*PageHeader) EndOffset ¶
func (self *PageHeader) EndOffset(ctx *ESEContext) int64
func (*PageHeader) FatherPage ¶
func (self *PageHeader) FatherPage() uint32
func (*PageHeader) Flags ¶
func (self *PageHeader) Flags() *Flags
func (*PageHeader) IsBranch ¶
func (self *PageHeader) IsBranch() bool
func (*PageHeader) IsLeaf ¶
func (self *PageHeader) IsLeaf() bool
func (*PageHeader) LastModified ¶
func (self *PageHeader) LastModified() *DBTime
func (*PageHeader) NextPageNumber ¶
func (self *PageHeader) NextPageNumber() uint32
func (*PageHeader) PreviousPageNumber ¶
func (self *PageHeader) PreviousPageNumber() uint32
func (*PageHeader) Size ¶
func (self *PageHeader) Size() int
type RecordTag ¶
type RecordTag struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*RecordTag) DataOffset ¶
func (*RecordTag) DebugString ¶
func (*RecordTag) Identifier ¶
type Table ¶
type Table struct { Header *CATALOG_TYPE_TABLE FatherDataPageNumber uint32 Name string Columns []*ColumnSpec Indexes *ordereddict.Dict LongValues *ordereddict.Dict // contains filtered or unexported fields }
type Tag ¶
type Tag struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile }
func (*Tag) DebugString ¶
func (*Tag) ValueOffset ¶
func (self *Tag) ValueOffset(ctx *ESEContext) uint16
func (*Tag) ValueSize ¶
func (self *Tag) ValueSize(ctx *ESEContext) uint16
type Value ¶
func GetPageValues ¶
func GetPageValues(ctx *ESEContext, header *PageHeader, id int64) []*Value