private void fdbDelete(QueryDelete query) throws SQLException, LSHException {
		ResponseDelete response = query.respdelete;
		for (ExeSpecifier spec : query.exelist) {
			DescriptionManager manage = new DescriptionManager();
			ExecutableRecord erec = null;
			boolean commit = false;
			beginTransaction(true);
			try {
				if (spec.exemd5 != null && spec.exemd5.length() != 0) {
					ExecutableRow row = exeTable.queryMd5ExeMatch(spec.exemd5);
					if (row != null) {
						erec = exeTable.makeExecutableRecord(manage, row);
					}
				}
				else {
					erec = exeTable.querySingleExecutable(manage, spec.exename, spec.arch,
						spec.execompname);
				}
				if (erec == null) {
					response.missedlist.add(spec);
					continue;
				}
				ResponseDelete.DeleteResult delrec = new ResponseDelete.DeleteResult();
				delrec.md5 = erec.getMd5();
				delrec.name = erec.getNameExec();
				List<FunctionDescription> funclist = new ArrayList<>();
				queryAllFunc(funclist, erec, manage, 0);
				Set<IdHistogram> table = IdHistogram.buildVectorIdHistogram(funclist.iterator());
				deleteVectors(table.iterator());
				delrec.funccount = deleteExecutable(erec, funclist, (info.execats != null));
				response.reslist.add(delrec);
				commit = true;
			}
			finally {
				endTransaction(commit);
			}
		}
	}
Entry point for the QueryDelete command
@param query the query to execute
@throws SQLException if there is an error issuing the query
@throws LSHException if there is an error issuing the query
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java