dissect.esedb.table

Module Contents

Classes

Table

Represents a table in an ESE database.

Column

Catalog

Parse and interact with the catalog table.

class dissect.esedb.table.Table(esedb: dissect.esedb.esedb.EseDB, name: str, root_page: int, columns: list[Column] | None = None, indexes: list[dissect.esedb.index.Index] | None = None, record: dissect.esedb.record.Record = None)

Represents a table in an ESE database.

Contains all the relevant metadata of the table, as well as all columns and indices that have been added by the catalog.

Parameters:
  • esedb – An instance of EseDB.

  • name – The table name.

  • root_page – The root page of the table.

  • columns – A list of Column for this table.

  • indexes – A list of Index for this table.

  • record – The Record of this table from the catalog table.

esedb
name
root_page
columns: list[Column] = []
indexes = []
record = None
__repr__() str
property root: dissect.esedb.page.Page

Return the root page of the table.

property lv_page: dissect.esedb.page.Page

Return the long value page of the table.

Raises:

TypeError – If the table has no long values.

column(name: str) Column

Return the column with the given name.

Parameters:

name – The name of the column to return.

Raises:

KeyError – If no column with the given name exists.

property column_names: list[str]

Return a list of all the column names.

index(name: str) dissect.esedb.index.Index

Return the index with the given name.

Parameters:

name – The name of the index to return.

Raises:

KeyError – If no index with the given name exists.

records() collections.abc.Iterator[dissect.esedb.record.Record]

Return an iterator of all the records of the table.

get_long_value(key: bytes) bytes

Retrieve a value from the long value page of the table.

Parameters:

key – The lookup key for the long value.

class dissect.esedb.table.Column(identifier: int, name: str, type_: dissect.esedb.c_esedb.JET_coltyp, record: dissect.esedb.record.Record | None = None)
identifier
name
type
record = None
property offset: int
property is_fixed: bool
property is_variable: bool
property is_tagged: bool
property is_text: bool
property is_binary: bool
property size: int
property default: Any | None
property encoding: dissect.esedb.c_esedb.CODEPAGE | None
property ctype: dissect.esedb.c_esedb.ColumnType
__repr__() str
class dissect.esedb.table.Catalog(esedb: dissect.esedb.esedb.EseDB, root_page: dissect.esedb.page.Page)

Parse and interact with the catalog table.

The catalog is a special table that contains the metadata for all the other tables in the database.

Parameters:
  • esedb – An instance of EseDB.

  • root_page – The root page of the catalog table.

CATALOG_COLUMNS
esedb
root_page
tables = []
table(name: str) Table

Retrieve the table with the given name.

Parameters:

name – The table to retrieve.

Raises:

KeyError – If no table with that name exists.