@Override
    public List<String> getProcessorUuidList(final FindMetaCriteria criteria) {
        final Collection<Condition> conditions = createCondition(criteria);
        final Set<Integer> usedValKeys = identifyExtendedAttributesFields(criteria.getExpression(),
                new HashSet<>());

        return JooqUtil.contextResult(metaDbConnProvider,
                        context -> {
                            SelectJoinStep<Record1<String>> select = context
                                    .selectDistinct(metaProcessor.PROCESSOR_UUID)
                                    .from(meta);

                            select = select
                                    .straightJoin(metaFeed).on(meta.FEED_ID.eq(metaFeed.ID))
                                    .straightJoin(metaType).on(meta.TYPE_ID.eq(metaType.ID))
                                    .leftOuterJoin(metaProcessor).on(meta.PROCESSOR_ID.eq(metaProcessor.ID));

                            // If the criteria contain many terms that come from meta_val then we need to join
                            // to meta_val multiple times, each time with a new table alias
                            select = metaExpressionMapper.addJoins(select, meta.ID, usedValKeys);

                            return select
                                    .where(conditions)
                                    .groupBy(metaProcessor.PROCESSOR_UUID)
                                    .fetch();
                        })
                .map(Record1::value1);
    }
@return True if any term in any rule expression uses at least one of {@code fields}.
stroom-meta/stroom-meta-impl-db/src/main/java/stroom/meta/impl/db/MetaDaoImpl.java