-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IGNITE-24196 Sql. Merge projection into join node #5398
Conversation
...l-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/LogicalRelImplementor.java
Outdated
Show resolved
Hide resolved
...l-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/LogicalRelImplementor.java
Show resolved
Hide resolved
- replaced `joinNeedsProjection` method with enumSet - make `joinWithProjectionOnTopReturnsValidaResults` test sensible to changes in `createJoinProjection`
@ParameterizedTest | ||
@MethodSource("joinTypesWithRulesToDisable") | ||
@SuppressWarnings("ConcatenationWithEmptyString") | ||
void joinWithProjectionOnTopReturnsValidaResults(JoinType joinType, List<String> rulesToDisable) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
void joinWithProjectionOnTopReturnsValidaResults(JoinType joinType, List<String> rulesToDisable) { | |
void joinWithProjectionOnTopReturnsValidResults(JoinType joinType, List<String> rulesToDisable) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed, thanks
checker.check(); | ||
} | ||
|
||
private static Stream<Arguments> joinTypesWithRulesToDisable() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose this is second reincarnation of ItAggregatesTest#makePermutations - if so, can we merge them ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we won't get rid of joinTypesWithRulesToDisable
because it creates permutation of join algorithms with combinations of rules to disable while ItAggregatesTest#makePermutations
only creates combination of rules to disable. We can replace three-line stream
List<String> rulesToDisable = joinConverterRules.stream()
.filter(ruleName -> !joinAlgo.equals(ruleName))
.collect(Collectors.toList())
with a single method call, but the amount of changes required to refactor ItAggregatesTest#makePermutations
as library function simply makes the effort doesn't worth it.
If you insists, I would propose to do it as follow up ticket though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, i`m not insist, plz proceed
...l-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItJoinOrderTest.java
Show resolved
Hide resolved
- typo
# Conflicts: # modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExecutionTest.java
https://issues.apache.org/jira/browse/IGNITE-24196
This patch introduces new
SqlJoinProjection
expression to use instead ofRowFactory#concat
in join nodes. Besides, in reorganizes schema initialization inItJoinOrderTest
to take an advantage of DDL batching.Results of SqlJoinBenchmark on my laptop as follow:
Also I run query 64 from TPC-DS with sf=1 to make sure there is no degradation:
Thank you for submitting the pull request.
To streamline the review process of the patch and ensure better code quality
we ask both an author and a reviewer to verify the following:
The Review Checklist
- 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 description of the JIRA ticket explains WHAT was made, WHY and 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.
Notes