Keuntae Park created TAJO-1415:
----------------------------------

             Summary: Window frame support
                 Key: TAJO-1415
                 URL: https://issues.apache.org/jira/browse/TAJO-1415
             Project: Tajo
          Issue Type: Sub-task
            Reporter: Keuntae Park


We can define frame clause in window definition like
{code}
[ RANGE | ROWS ] frame_start
[ RANGE | ROWS ] BETWEEN frame_start AND frame_end
{code}
, where frame_start and frame_end can be one of 
{code}
UNBOUNDED PRECEDING
value PRECEDING
CURRENT ROW
value FOLLOWING
UNBOUNDED FOLLOWING
{code}

According to the window functions description of 
PostgreSQL(http://www.postgresql.org/docs/9.4/static/functions-window.html),
there are two types of window functions based on window frame support.
1) row_number, rank, dense_rank, percent_rank, cume_dist, tile, lag and lead:
these functions only work within window partition, which means window frame has 
no effect on these functions.
2) first_value, last_value, nth_value, and aggregation function as as window 
function: these functions should work with rows within window frame.

Currently, Tajo parser recognize the window frame grammar but windowAggExec 
does not use that information. 
It works as if window frame is set as "RANGE BETWEEN UNBOUND PROCEEDING AND 
UNBOUNDED FOLLOWING", which is different from the default window frame setting 
of most DBMSs "RANGE BETWEEN UNBOUND PROCEEDING AND CURRENT ROW".

Following should be done:
1) Applying correct default window frame for first_value, last_value, 
nth_value, and aggregation functions .
2) Supporting various window frame expressions.






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to