public static <T> Query<T> withDefaultTimeout(Query<T> query, long defaultTimeout) { return query.withOverriddenContext(ImmutableMap.of(QueryContexts.DEFAULT_TIMEOUT_KEY, defaultTimeout)); }
public static <T> Query<T> withTimeout(Query<T> query, long timeout) { return query.withOverriddenContext(ImmutableMap.of(TIMEOUT_KEY, timeout)); }
/** * Equivalent of withQuery(getQuery().withOverriddenContext(ImmutableMap.of(MAX_QUEUED_BYTES_KEY, maxQueuedBytes))). */ public QueryPlus<T> withMaxQueuedBytes(long maxQueuedBytes) { return new QueryPlus<>( query.withOverriddenContext(ImmutableMap.of(QueryContexts.MAX_QUEUED_BYTES_KEY, maxQueuedBytes)), queryMetrics, identity ); }
@Override public MaterializedViewQuery withOverriddenContext(Map<String, Object> contextOverride) { return new MaterializedViewQuery(query.withOverriddenContext(contextOverride), optimizer); }
private Query<?> readQuery( final HttpServletRequest req, final InputStream in, final ResponseContext context ) throws IOException { Query baseQuery = getMapperForRequest(req.getContentType()).readValue(in, Query.class); String prevEtag = getPreviousEtag(req); if (prevEtag != null) { baseQuery = baseQuery.withOverriddenContext( ImmutableMap.of(HEADER_IF_NONE_MATCH, prevEtag) ); } return baseQuery; }
public static <T> Query<T> withMaxScatterGatherBytes(Query<T> query, long maxScatterGatherBytesLimit) { Object obj = query.getContextValue(MAX_SCATTER_GATHER_BYTES_KEY); if (obj == null) { return query.withOverriddenContext(ImmutableMap.of(MAX_SCATTER_GATHER_BYTES_KEY, maxScatterGatherBytesLimit)); } else { long curr = ((Number) obj).longValue(); if (curr > maxScatterGatherBytesLimit) { throw new IAE( "configured [%s = %s] is more than enforced limit of [%s].", MAX_SCATTER_GATHER_BYTES_KEY, curr, maxScatterGatherBytesLimit ); } else { return query; } } }
public Query<T> withTimeoutAndMaxScatterGatherBytes(Query<T> query, ServerConfig serverConfig) { Query<T> newQuery = QueryContexts.verifyMaxQueryTimeout( QueryContexts.withMaxScatterGatherBytes( QueryContexts.withDefaultTimeout( query, Math.min(serverConfig.getDefaultQueryTimeout(), serverConfig.getMaxQueryTimeout()) ), serverConfig.getMaxScatterGatherBytes() ), serverConfig.getMaxQueryTimeout() ); return newQuery.withOverriddenContext(ImmutableMap.of(DirectDruidClient.QUERY_FAIL_TIME, this.startTimeMillis + QueryContexts.getTimeout(newQuery))); } }
subquery = (GroupByQuery) ((QueryDataSource) dataSource).getQuery().withOverriddenContext(subqueryContext);
queryPlus.withQuery( queryPlus.getQuery() .withOverriddenContext( ImmutableMap.of(TimeseriesQuery.CTX_GRAND_TOTAL, false)
@Override public Sequence<T> run(final QueryPlus<T> queryPlus, Map<String, Object> responseContext) { DataSource dataSource = queryPlus.getQuery().getDataSource(); boolean forcePushDownNestedQuery = queryPlus.getQuery() .getContextBoolean( GroupByQueryConfig.CTX_KEY_FORCE_PUSH_DOWN_NESTED_QUERY, false ); if (dataSource instanceof QueryDataSource && !forcePushDownNestedQuery) { return run(queryPlus.withQuery((Query<T>) ((QueryDataSource) dataSource).getQuery()), responseContext); } else { QueryPlus newQuery = queryPlus; if (forcePushDownNestedQuery) { // Disable any more push downs before firing off the query. But do let the historical know // that it is executing the complete nested query and not just the inner most part of it newQuery = queryPlus.withQuery( queryPlus.getQuery() .withOverriddenContext( ImmutableMap.of( GroupByQueryConfig.CTX_KEY_FORCE_PUSH_DOWN_NESTED_QUERY, false, GroupByQueryConfig.CTX_KEY_EXECUTING_NESTED_QUERY, true ) ) ); } return baseRunner.run(newQuery, responseContext); } } }
SpecificQueryRunnable(final QueryPlus<T> queryPlus, final Map<String, Object> responseContext) { this.queryPlus = queryPlus; this.responseContext = responseContext; this.query = queryPlus.getQuery(); this.toolChest = warehouse.getToolChest(query); this.strategy = toolChest.getCacheStrategy(query); this.useCache = CacheUtil.useCacheOnBrokers(query, strategy, cacheConfig); this.populateCache = CacheUtil.populateCacheOnBrokers(query, strategy, cacheConfig); this.isBySegment = QueryContexts.isBySegment(query); // Note that enabling this leads to putting uncovered intervals information in the response headers // and might blow up in some cases https://github.com/apache/incubator-druid/issues/2108 this.uncoveredIntervalsLimit = QueryContexts.getUncoveredIntervalsLimit(query); this.downstreamQuery = query.withOverriddenContext(makeDownstreamQueryContext()); // For nested queries, we need to look at the intervals of the inner most query. this.intervals = query.getIntervalsOfInnerMostQuery(); }
query = query.withOverriddenContext( ImmutableMap.of(QueryResource.HEADER_IF_NONE_MATCH, existingResultSetId));
queryToRun = query.withOverriddenContext(ImmutableMap.of("finalize", false)); metricManipulationFn = MetricManipulatorFns.finalizing();
QueryPlus.wrap(query.withOverriddenContext(ImmutableMap.of(QueryContexts.TIMEOUT_KEY, 1))), Collections.EMPTY_MAP );
public static <T> Query<T> withTimeout(Query<T> query, long timeout) { return query.withOverriddenContext(ImmutableMap.of(TIMEOUT_KEY, timeout)); }
public static <T> Query<T> withDefaultTimeout(Query<T> query, long defaultTimeout) { return query.withOverriddenContext(ImmutableMap.of(QueryContexts.DEFAULT_TIMEOUT_KEY, defaultTimeout)); }
/** * Equivalent of withQuery(getQuery().withOverriddenContext(ImmutableMap.of(MAX_QUEUED_BYTES_KEY, maxQueuedBytes))). */ public QueryPlus<T> withMaxQueuedBytes(long maxQueuedBytes) { return new QueryPlus<>( query.withOverriddenContext(ImmutableMap.of(QueryContexts.MAX_QUEUED_BYTES_KEY, maxQueuedBytes)), queryMetrics, identity ); }
private Query<?> readQuery( final HttpServletRequest req, final InputStream in, final ResponseContext context ) throws IOException { Query baseQuery = getMapperForRequest(req.getContentType()).readValue(in, Query.class); String prevEtag = getPreviousEtag(req); if (prevEtag != null) { baseQuery = baseQuery.withOverriddenContext( ImmutableMap.of(HEADER_IF_NONE_MATCH, prevEtag) ); } return baseQuery; }
public Query<T> withTimeoutAndMaxScatterGatherBytes(Query<T> query, ServerConfig serverConfig) { Query<T> newQuery = QueryContexts.verifyMaxQueryTimeout( QueryContexts.withMaxScatterGatherBytes( QueryContexts.withDefaultTimeout( query, Math.min(serverConfig.getDefaultQueryTimeout(), serverConfig.getMaxQueryTimeout()) ), serverConfig.getMaxScatterGatherBytes() ), serverConfig.getMaxQueryTimeout() ); return newQuery.withOverriddenContext(ImmutableMap.of(DirectDruidClient.QUERY_FAIL_TIME, this.startTimeMillis + QueryContexts.getTimeout(newQuery))); } }
SpecificQueryRunnable(final QueryPlus<T> queryPlus, final Map<String, Object> responseContext) { this.queryPlus = queryPlus; this.responseContext = responseContext; this.query = queryPlus.getQuery(); this.toolChest = warehouse.getToolChest(query); this.strategy = toolChest.getCacheStrategy(query); this.useCache = CacheUtil.useCacheOnBrokers(query, strategy, cacheConfig); this.populateCache = CacheUtil.populateCacheOnBrokers(query, strategy, cacheConfig); this.isBySegment = QueryContexts.isBySegment(query); // Note that enabling this leads to putting uncovered intervals information in the response headers // and might blow up in some cases https://github.com/apache/incubator-druid/issues/2108 this.uncoveredIntervalsLimit = QueryContexts.getUncoveredIntervalsLimit(query); this.downstreamQuery = query.withOverriddenContext(makeDownstreamQueryContext()); }