Skip to content
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

latest #2

Merged
merged 159 commits into from
Mar 31, 2020
Merged

latest #2

merged 159 commits into from
Mar 31, 2020

Conversation

tooptoop4
Copy link
Owner

No description provided.

kasiafi and others added 30 commits March 17, 2020 14:16
Adds a new Optimiser rule PruneApplySourceColumns.
This rule, and a project-off rule PruneApplyColumns,
togrther provide the same column-pruning capability as
PruneUnreferencedOutputs#visitApply().
Changed Domain#simplify to avoid copying internal structures to get size of Ranges or DiscreteValues
Things declared in Hive connector are for hive, so `@ForHive` does not
add more information.
Previously the code assumed that every conjunct of `newJoinPredicate` is
a `ComparisonExpression`. It's no longer the case.
It allows extending with new group providers by mounting
different group-provider.properties files.
This is a fix for #2730. When
merging small reads, if the first range and second range are more than 2
GB apart, mergeAdjacentDiskRanges() throw sn ArithmeticException because
merging those two ranges is too big to fit in a DiskRange. The correct
behavior is to not merge those ranges because this implies the ranges
are farther apart than maxReadSizeBytes.
findepi and others added 29 commits March 29, 2020 09:59
File.getPath() is the canonical way to convert File to its String
representation suitable for passing to new File().
Some connectors need better control over various parts of the query.
Deprecate the overload that doesn't take `dynamicFilter` parameter.
`TupleDomain` is not none, so `Domain` is not none too.
Handle none `TupleDomain` on the calling side.
The original condition is equivalent to `isAll`, handled above.
Adds utility classes that enable explicit initialization and
management of antlr parser and lexer ATN caches. Without them,
these fields are static constants that can grow to retain multiple
GB of heap space depending on input query strings.
`PredicatePushDown` may determine a join needs to be inner because of
dynamic filter function call. Since dynamic filters pushdown is delayed
after join reordering, when this happens the distribution type may be
fixed already. For INNER joins we are able to completely remove join
condition.
Nested loops operator for cross join does not support column
pruning.
Before this change, there was a check in the JoinNode constructor
that did not allow symbol pruning in the case of a cross join.
This change removes the constraint from the JoinNode constructor
and adds a sanity check in ValidateDependenciesChecker to make sure
that output symbols of cross join contain all input symbols.
Delaying the check until post-optimization gives the convenience
of creating a column-pruning cross join on intermediate steps of
optimization. It simplifies changing JoinNode's parameters
such as filter, criteria and type.
This change will be completed by set of optimizer rules
to ensure that the optimized plan does not contain pruning
cross join nodes.
@tooptoop4 tooptoop4 merged commit 9737f56 into tooptoop4:master Mar 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.