code: def _ReadRecordSchemaIndexes(self, tables, file_object, record_offset):
      
      _ = self._ReadRecordHeader(file_object, record_offset)
  
      attribute_value_offsets = self._ReadRecordAttributeValueOffset(
          file_object, record_offset + 24, 5)
  
      if attribute_value_offsets != (0x2d, 0x31, 0x35, 0x39, 0x3d):
        raise errors.ParseError('Unsupported record attribute value offsets')
  
      file_offset = file_object.tell()
      data_type_map = self._GetDataTypeMap('keychain_record_schema_indexes')
  
      record_values, _ = self._ReadStructureFromFileObject(
          file_object, file_offset, data_type_map)
  
      if record_values.relation_identifier not in tables:
        raise errors.ParseError(
            'CSSM_DL_DB_SCHEMA_INDEXES defines relation identifier not defined '
            'in CSSM_DL_DB_SCHEMA_INFO.')
  
      table = tables.get(self._RECORD_TYPE_CSSM_DL_DB_SCHEMA_INDEXES, None)
      if not table:
        raise errors.ParseError('Missing CSSM_DL_DB_SCHEMA_INDEXES table.')
  
      record = collections.OrderedDict({
          'RelationID': record_values.relation_identifier,
          'IndexID': record_values.index_identifier,
          'AttributeID': record_values.attribute_identifier,
          'IndexType': record_values.index_type,
          'IndexedDataLocation': record_values.index_data_location})
  
      table.records.append(record)
docs: Reads a schema indexes (CSSM_DL_DB_SCHEMA_INDEXES) record.
  
      Args:
        tables (dict[int, KeychainDatabaseTable]): tables per identifier.
        file_object (file): file-like object.
        record_offset (int): offset of the record relative to the start of
            the file.
  
      Raises:
        ParseError: if the record cannot be read.