-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21371/#review43130
-----------------------------------------------------------
I took a first pass at this...sending out initial review comments.
common/src/main/java/org/apache/drill/common/logical/data/Window.java
<https://reviews.apache.org/r/21371/#comment77138>
Is 'Within' implying the OVER clause ? We should support empty OVER clause .. for example:
SELECT SUM(a1) OVER (). Basically, no PARTITION BY or ORDER BY is specified, so I want to
do the aggregate over entire data set.
exec/java-exec/src/main/codegen/data/AggrTypes1.tdd
<https://reviews.apache.org/r/21371/#comment77137>
It isn't clear why a separate class called Sum0 is needed ..is the existing Sum not sufficient
? If it is needed for Sum, what about other aggregate functions ?
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
<https://reviews.apache.org/r/21371/#comment77140>
Don't you need a next() interface in the WindowFrameRecordBatch ? If a downstream operator
calls next() on the incoming, how does this class respond ? Note that normally we have the
doWork() in the template class, not in the record batch class.
exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java
<https://reviews.apache.org/r/21371/#comment77154>
It sounds like a single physical WindowPOP is being created for a list of logical Windows.
Suppose there are 2 Window Functions:
SUM(a1) OVER (PARTITION BY b1),
SUM(a1) OVER (PARTITION BY c1)
then, I believe Optiq would have created 2 logical window rels since the two Partition-By
clauses are not compatible with each other. So, we will need two separate physical window
operators, right ?
On the other hand, suppose the 2 window functions are:
RANK() OVER (ORDER BY a1, b1),
RANK() OVER (ORDER BY a1)
then we could do both in a single physical Window operator by doing ordering only once
on (a1, b1).
exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java
<https://reviews.apache.org/r/21371/#comment77149>
This syntax of embedding a function within a function makes it hard to follow the overall
logic. I am not too familiar with this pattern...so maybe someone else can comment on it..
- Aman Sinha
On May 13, 2014, 9:01 p.m., Timothy Chen wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21371/
> -----------------------------------------------------------
>
> (Updated May 13, 2014, 9:01 p.m.)
>
>
> Review request for drill.
>
>
> Bugs: DRILL-705
> https://issues.apache.org/jira/browse/DRILL-705
>
>
> Repository: drill-git
>
>
> Description
> -------
>
> Currently only supports partitioning/ordering, not yet preceding or after offsets.
>
> This patch also addresses the CASE syntax bug (DRILL-665)
>
> Also fixed the Drill review patch tool.
>
>
> Diffs
> -----
>
> common/src/main/java/org/apache/drill/common/expression/CastExpression.java 7e5eea096b53ede676abb4764631fd92805b4ad1
> common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
95888639f1f1de232c4df8b4baa38e7ca3d12ffb
> common/src/main/java/org/apache/drill/common/expression/IfExpression.java 280952dac4552b000ce05bc8922f8f82e979a4b0
> common/src/main/java/org/apache/drill/common/expression/TypedNullConstant.java 1efb029224c759caf7da0260704ad7756b1d521d
> common/src/main/java/org/apache/drill/common/expression/visitors/AbstractExprVisitor.java
526275fc88d8c90a254ecbeb76343f37ec4f0695
> common/src/main/java/org/apache/drill/common/expression/visitors/AggregateChecker.java
bf67a6bd27f34d3dfb7e256b581238f0c4f531b6
> common/src/main/java/org/apache/drill/common/expression/visitors/ConstantChecker.java
ab94987811d6c988a55525ac8b8e041e11034f77
> common/src/main/java/org/apache/drill/common/expression/visitors/ExprVisitor.java 799c9ddfed42e986e9ccc5235ef73ff13f7dfaff
> common/src/main/java/org/apache/drill/common/expression/visitors/ExpressionValidator.java
e9bd03a7f9154b739847f9bf76510deefe847d82
> common/src/main/java/org/apache/drill/common/logical/data/AbstractBuilder.java 69cb4eb73ab71c6424752a1027ee190ee95104c4
> common/src/main/java/org/apache/drill/common/logical/data/AbstractSingleBuilder.java
e733fddc554f462dadcc96e21db29191000f6ea1
> common/src/main/java/org/apache/drill/common/logical/data/Limit.java 110204be8bac10b960013d8cc52d552c50f15995
> common/src/main/java/org/apache/drill/common/logical/data/LogicalOperator.java 531e6a6244b110a845833c5d94b2077df1f26460
> common/src/main/java/org/apache/drill/common/logical/data/LogicalOperatorBase.java
69a1c3c5e7e9911fc6fe1cccb16f8e6fb50dc293
> common/src/main/java/org/apache/drill/common/logical/data/NamedExpression.java 4c006c609e281a03607101fb83ae368bd4e43200
> common/src/main/java/org/apache/drill/common/logical/data/SingleInputOperator.java
0a5015c15a1e9a9b6c3b092ca644ec425d142957
> common/src/main/java/org/apache/drill/common/logical/data/Window.java PRE-CREATION
> common/src/main/java/org/apache/drill/common/logical/data/WindowFrame.java 09524061601209bd0d322fabade3df4ebdcd07bd
> common/src/main/java/org/apache/drill/common/logical/data/visitors/AbstractLogicalVisitor.java
0099bb9a8a29f6c7e23ff7f45a80a1d714cb3ddd
> common/src/main/java/org/apache/drill/common/logical/data/visitors/LogicalVisitor.java
4bf9fbfcaac21ab077ce26993575f679010bf592
> exec/java-exec/src/main/codegen/data/AggrTypes1.tdd 71931dfbadde2f3981746e61d9ad40baf3c4890b
> exec/java-exec/src/main/codegen/templates/AggrTypeFunctions1.java aa9aeab7af7d387cff9da57af69d3c9a5a9498fd
> exec/java-exec/src/main/codegen/templates/TypeHelper.java 4755e9210728967f17fbeddd2ef8b0d6c501d641
> exec/java-exec/src/main/java/org/apache/drill/exec/compile/sig/ConstantExpressionIdentifier.java
c0c8484005374ab273f5129e9f18afba0d2cb4f3
> exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java d700bf3f045b21c8d15b0841f6568b39574c227d
> exec/java-exec/src/main/java/org/apache/drill/exec/expr/ExpressionTreeMaterializer.java
0267be3ad54edf3e4da18582ffa8c83f7d8864fc
> exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionConverter.java 44210914d1b6f819716b366020d116c89e92587f
> exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/HiveFunctionImplementationRegistry.java
e5c890eb81320ecb3affe67b74e900636296c480
> exec/java-exec/src/main/java/org/apache/drill/exec/memory/Accountor.java 624042e03fb8f7fc980405597266044fea832e41
> exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java 78c0e3cb9ec90de70fbf1e036d13f0853af4f8ad
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/AbstractPhysicalVisitor.java
01071012a9aebc5861dde6c4a2306efd3319cfbf
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/PhysicalVisitor.java
7a1440a4b2d7321efa086cc07f2a45468fa8a733
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/Limit.java b926e3ed7839fad6c107476f7c8ca9c2bbe0be1d
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/MergeJoinPOP.java
5bb378a8bed208e290b5c0d0437c066e0e5e1251
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/config/WindowPOP.java PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/InternalBatch.java
3e6def128034ccfce2dab38cef1ccff61553a104
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java
566dfe0aaf8ea87584c6fcf14613ed745c805b6d
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/limit/LimitBatchCreator.java
ccbf755faa8f1332df68e34bee130c7a27f503e0
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/limit/LimitRecordBatch.java
ed56e796b84d713e697296017056e590af37169d
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
b94f403731609ffb57574c32ffe299a0172ea91c
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java
62af0b2a395d7b61ed334761f0e878f6affdc9d6
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/trace/TraceRecordBatch.java
b012cec1d8a4d81ab6508de76147562fc2f9f75e
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameBatchCreator.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameTemplate.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFramer.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/StatsCollector.java
6d720a7d1d3afba72109230f8642e8c7cc3b60f5
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java
fe5130ced1acfbe548b3af9b42d0cb80b7840faa
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java
a5593e762256c89cd6659c9dff5b3d9171f5555b
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillLimitRule.java
c3b0d00c6bddf52cb88307a49df2574b720a4806
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
7efd7144153310f86b78e8b85c606f172b0ff672
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
0dd9b9ebba42f63db594e36564be47c2665870ee
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRel.java 7eca54e9b9a79f63d0b9df1bebc7400f46996028
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java
c07fee35d3895b6d7bfbbd30a108d58a9f6abb60
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRel.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillWindowRule.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/LimitPrel.java
7c8d7672cbc147fee793b0ed4d59cbfcd1136322
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrel.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/WindowPrule.java
PRE-CREATION
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java
772b3b9322b58f2cfdc84ee73c3717caac3fad4b
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlAggOperator.java
b074ba0d5ae874ff663210f9fb873eb9b7f2a1cd
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
747744026bc795d6ae6af2f98ee4af1937a8cf6e
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateTableHandler.java
b7d9bd7f3e70a8754f9ae6a56986c4ea7f99e432
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java
d107c29c0ef80426ec90ecd6e761a57cbf995455
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DescribeTableHandler.java
d6849f4cab0084a282945deb661b0cdc3f545d5b
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ExplainHandler.java
86ce6c56cfd0eda4f1e0f2e326eabd785c2643b2
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
4f7c424b72cbee48439370df681cb810c835c18b
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowSchemasHandler.java
2a6dc6a33e679e1ff7f657727f2bc4628ef984e3
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowTablesHandler.java
6905c1773ffbbe1a97d92201ee06aa9e5ac4ed39
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillSqlCall.java
5fa592a13c0e8e12f04121e2302339d48189ad63
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateTable.java
7be40cbe932efcf73586575ce611c4ce694308cb
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlCreateView.java
b362a20e149e7db5bf0687b970387f3dc160666c
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDescribeTable.java
30c7e433bef7f82794200026de17a05fca0009cf
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlDropView.java
bbb3a7f81f92c02410c4c879b357b02f3cf418af
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowFiles.java
f882ba9652528f357a2714952c18415d6eaa04ba
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowSchemas.java
34695d950bc6b5e4b6369e91cc854f4580816d51
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlShowTables.java
26d4fa216334d128ab92fba7dddd5868443a9424
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/SqlUseSchema.java
42a3914a7d103e4ccf04afd246bdc01e06aa683a
> exec/java-exec/src/main/java/org/apache/drill/exec/record/AbstractSingleRecordBatch.java
dd2cfe059a191f223509f0b7cd8e8c6c8c097e89
> exec/java-exec/src/main/java/org/apache/drill/exec/record/NullExpression.java 15435504cd1aa5953c423192b6dc6b5c4794d1c5
> exec/java-exec/src/main/java/org/apache/drill/exec/service/ServiceEngine.java cfbde739511af4f96649479fe26677c05f86d064
> exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java 7be8cc5f7498980a06e50dadd42105537fc4fa84
> exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFragmentRun.java
842aa8fa66aff7c2a704f377af1fccca7534e167
> exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestUtils.java PRE-CREATION
> exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/window/TestWindowFrame.java
PRE-CREATION
> exec/java-exec/src/test/resources/window/mediumData.json PRE-CREATION
> exec/java-exec/src/test/resources/window/oneKeyCount.json PRE-CREATION
> exec/java-exec/src/test/resources/window/oneKeyCountData.json PRE-CREATION
> exec/java-exec/src/test/resources/window/oneKeyCountMultiBatch.json PRE-CREATION
> exec/java-exec/src/test/resources/window/twoKeys.json PRE-CREATION
> exec/java-exec/src/test/resources/window/twoKeysData.json PRE-CREATION
> exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java be56b967f54ac1b27bd0ea4ae8a2015aecb99929
> exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcDistQuery.java 30a7144521117969db119791b0cb0896763c0494
> exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java d087f7d6661a079cb37655cf67995de7f30f9a2a
> tools/drill-patch-review.py c067ae2d805fa45707401953bb040f1f062ba920
>
> Diff: https://reviews.apache.org/r/21371/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Timothy Chen
>
>
|