prestodb/presto · error · PrestoException
NOT_SUPPORTED
NOT_SUPPORTED
Error message
Dynamic filtering cannot be used with grouped execution
What it means
Planning error: the plan enables dynamic filtering on a join that is also planned for grouped execution. These two features are mutually exclusive — dynamic filters are consumed while the build side streams, while grouped execution batches build-side data — so the planner rejects the combination rather than producing wrong results.
Source
Thrown at presto-main-base/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java:2614
context.getNextOperatorId(),
planNodeId,
dynamicFilter.getTupleDomainConsumer(),
filterBuildChannels,
getDynamicFilteringMaxPerDriverRowCount(context.getSession()),
getDynamicFilteringMaxPerDriverSize(context.getSession()),
getDynamicFilteringRangeRowLimitPerDriver(context.getSession()));
}
private Optional<LocalDynamicFilter> createDynamicFilter(PhysicalOperation buildSource, AbstractJoinNode node, LocalExecutionPlanContext context, int partitionCount)
{
if (!isEnableDynamicFiltering(context.getSession())) {
return Optional.empty();
}
if (node.getDynamicFilters().isEmpty()) {
return Optional.empty();
}
if (buildSource.getPipelineExecutionStrategy() == GROUPED_EXECUTION) {
throw new PrestoException(NOT_SUPPORTED, "Dynamic filtering cannot be used with grouped execution");
}
LocalDynamicFiltersCollector collector = context.getDynamicFiltersCollector();
return LocalDynamicFilter
.create(node, partitionCount)
.map(filter -> {
// Intersect dynamic filters' predicates when they become ready,
// in order to support multiple join nodes in the same plan fragment.
addSuccessCallback(filter.getResultFuture(), collector::intersect);
return filter;
});
}
private JoinFilterFunctionFactory compileJoinFilterFunction(
SqlFunctionProperties sqlFunctionProperties,
Map<SqlFunctionId, SqlInvokedFunction> sessionFunctions,
RowExpression filterExpression,
Map<VariableReferenceExpression, Integer> probeLayout,
Map<VariableReferenceExpression, Integer> buildLayout)View on GitHub (pinned to 55bb57d202)
Solutions
- Disable dynamic filtering for the query: SET SESSION enable_dynamic_filtering = false
- Avoid grouped execution patterns (e.g. drop the compaction-style join shape or disable grouped execution via session properties)
- Repartition/reorder the join so grouped execution is not chosen
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-main-base/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java:2614 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
Background: Presto NOT_SUPPORTED error: what "not supported" means and how to fix it — this error's family across 3 libraries.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/a94983b32a220506.
Report an issue: GitHub.