HP 3000 Manuals

TID Function [ ALLBASE/SQL Reference Manual ] MPE/iX 5.5 Documentation


ALLBASE/SQL Reference Manual

TID Function 

Used in a select list, the TID function returns the database address of a
row (or rows for BULK SELECT) of a table or an updatable view.  Used in a
WHERE clause, the TID function takes a row address as input and allows
direct access to a single row of a table or an updatable view.

Scope 

SQL Data Manipulation Statements

SQL Syntax 

     [[Owner.] TableName]
TID ([[Owner.] ViewName ])
     [CorrelationName   ]
Parameters 

TID                     is an 8 byte value representing the database
                        address of a row of a table or an updatable view.
                        A TID contains these elements:

          Table 8-2.  SQLTID Data Internal Format 

---------------------------------------------------------------------------------------------
|                                             |                                             |
|                   Content                   |                 Byte Range                  |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
| Always = 0                                  | 1 thru 2                                    |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
| File Number                                 | 3 thru 4                                    |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
| Page Number                                 | 5 thru 7                                    |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
| Slot                                        | 8                                           |
|                                             |                                             |
---------------------------------------------------------------------------------------------

()                      indicates that the row address is to be obtained
                        from the first table or view specified (in the
                        FROM clause of a SELECT statement or in an UPDATE
                        statement).

Owner                   indicates the owner of the table or view.

TableName               indicates the table from which to obtain the row
                        address.

ViewName                indicates the updatable view from which to obtain
                        row address.

CorrelationName         indicates the correlation name of the table or
                        view from which to obtain the row address.

Description 

   *   The TID function can be used with user tables and updatable views
       and with system base tables and system views.  It cannot be used
       with non-updatable views (those containing JOIN, UNION, GROUP BY,
       HAVING, or aggregate functions) nor on system pseudotables.

   *   In order to assure optimization (through the use of TID access)
       the expressions in the WHERE clause of a single query block must
       be ANDed together.  No OR is allowed.  In addition, only the
       following TID expressions can be optimized:

            [[Owner.] TableName]
       TID ([[Owner.] ViewName ]) =
            [CorrelationName   ]

       {Constant                                         }
       {HostVariableName [[INDICATOR] :IndicatorVariable]}
       {?                                                }
       {:LocalVariable                                   }
       {:ProcedureVariable                               }
   *   Only equal and not equal comparison operators are supported.

   *   The TID function cannot appear in an arithmetic expression.

   *   The TID function can be used in a restricted set of SELECT
       statements.  A valid SELECT statement must not specify the
       following:
          *   An ORDER BY or GROUP BY on the TID function.
          *   A HAVING clause containing the TID function.
          *   The TID function in the select list when a GROUP BY or
              HAVING clause is used.
          *   An aggregate function on the TID function.
          *   Any TID function along with an aggregate function in the
              select list.

Example 

     isql=> SELECT tid(), PartNumber 
     > FROM PurchDB.Parts; 

     select tid(), PartNumber from PurchDB.Parts;
     -----------------------+----------------
     TID                    |PARTNUMBER
     -----------------------+----------------
                       3:3:0|1123-P-01
                       3:3:1|1133-P-01
                       3:3:2|1143-P-01
                       3:3:3|1153-P-01
                       3:3:4|1223-MU-01
                       3:3:5|1233-MU-01
                       3:3:6|1243-MU-01
                       3:3:7|1323-D-01
                       3:3:8|1333-D-01
                       3:3:9|1343-D-01
                      3:3:10|1353-D-01
                      3:3:11|1423-M-01
                      3:3:12|1433-M-01
                      3:3:13|1523-K-01
                      3:3:14|1623-TD-01
                      3:3:15|1723-AD-01
     ---------------------------------------------------------------------------
     First 16 rows have been selected.
     U[p], d[own], l[eft], r[ight], t[op], b[ottom], pr[int] <n>, or e[nd] >



MPE/iX 5.5 Documentation