protected int retrieveFuncDescFromVectors(VectorResult dresult, DescriptionManager res,
			int count, QueryNearest query, BSimSqlClause filter, SimilarityResult simres)
			throws SQLException, LSHException {
		SignatureRecord srec = res.newSignature(dresult.vec, dresult.hitcount);
		List<DescriptionRow> descres;
		if (filter == null) {
			descres = descTable.queryVectorIdMatch(dresult.vectorid, query.max - count);
		}
		else {
			descres = descTable.queryVectorIdMatchFilter(dresult.vectorid, filter.tableClause(),
				filter.whereClause(), query.max - count);
		}
		if (descres == null) {
			throw new SQLException("Error querying vectorid: " + Long.toString(dresult.vectorid));
		}
		if (descres.size() == 0) {
			if (filter != null) {
				return 0; // Filter may have eliminated all results
			}
			// Otherwise this is a sign of corruption in the database
			throw new SQLException(
				"No functions matching vectorid: " + Long.toString(dresult.vectorid));
		}
		convertDescriptionRows(simres, descres, dresult, res, srec);
		return descres.size();
	}
Generates {@link FunctionDescription} objects for each function with signature vector
{@code dresult}.  If a non-null {@code filter} is provided, {@link FunctionDescription}s
are only created for functions with pass the filter.

@param dresult {@link VectorResult} representing a matching vector
@param res {@link DescriptionManager} container for the results
@param count number of function descriptions which have already been returned for this base 
         vector
@param query contains various thresholds for the query
@param filter specifies additional conditions functions (and exes) must meet after 
         meeting sim/signif threshold
@param simres receives the list of results and their similarity to the base vector
@return number of 
@throws SQLException if there is an error issuing the query
@throws LSHException if executable record creation fails
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java