INFORMATION.SCHEMA.INDEXES
Class INFORMATION.SCHEMA.INDEXES Extends %Library.Persistent [ ClassType = persistent, Final, Owner = {_PUBLIC}, SqlRowIdPrivate, SqlTableName = INDEXES, StorageStrategy = SQLStorage, System = 4 ]
Returns one row for each indexed field in the current namespace for tables that can be accessed by the current user in the current namespace.
Parameters
READONLY
Parameter READONLY = 1;
Properties
SchemaExact
Property SchemaExact As %String(MAXLEN = 128) [ Internal, Private, Required, SqlColumnNumber = 20 ];
TableExact
Property TableExact As %String(MAXLEN = 128) [ Internal, Private, Required, SqlColumnNumber = 21 ];
Sequence
Property Sequence As %Integer [ Internal, Private, Required, SqlColumnNumber = 22 ];
SystemTable
Property SystemTable As %Integer [ Calculated, Internal, Private, Required, SqlColumnNumber = 23, SqlComputeCode = { set {*}=$s($e({TABLE_SCHEMA})="%"||({TABLE_SCHEMA}="INFORMATION_SCHEMA"):1,1:0) }, SqlComputed ];
Is the table a system table (1 or 0)
TABLECATALOG
Property TABLECATALOG As %String(MAXLEN = 128) [ Calculated, SqlColumnNumber = 2, SqlComputeCode = { set {*}="" }, SqlComputed, SqlFieldName = TABLE_CATALOG ];
Table qualifier - always NULL in InterSystems IRIS.
TABLESCHEMA
Property TABLESCHEMA As %String(COLLATION = "Upper", MAXLEN = 128) [ Required, SqlColumnNumber = 3, SqlFieldName = TABLE_SCHEMA ];
Name of schema that contains the table.
TABLENAME
Property TABLENAME As %String(COLLATION = "Upper", MAXLEN = 128) [ Required, SqlColumnNumber = 4, SqlFieldName = TABLE_NAME ];
Name of the table.
NONUNIQUE
Property NONUNIQUE As %SmallInt [ SqlColumnNumber = 5, SqlFieldName = NON_UNIQUE ];
NON_UNIQUE indicates whether or not the index is a unique index. Returns one of the following values:
- 1 - If the index values can be nonunique (not a unique index).
- 0 - if the index values must be unique (a unique index).
INDEXCATALOG
Property INDEXCATALOG As %String(MAXLEN = 128) [ Calculated, SqlColumnNumber = 6, SqlComputeCode = { set {*}=""}, SqlComputed, SqlFieldName = INDEX_CATALOG ];
Table qualifier - always NULL in InterSystems IRIS.
INDEXSCHEMA
Property INDEXSCHEMA As %String(COLLATION = "Upper", MAXLEN = 128) [ Calculated, SqlColumnNumber = 7, SqlComputeCode = { set {*}={TABLE_SCHEMA} }, SqlComputed, SqlFieldName = INDEX_SCHEMA ];
Name of schema that contains the index. Always the same as the TABLE_SCHEMA.
INDEXNAME
Property INDEXNAME As %String(COLLATION = "Upper", MAXLEN = 128) [ SqlColumnNumber = 8, SqlFieldName = INDEX_NAME ];
Name of the index.
ORDINALPOSITION
Property ORDINALPOSITION As %SmallInt [ SqlColumnNumber = 9, SqlFieldName = ORDINAL_POSITION ];
Column sequence number in index (starting with 1).
COLUMNNAME
Property COLUMNNAME As %String(COLLATION = "Upper", MAXLEN = 128) [ SqlColumnNumber = 10, SqlFieldName = COLUMN_NAME ];
Name of column in the index.
ASCORDESC
Property ASCORDESC As %String(COLLATION = "Upper", MAXLEN = 1) [ SqlColumnNumber = 11, SqlFieldName = ASC_OR_DESC ];
Sort sequence for the column: "A" for ascending; "D" for descending. InterSystems IRIS only supports "A" sort sequences.
PRIMARYKEY
Property PRIMARYKEY As %SmallInt [ Calculated, SqlColumnNumber = 12, SqlComputeCode = {
PRIMARY_KEY indicates whether or not the index is a primary key index. Returns one of the following values:
- 1 - If the index values are the primary key values.
- 0 - if the index values are not the primary key values.
MAPSTATUS
Property MAPSTATUS As %String(COLLATION = "SqlUpper", MAXLEN = 10) [ Calculated, SqlColumnNumber = 13, SqlComputeCode = { set {*}=$case($SYSTEM.SQL.Util.GetMapSelectability({SchemaExact}_"."_{TableExact},{INDEX_NAME}),0:"Not Selectable",:"Selectable") }, SqlComputed, SqlFieldName = MAP_STATUS ];
Status information on this index map, indicating whether it is selectable by the query optimizer or not. Map selectability can be controlled via $SYSTEM.SQL.Util.SetMapSelectablity()
DATAFIELDS
Property DATAFIELDS As %String(COLLATION = "Upper", MAXLEN = 3200) [ Calculated, SqlColumnNumber = 14, SqlComputeCode = { new i,l,e set i="",l="",e=$$$GetExtentNameFromTableName({TABLE_SCHEMA},{TABLE_NAME}) for { set i = $o($$$EXTSQLMAPDATA($$$rEXT,e,{INDEX_NAME},i)) quit:i="" set l = l_","_$$$quote($lg($$$EXTSQLMAPDATAsqlinfo($$$rEXT,e,{INDEX_NAME},i))) } set {*} = $e(l,2,*) }, SqlComputed, SqlFieldName = DATA_FIELDS ];
Comma-separated list of data field names stored in this index, which can be retrieved as part of an index lookup without requiring an additional master map lookup. Data field names are returned as delimited strings. Note that this table has one row for each indexed field (COLUMNNAME), but will repeat the list of data fields for each of those.