oleg-zinovev opened a new pull request, #12096:
URL: https://github.com/apache/ignite/pull/12096

   Thank you for submitting the pull request to the Apache Ignite.
   
   In order to streamline the review of the contribution 
   we ask you to ensure the following steps have been taken:
   
   ### The Contribution Checklist
   - [X] There is a single JIRA ticket related to the pull request. 
   - [ ] The web-link to the pull request is attached to the JIRA ticket.
   - [ ] The JIRA ticket has the _Patch Available_ state.
   - [ ] The pull request body describes changes that have been made. 
   The description explains _WHAT_ and _WHY_ was made instead of _HOW_.
   - [ ] The pull request title is treated as the final commit message. 
   The following pattern must be used: `IGNITE-XXXX Change summary` where 
`XXXX` - number of JIRA issue.
   - [ ] A reviewer has been mentioned through the JIRA comments 
   (see [the Maintainers 
list](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-ReviewProcessandMaintainers))
 
   - [ ] The pull request has been checked by the Teamcity Bot and 
   the `green visa` attached to the JIRA ticket (see [TC.Bot: Check 
PR](https://mtcga.gridgain.com/prs.html))
   
   ### Notes
   - [How to 
Contribute](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute)
   - [Coding abbreviation 
rules](https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules)
   - [Coding 
Guidelines](https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines)
   - [Apache Ignite Teamcity 
Bot](https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Teamcity+Bot)
   
   If you need any help, please email d...@ignite.apache.org or ask anу advice 
on http://asf.slack.com _#ignite_ channel.
   
   Description of Changes:
   
   Added support for planning and executing window functions.
   Added special window functions: row_number, rank, dense_rank, percent_rank, 
cume_dist, ntile, nth_value, first_value, last_value, lag, lead.
   Provides two modes of window function execution:
   With partition buffering
   Without buffering, accessing only the current and previous row (only for 
row_number, rank, dense_rank, and standard aggregates with the window 
specification ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
   Supports specifying integer offsets in either variant (ROWS / RANGE) and 
time interval offsets for RANGE.
   
   Window Planning:
   
   During query planning, windows are split into separate rels for each group 
of aggregation functions. Each logical window rel includes a collation that is 
required for correctly partitioning rows and defining frames when computing the 
window.
   Splitting is done using Calcite’s standard rule, which groups function calls 
based on the window specification (according to the OVER clause).
   After that, constants used in the window are projected to support 
referencing them in the current implementation of Ignite aggregates. (If 
constants are used in FOLLOWING/PRECEDING, they are directly substituted into 
the offset, which helps reduce the number of frame boundary searches.)
   An additional planning phase was introduced specifically for window 
planning. (I couldn't find a suitable existing place for the new rules, so I 
followed the approach used in Apache Drill.)
   
   Separate Change:
   
   During development, when attempting to upgrade to Calcite 1.39, it was 
discovered that IgniteTypeFactory#leastRestrictive does not take into account 
the nullability of the resulting type when merging FLOAT and DOUBLE.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to