public ExecutableRecord querySingleExecutable(DescriptionManager manage, String name,
		String arch, String cname) throws SQLException, LSHException {
		DescriptionManager tmp = new DescriptionManager();
		queryNameExeMatch(null, tmp, name, 2000000);
		ExecutableRecord res = null;
		int count = 0;

		for (ExecutableRecord erec : tmp.getExecutableRecordSet()) {
			if (!StringUtils.isBlank(arch)) {
				if (!erec.getArchitecture().equals(arch)) {
					continue;
				}
			}
			if (!StringUtils.isBlank(cname)) {
				if (!erec.getNameCompiler().equals(cname)) {
					continue;
				}
			}
			res = erec;
			count += 1;
			if (count > 1) {
				return null; // More than one match
			}
		}
		if (count != 1) {
			return null; // No matches
		}
		return manage.transferExecutable(res);
	}
Query for a unique executable based on -name- and possibly other metadata

@param manage the container to store the result
@param name the name the executable must match
@param arch the architecture the executable must match (may be zero length)
@param cname the compiler name the executable must match (may be zero length)
@return the unique resulting ExecutableRecord or null, if none or more
        than 1 is found
@throws SQLException if there is a problem querying for the executable name
@throws LSHException if there is a problem querying for the executable name or transferring the exec
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/ExeTable.java