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, indexes: list[dissect.esedb.index.Index] = 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.

property column_names: list[str]#

Return a list of all the column names.

__repr__() str#

Return repr(self).

root() dissect.esedb.page.Page#

Return the root page of the table.

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.

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() 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)#
property offset: int#
is_fixed() bool#
is_variable() bool#
is_tagged() bool#
is_text() bool#
is_binary() bool#
size() int#
default() Any | None#
encoding() dissect.esedb.c_esedb.CODEPAGE | None#
ctype() dissect.esedb.c_esedb.ColumnType#
__repr__() str#

Return repr(self).

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#
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.