Order-table-pointer is a four-byte field into which is placed the pointer to the Order-table.
|In this language...||The variable name for Order-table-pointer is...|
|This routine...||Takes the action for Order-table-pointer...|
|DBCHCL||reads (IRQ; IWPF)|
|Order-table-pointer is used by...||To...|
The Order-table consists of the number of 4byte 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 entries in the DBCALAD Row-LOB-list. Each entry contains the relative position, numbered from 1, of either a column in the USING row descriptor of the Teradata SQL statement, or a DataInfo, DataInfoX or StatementInformation parcel for a parameterized SQL statement. While other datatypes also have relative positions, their numbers never appear in DBCALAD Row-LOB-list. For example, given the following skeleton SQL statement,
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 Order-table could contain a maximum of two entries. One of these entries would contain 2 and the other 4. While the numbers in the Order-table entries need not be in ascending order, the only reason not to do so would be to allow the order of entries in the Row-LOB-list to differ from the order of the deferred Large-objects in the SQL, there is no likely justification for the two orders differing, so the values in the entries are normally in ascending numeric order.