Row-ID descriptor

A particular row identifier can appear in multiple fragments. For example, row 1 in fragment A describes a different customer than row 1 in fragment B. The unique fragment identifier enables the database server or access method to locate the correct row 1.

A secondary access method sets these values in a row-ID descriptor, or MI_AM_ROWID_DESC structure, during an index scan. The following functions set data in the row-ID descriptor.
Accessor function
Value set
mi_id_setrowid()
The row identifier
mi_id_setfragid()
The fragment identifier
The database server fills the row-ID descriptor when it calls:
  • am_insert or am_delete to add or delete a table row
  • am_insert to build a new index
  • am_insert and am_delete in response to an ALTER FRAGMENT command
The following accessor functions extract information from the descriptor.
Accessor function
Return value
mi_id_rowid()
The row identifier
mi_id_fragid()
The fragment identifier
The following system catalog information describes a fragment identifier:
  • The partnum attribute in the systables system catalog table
  • The partn attribute in the sysfragments system catalog table

For detailed information about system catalog tables, see the Informix® Guide to SQL: Reference.