Aman Sinha has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/16723 )

Change subject: IMPALA-10314: Optimize planning time for simple limits
......................................................................


Patch Set 4:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/16723/3/fe/src/main/java/org/apache/impala/planner/HdfsPartitionPruner.java
File fe/src/main/java/org/apache/impala/planner/HdfsPartitionPruner.java:

http://gerrit.cloudera.org:8080/#/c/16723/3/fe/src/main/java/org/apache/impala/planner/HdfsPartitionPruner.java@209
PS3, Line 209: for (FeFsPartition p : partitions) {
             :         numRows += p.getNumFileDescriptors();
             :         prunedPartitions.add(p);
             :         if (numRows >= analyzer.getSimpleLimitStatus().second) {
             :           // here we only limit the partitions; later in 
HdfsScanNode we will
             :           // limit the file descriptors within a partition
             :           break;
             :         }
> Yes, I think I like the always true hint option. It seems the new code shou
Done


http://gerrit.cloudera.org:8080/#/c/16723/3/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
File fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java:

http://gerrit.cloudera.org:8080/#/c/16723/3/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java@845
PS3, Line 845:     long simpleLimitNumRows = 0; // only used for the simple 
limit case
> maybe simpleLimitNumRows to make it clearer what it is? Ok to ignore.
Done


http://gerrit.cloudera.org:8080/#/c/16723/2/testdata/workloads/functional-planner/queries/PlannerTest/optimize-simple-limit.test
File 
testdata/workloads/functional-planner/queries/PlannerTest/optimize-simple-limit.test:

http://gerrit.cloudera.org:8080/#/c/16723/2/testdata/workloads/functional-planner/queries/PlannerTest/optimize-simple-limit.test@24
PS2, Line 24: # limit on both sides of a union all
> Add a case where the where clause has a subquery, too?
Added an IN subquery test that does NOT get optimized. Also, previously I had 
added an EXISTS subquery test that DOES get optimized (further below).


http://gerrit.cloudera.org:8080/#/c/16723/2/testdata/workloads/functional-planner/queries/PlannerTest/optimize-simple-limit.test@26
PS2, Line 26: union all
> Yeah, I had concerns about this too but was debating how to allow for the W
Discussed this offline and added the always_true hint for WHERE clause.  This 
is examined in SelectStmt.checkSimpleLimitStmt().  Modified the tests to 
include this hint where applicable.



--
To view, visit http://gerrit.cloudera.org:8080/16723
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9d6a79263bc092e0f3e9a1d72da5618f3cc35574
Gerrit-Change-Number: 16723
Gerrit-PatchSet: 4
Gerrit-Owner: Aman Sinha <[email protected]>
Gerrit-Reviewer: Aman Sinha <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Qifan Chen <[email protected]>
Gerrit-Reviewer: Shant Hovsepian <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>
Gerrit-Comment-Date: Wed, 18 Nov 2020 00:01:03 +0000
Gerrit-HasComments: Yes

Reply via email to