[jira] [Commented] (IGNITE-12620) Calcite integration. Index Nested Loop Join/Hash Join
[ https://issues.apache.org/jira/browse/IGNITE-12620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17152566#comment-17152566 ] Alexey Goncharuk commented on IGNITE-12620: --- [~gvvinblade] Since trait propagation logic was reworked, can you provide a high-level logic that is executed in each {{derive}} method (the high-level invariants that are not dependent on the implementation details) in javadoc? Currently it's a bit hard to follow the target behavior. > Calcite integration. Index Nested Loop Join/Hash Join > - > > Key: IGNITE-12620 > URL: https://issues.apache.org/jira/browse/IGNITE-12620 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Seliverstov >Assignee: Igor Seliverstov >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > We may implement the feature the next way: > # For each row from left node consume whole dataset from right node > # Pass join condition as an argument of request() method of the right node > # In case a data source at right is an index scan > ## If there is no cursor opened - create a new cursor using bounds from > request > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > # In case a data source at right is a table scan with huge amount of rows > ## If there is no cursor opened - create a new cursor ignoring passed > condition > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > # In case a data source at right is remote / is a table scan with small > number of rows/ is a filter node with good enough selectivity > ## Create a hash index for a data source > ## If there is no cursor opened - create a new cursor using bounds from > request > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > Consider implementation specifics at optimization time, choose the cheapest > variant -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12620) Calcite integration. Index Nested Loop Join/Hash Join
[ https://issues.apache.org/jira/browse/IGNITE-12620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17148795#comment-17148795 ] Igor Seliverstov commented on IGNITE-12620: --- [~agoncharuk],[~amashenkov],[~korlov],[~tledkov-gridgain], guys, please look at > Calcite integration. Index Nested Loop Join/Hash Join > - > > Key: IGNITE-12620 > URL: https://issues.apache.org/jira/browse/IGNITE-12620 > Project: Ignite > Issue Type: New Feature >Reporter: Igor Seliverstov >Assignee: Igor Seliverstov >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > We may implement the feature the next way: > # For each row from left node consume whole dataset from right node > # Pass join condition as an argument of request() method of the right node > # In case a data source at right is an index scan > ## If there is no cursor opened - create a new cursor using bounds from > request > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > # In case a data source at right is a table scan with huge amount of rows > ## If there is no cursor opened - create a new cursor ignoring passed > condition > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > # In case a data source at right is remote / is a table scan with small > number of rows/ is a filter node with good enough selectivity > ## Create a hash index for a data source > ## If there is no cursor opened - create a new cursor using bounds from > request > ## If there is an existing cursor - just check the cursor was opened using > the same condition as passed one. > ## After the right node signals EOD consume a next row from left and repeat > from p 2. > Consider implementation specifics at optimization time, choose the cheapest > variant -- This message was sent by Atlassian Jira (v8.3.4#803005)