[
https://issues.apache.org/jira/browse/DRILL-8290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17685716#comment-17685716
]
ASF GitHub Bot commented on DRILL-8290:
---------------------------------------
jnturton commented on code in PR #2636:
URL: https://github.com/apache/drill/pull/2636#discussion_r1099737668
##########
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java:
##########
@@ -645,10 +646,18 @@ public Void visitOp(PhysicalOperator op,
Collection<PhysicalOperator> collection
}
return null;
}
-
}
protected Pair<SqlNode, RelDataType> validateNode(SqlNode sqlNode) throws
ValidationException, RelConversionException, ForemanSetupException {
+ if (context.getOptions().getOption(ExecConstants.FILE_LISTING_LIMIT0_OPT))
{
+ // Check for a LIMIT 0 in the root portion of the query before validation
+ // because validation of the query's FROM clauses will already trigger
+ // the recursive listing files to which FILE_LISTING_LIMIT0_OPT is meant
+ // to apply.
+ boolean rootSelectLimit0 = FindLimit0SqlVisitor.containsLimit0(sqlNode);
+ context.getPlannerSettings().setRootSelectLimit0(rootSelectLimit0);
Review Comment:
@vvysotskyi I've made use of a query option, how do things look now?
> Short cut recursive file listings for LIMIT 0 queries
> -----------------------------------------------------
>
> Key: DRILL-8290
> URL: https://issues.apache.org/jira/browse/DRILL-8290
> Project: Apache Drill
> Issue Type: Improvement
> Components: Query Planning & Optimization
> Affects Versions: 1.20.2
> Reporter: James Turton
> Assignee: James Turton
> Priority: Minor
> Fix For: 1.21.0
>
>
> The existing LIMIT 0 query optimisations do not prevent a query run against
> the top of a deep DFS directory tree from recursively listing FileStatuses
> for everything within it using a pool of worker threads. This Issue proposes
> a new optimisation whereby such queries will recurse into the directory tree
> on a single thread that returns as soon as any single FileStatus has been
> obtained.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)