Hi, Julian,

Great! I am looking forward to it. Could you help to answer my question
regarding to the sliding windows in the previous email?

Thanks a lot!

-Yi

On Tue, May 5, 2015 at 10:46 AM, Julian Hyde <jul...@hydromatic.net> wrote:

>
> On May 4, 2015, at 10:52 AM, Yi Pan <nickpa...@gmail.com> wrote:
>
> > Just one observation that I wanted to add in: I noted that actually any
> > range-based query clause on an ordered stream essentially means the need
> > for a windowing method in the ordered stream scan. Is it possible to
> > identify a common syntax expression from the query parser in Calcite for
> > any range-based clauses on a StreamScan operator and extract the window
> > spec like:
> > LogicalProject(...)
> >   StreamScan(table=[[STREAMS, ORDERS]], fields=[[0,1,2,3]])
> >
> > To:
> > LogicalProject(...)
> >   LogicalWindow(<WindowSpec from the range defining expression in
> > LogicalProject>)
> >      StreamScan(table=[[STREAMS, ORDERS]], fields=[[0,1,2,3]])
>
> Yes, I plan to do this.
>
> Calcite treats LogicalWindow is a bit differently from the other logical
> operators. A query that contains a windowed aggregate such as  “SUM(units)
> OVER <window>” is first translated to a LogicalProject that contains
> windowed aggregates as if they were ordinary function calls, then
> ProjectToWindowRule converts that LogicalProject to a LogicalWindow.
>
> But by the time Samza sees the relational expressions you can assume that
> all windowed aggregates have been moved into a LogicalWindow.
>
> I have logged https://issues.apache.org/jira/browse/CALCITE-713.
>
> Julian
>
>

Reply via email to