private void queryAssociatedSignature(FunctionDescription functionDescription,
			DescriptionManager descriptionManager, Map<Long, SignatureRecord> sigmap)
			throws SQLException {
		if (functionDescription.getSignatureRecord() != null) {
			return;
		}
		long vectorId = functionDescription.getVectorId();
		if (vectorId == 0) {
			return;		// We don't know the id
		}
		VectorResult rowres;
		SignatureRecord srec;
		if (sigmap != null) {
			srec = sigmap.get(vectorId);
			if (srec == null) {
				rowres = queryVectorId(vectorId);
				srec = descriptionManager.newSignature(rowres.vec, rowres.hitcount);
				descriptionManager.setSignatureId(srec, vectorId);
				sigmap.put(vectorId, srec);
			}
		}
		else {
			rowres = queryVectorId(vectorId);
			srec = descriptionManager.newSignature(rowres.vec, rowres.hitcount);
			descriptionManager.setSignatureId(srec, vectorId);
		}
		descriptionManager.attachSignature(functionDescription, srec);
	}
Make sure the FunctionDescription has its attached SignatureRecord, if not, query for it
@param functionDescription is the FunctionDescription
@param descriptionManager is the container
@param sigmap is a container of cached SignatureRecords which is checked before querying (may be null)
@throws SQLException if there is a problem querying the vector ID
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java