Container Contents - Teradata Vantage

Teradata® VantageCloud Lake

Deployment
VantageCloud
Edition
Lake
Product
Teradata Vantage
Published
January 2023
ft:locale
en-US
ft:lastEdition
2024-12-11
dita:mapPath
phg1621910019905.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
phg1621910019905

A container must have the same internal partition number and hash bucket for all the column partition values in that container row.

Following are the contents of a container:
  • The row header for a container indicates its internal partition number, hash bucket, and uniqueness value for the first column partition value. The row header is the same as for any other physical row, including physical row length, a rowID, flag byte, and first presence byte. The row header for a container is either 14 or 20 bytes long.

    There is only one row header for a container, using the rowID of the first column partition value as the rowID of the container instead of there being a row header for each column partition value as is the case for all other row types in Vantage. You can determine the rowID of a column partition value by its position within the container.

  • The first presence byte for a container is not used as a presence byte, but to indicate whether autocompression types have been determined for the container.

    If the selected autocompression types, which can include applying user-specified compression, do not reduce the size of the container row, the AC bit in the first presence byte in the row header is set to 0 and the container row is not autocompressed.

  • The number of column partition values, including values for logically deleted rows, is represented by the container and offsets to its sections.
  • An optional series of column partition values for the local value list compression dictionary.

    This is preceded by arrays of offsets if the values are variable length.

  • A series of fixed-length column partition values or a series of variable-length column partition values, each prefixed by a 1-byte or 2-byte length.

    The series can be empty if the autocompression bits do not indicate that any column partition values are present. If this occurs, the column partition values have all been compressed.

  • 0 or more bytes of free space.
  • Optional autocompression presence bits, value length compression bits, algorithmic compression bits, and run length bits, depending on the autocompression techniques used in the container row in reverse order of the series of values.

    A column container must have thousands of column values for fixed-length and short variable-length data types, unless the table is row-partitioned. The values and presence bits consume the available free space, growing closer to each other. If there is insufficient free space, the database expands the row.

For a single-column partition that has COLUMN format (that is, its physical rows are containers), a column partition value is the same as a column value and can have either a fixed or a variable length.

For a multicolumn partition with COLUMN format, a column partition value has a structure similar to a regular row, containing presence and compression bits as 0 or more bytes, offsets to variable-length column values, the values of its fixed-length columns, the values of its uncompressed columns, and the values of its variable-length columns.

A container does not include the following:
  • A row length because the length of a column partition value is handled separately
  • An internal partition number
  • A hash bucket
  • A uniqueness value
  • Presence or compression bits
  • First presence bit

Vantage applies user-specified compression within the multicolumn column partition value and may apply autocompression to the column partition value.

Column partition values for a single-column or multicolumn column partition can have either fixed or variable length. If the column partition value has variable length, the length is not part of the column partition value. Instead, the length is specified in the container row by a preceding length field or by using the difference between offsets if the column partition value is in the local value-list dictionary.

A container includes other information such as offsets to the beginning of the series of column partition values.