D.19 RDB$INDICES
RDB$INDICES stores definitions of both system- and user-defined indexes. The attributes of each column belonging to an index are stored in one row of the table RDB$INDEX_SEGMENTS.
| Column Name | Data Type | Description |
|---|---|---|
RDB$INDEX_NAME |
CHAR(63) |
The unique name of the index specified by the user or automatically generated by the system |
RDB$RELATION_NAME |
CHAR(63) |
The name of the table to which the index belongs. It corresponds to an identifier in RDB$RELATION_NAME.RDB$RELATIONS |
RDB$INDEX_ID |
SMALLINT |
The internal (system) identifier of the index |
RDB$UNIQUE_FLAG |
SMALLINT |
Specifies whether the index is unique: 0 - not unique 1 - unique |
RDB$DESCRIPTION |
BLOB TEXT |
Could store comments concerning the index |
RDB$SEGMENT_COUNT |
SMALLINT |
The number of segments (columns) in the index |
RDB$INDEX_INACTIVE |
SMALLINT |
Indicates whether the index is currently active: 0 - active 1 - inactive |
RDB$INDEX_TYPE |
SMALLINT |
Distinguishes between an expression index (1) and a regular index (0 or null). Not used in databases created before Firebird 2.0; hence, regular indexes in upgraded databases are more more likely to store null in this column |
RDB$FOREIGN_KEY |
CHAR(63) |
The name of the associated Foreign Key constraint, if any |
RDB$SYSTEM_FLAG |
SMALLINT |
Indicates whether the index is system-defined or user-defined: 0 - user-defined 1 or greater - system-defined |
RDB$EXPRESSION_BLR |
BLOB BLR |
Expression for an expression index, written in the binary language representation (BLR), used for calculating the values for the index at runtime. |
RDB$EXPRESSION_SOURCE |
BLOB TEXT |
The source code of the expression for an expression index |
RDB$STATISTICS |
DOUBLE PRECISION |
Stores the last known selectivity of the entire index, calculated by execution of a SET STATISTICS statement over the index. It is also recalculated whenever the database is first opened by the server. The selectivity of each separate segment of the index is stored in RDB$INDEX_SEGMENTS. |
