private FunctionDescription extractSingleDescriptionRow(ResultSet resultSet,
		DescriptionManager descManager) throws SQLException, LSHException {
		boolean finished = false;
		DescriptionRow currow = null;

		while (resultSet.next()) {
			if (!finished) {
				currow = new DescriptionRow();
				extractDescriptionRow(resultSet, currow);
				finished = true;
			}
		}
		if (currow == null) {
			return null;
		}

		RowKey rowKey = new RowKeySQL(currow.id_exe);
		ExecutableRecord curexe = descManager.findExecutableByRow(rowKey);
		if (curexe == null) {
			ExecutableRow exerow = exeTable.querySingleExecutableId(currow.id_exe);
			curexe = exeTable.makeExecutableRecord(descManager, exerow);
			descManager.cacheExecutableByRow(curexe, rowKey);
		}

		return convertDescriptionRow(currow, curexe, descManager, null);
	}
Process a result set (expected to contain a single row) from desctable,
building the FunctionDescription object described by the row
@param resultSet is the result set
@param descManager is the container that will hold the resulting FunctionDescription
@return the new FunctionDescription
@throws SQLException if there is a problem creating or executing the query
@throws LSHException if there is a problem creating the executable record
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/DescriptionTable.java