private void fdbQueryVectorMatch(QueryVectorMatch query) throws SQLException, LSHException {
		BSimSqlClause filter = null;
		if (query.bsimFilter != null) {
			ExecutableRecord repexe = null;		// Needed for the ExternalFunction filter
			IDSQLResolution idres[] = new IDSQLResolution[query.bsimFilter.numAtoms()];
			for (int i = 0; i < idres.length; ++i) {
				FilterAtom atom = query.bsimFilter.getAtom(i);
				idres[i] = atom.type.generateIDSQLResolution(atom);
				if (idres[i] != null) {
					idres[i].resolve(this, repexe);
				}
			}
			filter = SQLEffects.createFilter(query.bsimFilter, idres, this);
		}
		List<VectorResult> vectorList = new ArrayList<>();
		for (Long id : query.vectorIds) {
			VectorResult vecResult = queryVectorId(id);
			vectorList.add(vecResult);
		}
		int count = 0;
		DescriptionManager manage = query.matchresponse.manage;
		for (VectorResult vecResult : vectorList) {
			if (count >= query.max) {
				break;
			}
			SignatureRecord srec = manage.newSignature(vecResult.vec, vecResult.hitcount);
			List<DescriptionRow> descres;
			if (filter == null) {
				descres = descTable.queryVectorIdMatch(vecResult.vectorid, query.max - count);
			}
			else {
				descres = descTable.queryVectorIdMatchFilter(vecResult.vectorid,
					filter.tableClause(), filter.whereClause(), query.max - count);
			}
			if (descres == null) {
				throw new SQLException(
					"Error querying vectorid: " + Long.toString(vecResult.vectorid));
			}
			if (descres.size() == 0) {
				if (filter != null) {
					continue; // 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(vecResult.vectorid));
			}
			count += descres.size();
			convertDescriptionRows(null, descres, vecResult, manage, srec);
		}
		if (query.fillinCategories && (info.execats != null)) {
			fillinExecutableCategories(manage);
		}
	}
Entry point for the QueryVectorMatch command

@param query contains list of ids to match
@throws SQLException if there is an error issuing the query
@throws LSHException if there is a problem making executable records
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java