@Override public QueryExecution query(RequestContext context, List<FunnelStep> steps, Optional<String> dimension, Optional<String> segment, LocalDate startDate, LocalDate endDate, Optional<FunnelWindow> window, ZoneId zoneId, Optional<List<String>> connectors, FunnelType funnelType) { if (funnelType == FunnelType.APPROXIMATE) { return approxFunnelQueryExecutor.query(context, steps, dimension, segment, startDate, endDate, window, zoneId, connectors, funnelType); } if (funnelType != FunnelType.ORDERED) { return fastPrestoFunnelQueryExecutor.query(context, steps, dimension, segment, startDate, endDate, window, zoneId, connectors, funnelType); } if (dimension.isPresent() && projectConfig.getUserColumn().equals(dimension.get())) { throw new RakamException("Dimension and connector field cannot be equal", HttpResponseStatus.BAD_REQUEST); } return super.query(context, steps, dimension, segment, startDate, endDate, window, zoneId, connectors, funnelType); }