Github user jihoonson commented on the pull request:

    https://github.com/apache/tajo/pull/13#issuecomment-44297819
  
    Hyunsik, thanks for your great contribution.
    Window function support is truly necessary, and your design seems 
reasonable.
    I left some more comments as above.
    In addition, I found a bug.
    The following error occurs against the query including window functions.
    It seems that you should add a handling routine for window functions to 
ExprAnnotator.visitFunction().
    Thanks!
    
    2014-05-28 01:06:22,226 ERROR org.apache.tajo.master.GlobalEngine:
    Stack Trace:
    org.apache.tajo.engine.planner.PlanningException: Unsupported Function 
Type: WINDOW
            at 
org.apache.tajo.engine.planner.ExprAnnotator.visitFunction(ExprAnnotator.java:608)
            at 
org.apache.tajo.engine.planner.ExprAnnotator.visitFunction(ExprAnnotator.java:61)
            at 
org.apache.tajo.engine.planner.BaseAlgebraVisitor.visit(BaseAlgebraVisitor.java:217)
            at 
org.apache.tajo.engine.planner.ExprAnnotator.createEvalNode(ExprAnnotator.java:81)
            at 
org.apache.tajo.engine.planner.LogicalPlanPreprocessor.visitProjection(LogicalPlanPreprocessor.java:204)
            at 
org.apache.tajo.engine.planner.LogicalPlanPreprocessor.visitProjection(LogicalPlanPreprocessor.java:38)
            at 
org.apache.tajo.engine.planner.BaseAlgebraVisitor.visit(BaseAlgebraVisitor.java:55)
            at 
org.apache.tajo.engine.planner.LogicalPlanner.createPlan(LogicalPlanner.java:121)
            at 
org.apache.tajo.engine.planner.LogicalPlanner.createPlan(LogicalPlanner.java:111)
            at 
org.apache.tajo.master.GlobalEngine.createLogicalPlan(GlobalEngine.java:475)
            at 
org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:147)
            at 
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.submitQuery(TajoMasterClientService.java:261)
            at 
org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:495)
            at 
org.apache.tajo.rpc.BlockingRpcServer$ServerHandler.messageReceived(BlockingRpcServer.java:103)
            at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
            at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
            at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
            at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
            at 
org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
            at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
            at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
            at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
            at 
org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
            at 
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
            at 
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
            at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
            at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
            at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
            at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
            at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
            at 
org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
            at 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
            at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
            at 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
            at 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
            at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
            at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
            at java.lang.Thread.run(Thread.java:695)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to