-
Notifications
You must be signed in to change notification settings - Fork 1.9k
IGNITE-27430 SQL Calcite: Optimize IndexScan node creation #12599
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
base: master
Are you sure you want to change the base?
Conversation
...rc/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractCacheScan.java
Outdated
Show resolved
Hide resolved
...rc/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractCacheScan.java
Outdated
Show resolved
Hide resolved
|
|
||
| /** */ | ||
| protected final boolean explicitParts; | ||
| private final int[] explicitParts; |
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.
Do we need to keep it? Can we pass it the reservation manager? WDYT? Another ticket?
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.
It's rare case. It affects H2 engine too. I think it's not for current ticket.
...java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactoryImpl.java
Outdated
Show resolved
Hide resolved
modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java
Show resolved
Hide resolved
| * @param topVer Topology version. | ||
| * @param parts Partitions set. | ||
| */ | ||
| public IndexingQueryFilterImpl( |
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 have also ctor.
IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer,
@Nullable int[] partsArr, boolean treatReplicatedAsPartitioned)
Can one reuse another?
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.
Call to this(...) must be the first statement in the constuctor. We can't build parts BitSet before the first statement (we can create new parts conversion method, but looks like there will be more code then without reusing the constructor)
| /** */ | ||
| public class TableScan<Row> extends AbstractCacheColumnsScan<Row> { | ||
| /** */ | ||
| protected volatile List<GridDhtLocalPartition> reservedParts; |
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.
Is volatile because we can read it from another Calcite query thread?
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.
Node can be created in user thread (from ExecutionServiceImpl#mapAndExecutePlan), but executed in calcite thread pool
|




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
The description explains WHAT and WHY was made instead of HOW.
The following pattern must be used:
IGNITE-XXXX Change summarywhereXXXX- number of JIRA issue.(see the Maintainers list)
the
green visaattached to the JIRA ticket (see TC.Bot: Check PR)Notes
If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.