Table Header Components - Teradata Database

Teradata Database Design

Teradata Database
Release Number
English (United States)
Last Update
Product Category

Table Header Components

The following topics describe the individual fields of a Teradata Database table header as it is stored on disk. The maximum length for each field is the value for a thin table header.

Row Header

See “Base Table Row Format” on page 671 for a description of Teradata Database row headers.

Field 1

Fixed length. Includes:

  • Row 1 header.
  • Offset array for the variable length columns in the table header, Used to locate those columns.
  • Table header row format version.
  • Internal ID of the database to which this table belongs.
  • Internal ID of the database to which space for this table is charged.
  • Table creation timestamp.
  • Last table update timestamp.
  • Last table archive timestamp.
  • Primary index flag.
  • Table structure version. Updated each time the table description is modified
  • Table structure version for host utilities. Incremented each time a structural change is made that makes a database dump obsolete.
  • Number of backup tables associated with this table.
  • Internal ID of the permanent journal table.
  • Table kind. Describes whether the table is permanent, temporary, volatile, or a join index. For temporary tables, volatile tables, and join indexes, also describes preserve‑on‑commit and transient journaling characteristics.
  • Journal type:
  • After
  • Audit
  • Both
  • Before
  • None
  • Protection type:
  • Fallback
  • Log
  • None
  • User journal flag. Describes whether the table is a user‑defined journal or not.
  • Hash flag,. Describes whether table is hashed or not.
  • Dropped flag. Set TRUE from the time the AMP receives a Drop Table step until the table is dropped in the End Transaction step. Otherwise set FALSE.
  • DDL change flag.Prevents attempts to update the table after its DDL has changed. Set TRUE when table DDL is modified.
  • Host utility table dump sets the flag FALSE.

  • Byte count of the number of USIs defined on the table.
  • Host character set at the time the table was created.
  • Number of parent tables referenced by this table.
  • Number of child tables referencing this table.
  • Merge block ratio for the table.
  • Merge block ratio validity. Indicates whether the specified merge block ratio for the table is valid or unspecified.
  • Data block size for the table in bytes.
  • Data block size validity. Indicates whether the specified data block size for the table is valid or unspecified.
  • Percent free space for the table.
  • Percent free space validity. Indicates whether the specified percent free space for the table is valid or unspecified.
  • Disk I/O integrity checksum. Used to verify the integrity of user tables, hash indexes, join indexes, and secondary indexes.
  • Message class of primary step.
  • Message kind of primary step.
  • Message class of secondary step.
  • Message kind of secondary step.
  • Host ID.
  • Session number.
  • Request number.
  • Transaction number.
  • Table ID of base temporary table. Used only for materialized temporary tables.
  • Internal ID for primary key index.
  • Restart flag. Tracks restart and non‑restart cases of restore jobs during build phase.
  • Row format, which specifies whether current environment is packed64 format or aligned row format.
  • Dummy space.
  • List of index descriptors for the table in Index ID order, one per primary and secondary index defined on the table.
  • Row 1 length. Duplicate specification of the length of row 1.
  • Field 2

    Variable length.

    Maximum length: 47,784 bytes.

    Contains the primary index descriptor and all secondary index descriptors for the table.

    Field 3

    Not used.

    Field 4

    Variable length.

    Maximum length: 423 bytes.

    Contains MultiLoad, FastLoad, Archive/Recovery, and table rebuild information.

    Field 4 is always present for permanent journal tables, but is context‑dependent for non-journal tables.

    Field 5

    Variable length.

    Maximum length: 56,350 bytes.

    Contains the following table column descriptors:

  • Internal ID of the first column in the table.
  • Number of varying length columns in the table.
  • Number of presence bits in each row. The upper limit for the number of presence and compress bits per row is 89,991.
  • Flag to indicate whether the table header is thin or fat. Used to determine whether the compressed value offsets list contains actual addresses or must be left‑shifted to extract actual addresses.
  • Compression flag. Specifies whether the table has compressible columns or not.
  • Offset in the row to the presence bit array. Presence octet locations are determined by dividing the presence bit position by 8.
  • Offset in the row to the first byte past the presence bit array.
  • Number of columns in the table.
  • Index into the field descriptor array to the first compressible column. If no columns are compressed, then the value points to the first varying length column in the row.
  • Offset from the beginning of the row to the first optional (varying or compressible) data.
  • Index of the field descriptor for the first physical column in the row.
  • Field 5 type:
  • Table descriptor with row hash and unique rowID.
  • Index descriptor with row hash and unique rowID in the index.
  • Table descriptor with a PPI rowID.
  • Index descriptor with a PPI rowID in the index.
  • Row format. Specifies whether current environment is packed64 format or aligned row format.
  • Duplicate rows flag:
  • Dictionary and non‑ANSI/ISO tables.
  • ANSI/ISO tables without unique indexes.
  • ANSI/ISO tables with unique indexes.
  • Offset to system code to build rows and to calculate PPI internal partition numbers.
  • Field descriptors array.
  • Compressed values and UDT contexts. Compressed values and a UDT context are stored just beyond the Field 5 descriptors and PPI-related system code. The stored values are sorted first in ascending order of their binary values, then in descending order of their field size, and aligned on 2-byte boundaries. The stored UDT context is its autogenerated UDF constructor context. The area contains a 76‑byte UDT context for every column typed with a UDT. This places a practical upper limit of approximately 1,600 UDT columns per table.
  • System code for building rows, including code to calculate partition numbers for the rows of row-partitioned tables. The row-partition-related system code is stored after the Field 5 descriptors, and just before the compressed values, if any have been defined.
  • UDT name stored as a variable length string of up to 128 Unicode characters.
  • Field 6

    Variable length. Usually null.

    Maximum length: 118 bytes.

    Contains restartable sort and ALTER TABLE information.

    Field 7

    Variable length.

    Maximum length: 94,592 bytes.


  • Up to 128 reference index descriptors: 64 from a parent table to child tables and 64 from child tables to a parent table.See “Sizing a Reference Index Subtable” on page 773 for a description of reference indexes.
  • List of the names of unresolved child tables from referential integrity constraint specifications as a variable length string of up to 128 Unicode characters.
  • Field 8

    Variable length.

    Maximum length: 520 bytes.

    Contains BLOB, CLOB, and XML descriptors.

    Field 9

    Variable length.

    Maximum length: 518 bytes.


  • Length of, and offset to, the database name.
  • Length of, and offset to, the table name.
  • Database name (up to 128 Unicode characters).
  • Table name (up to 128 Unicode characters).
  • The database and table names are in the format databasename.tablename.