code: public void createIndex(String idxName, String tblName, List<String> fldNames,
  			IndexType idxType, Transaction tx) {
  		
  		// Add the index infos to the index catalog
  		RecordFile rf = idxTi.open(tx, true);
  		rf.insert();
  		rf.setVal(ICAT_IDXNAME, new VarcharConstant(idxName));
  		rf.setVal(ICAT_TBLNAME, new VarcharConstant(tblName));
  		rf.setVal(ICAT_IDXTYPE, new IntegerConstant(idxType.toInteger()));
  		rf.close();
  		
  		// Add the field names to the key catalog
  		rf = keyTi.open(tx, true);
  		for (String fldName : fldNames) {
  			rf.insert();
  			rf.setVal(KCAT_IDXNAME, new VarcharConstant(idxName));
  			rf.setVal(KCAT_KEYNAME, new VarcharConstant(fldName));
  			rf.close();
  		}
  		
  		updateCache(new IndexInfo(idxName, tblName, fldNames, idxType));
  	}
docs: Creates an index of the specified type for the specified field. A unique
  ID is assigned to this index, and its information is stored in the idxcat
  table.
  
  @param idxName
  the name of the index
  @param tblName
  the name of the indexed table
  @param fldNames
  the name of the indexed field
  @param idxType
  the index type of the indexed field
  @param tx
  the calling transaction