Data-table-pointer is a four-byte field into which is placed the pointer to the first of a collection of lists culminating in data for each Large-object. The length of each entry in each list depends on the value set for the Data-level field: a value of zero indicates that every entry is four-byte pointer; a value of one indicates that every entry is four bytes of zeroes followed by a four-byte pointer.
|In this language...||The variable name for Data-table-pointer is...|
|This routine...||Takes the action for Data-table-pointer...|
|DBCHCL||reads (IRQ; IWPF)|
|Data-table-pointer is used by...||To...|
The first of the collection of lists addressed by the Data-table-pointer is the Data-row-list, which consists of one or more contiguous entries, one per Database row that is involved in the request. The number of entries is either one or the value specified by the DBCAREA USING-data-count option. The Data-row-list may be envisioned as:
Each entry in this list contains a pointer to a Row-LOB-list, consisting of the number entries specified by the DBCALAD Deferred-per-row value. Each entry corresponds to a Large-object that is deferred (either as a column specified AS DEFERRED <BY NAME> in the USING row descriptor of the Teradata SQL statement, or as a DEFERRED datatype in a DataInfoX or StatementInformation parcel for a parameterized SQL statement), and the order of the entries corresponds to the order of rows in either the DBCAREA USING-data-pointer or the USING-data-pointer-vector. The Row-LOB-list may be envisioned as:
Each entry in this list contains a pointer to inline data for the Large-object data, or zeroes if the LOB does not exist. The inline data is always preceded by a standard 8byte Database prefix for LOB datatypes that contains the length, in bytes, of the data, followed by the data if the length is greater than zero. This may be envisioned as:
For example, given the following skeleton SQLstatement,
USING (a INTEGER,b CLOB(1024) AS DEFERRED, c CHAR(100), d BLOB(512) AS DEFERRED BY NAME) INSERT ...
there are two AS DEFERRED Large-objects, so the Row-LOB-list could contain two entries for each Database row affected, each entry would address inline data for that Large-object.