@Override
	Field[] findPrimaryKeys(Field indexValue) throws IOException {

		IndexField indexField =
			indexKeyType.newIndexField(indexValue, getPrimaryTableKeyType().getMinValue());

		DBFieldIterator iter = indexTable.fieldKeyIterator(indexField);
		ArrayList<IndexField> list = new ArrayList<>(20);
		while (iter.hasNext()) {
			IndexField f = (IndexField) iter.next();
			if (!f.hasSameIndexValue(indexField)) {
				break;
			}
			if (indexField.usesTruncatedFieldValue()) {
				// Must check actual record if index value was truncated
				DBRecord rec = primaryTable.getRecord(f.getPrimaryKey());
				Field val = rec.getField(indexColumn);
				if (!indexValue.equals(val)) {
					continue;
				}
			}
			list.add(f);
		}
		Field[] keys = new Field[list.size()];
		for (int i = 0; i < keys.length; i++) {
			IndexField f = list.get(i);
			keys[i] = f.getPrimaryKey();
		}
		return keys;
	}
Generate index table schema for specified primaryTable and index column
@param primaryTable primary table
@param colIndex index column
@return index table schema
Ghidra/Framework/DB/src/main/java/db/FieldIndexTable.java