-----------------------------------------------------------
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
> 
>

Reply via email to