-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[MAJOR] Equivalence System Overhaul #16217
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
Merged
Merged
Changes from all commits
Commits
Show all changes
197 commits
Select commit
Hold shift + click to select a range
5df66e7
introduce Soft & Hard RequiredInputOrderings
7c9f6d3
add documentation to replace_with_partial_sort
3c76bdc
add documentation to analyze_immediate_sort_removal
265e00e
remove prefer_existing_sort effects
23e0bf6
remove prefer_existing_sort configuration
ee626d1
remove prefer_existing_sort configuration
0b98382
add documentation
a41dfec
add documentation
f6dae9d
add documentation
419e8ab
Merge branch 'refs/heads/apache_main' into soft-required-input-ordering
81d5ac0
Merge branch 'refs/heads/apache_main' into soft-required-input-ordering
d551623
fix imports and test cases
9a1b5b5
fix imports and test cases
77e97fd
implement RequiredInputOrdering as vectors
1d90a71
implement RequiredInputOrdering as vectors
7949ca0
Merge branch 'refs/heads/apache_main' into required-input-ordering
55ef9aa
fix test cases
ea2583b
change doc
c83862f
revert prefer_existing_sort flag
87dd95e
fix changes
24dba16
fix test case
8635d5e
make LexRequirement private
ab28421
ensure RequiredInputOrdering inner requirement can not be empty
cb8f763
add default test cases
1c1f116
doc fixes
7817b4f
fix clippy and docs
6b43982
format code
55b9cf1
format code
156b84c
Merge branch 'refs/heads/apache_main' into required-input-ordering
41e4292
doc fix
f80f093
add TODO test cases with test_soft_hard_requirements prefix
b41fa2f
Review Part 1
ozankabak 117783f
Review Part 2
ozankabak d402680
Review Part 3
ozankabak 807c28d
Review Part 4
ozankabak b07b377
Review Part 5
ozankabak 51f5cd9
Review Part 6
ozankabak 86e69a1
Enforce non-degeneracy for LexRequirement
ozankabak bade16d
Enforce non-degeneracy for LexOrdering (Part 1)
ozankabak e661b66
Merge branch 'refs/heads/apache_main' into required-input-ordering
0ba2db4
Enforce non-degeneracy for LexOrdering (Part 2)
ozankabak 2c4a1f8
Merge remote-tracking branch 'origin/required-input-ordering' into re…
669a649
fix first phase of merge conflicts and other bugs
cf1c527
Fix sqllogictests except the schema mismatch
ozankabak 45bc4ec
Cleanup Part 1
ozankabak 923115c
Cleanup Part 2
ozankabak ef738ea
Cleanup Part 3
ozankabak 272a098
do not initialize Trivial accumulators if ordering is set
b9c18dc
Merge remote-tracking branch 'origin/required-input-ordering' into re…
23f1108
initialize TrivialFirstPrimitiveGroupsAccumulator struct and return
63385fa
fix clippy
39d1848
Merge branch 'refs/heads/apache_main' into required-input-ordering
f70197f
fix merge conflicts
4e5d094
fix typos
30594f0
format code
ebda669
Add requirement_satisfied back in
ozankabak 198ffae
Replace AsRef with ordinary & for LexOrdering
ozankabak 241ac0c
Further cleanup
ozankabak 1776ece
Merge branch 'refs/heads/apache_main' into required-input-ordering
4c494d7
add OutputRequirementExec fetches to sort adding
99755c7
Simplify remove_redundant_entries
ozankabak 99223ae
Work with iterators in ordering_satisfy_requirement
ozankabak cef12ca
Fix doctests
ozankabak 4ae0807
Cleanup LexOrdering APIs
ozankabak 851779d
Cleanup LexOrdering APIs 2
ozankabak cebb0d0
Add reverse_each to LexOrdering
ozankabak 44e6b95
Use LexOrdering instead of Arc<[PhysicalSortExpr]>
ozankabak 804bec5
Use PhysicalSortExpr slices in contexts where we simply list sort exp…
ozankabak b2c2c75
Generalize add_new_ordering APIs
ozankabak 166f9a4
Simplifications
ozankabak 96b73b3
More cleanups
ozankabak 159139a
API Simplifications
ozankabak a3eb637
Improve comments
ozankabak e56306c
Use vector in Expr structs
ozankabak a82fa38
Fix doctests
ozankabak 6f86ebd
Simplify sort
ozankabak 1a1a556
Simplify the get_finer_aggregate_exprs_requirement function
ozankabak 5b121d0
Avoid hidden clones
ozankabak aba45be
bugfix
ozankabak 84ccfd5
Simplify the get_finer_aggregate_exprs_requirement function
ozankabak eb07739
Simplify the function with_reorder
ozankabak 0c9c93f
Fix with_reorder bug
ozankabak 2fa9da8
Simplify the function with_reorder (Part 2)
ozankabak 06f9ef0
Simplify
ozankabak 65b546b
DRY
ozankabak 2517590
Simplifications
ozankabak 842b7d5
Improve add_equal_condition
ozankabak 16bc515
Improve docs
ozankabak ddf8ef9
Simplifications
ozankabak 5962808
Merge branch 'apache_main' into required-input-ordering
ozankabak d1173aa
Simplifications
ozankabak 32d4431
RequiredInputOrdering -> OrderingAlternatives
ozankabak eb61621
Merge branch 'apache_main' into required-input-ordering
ozankabak c4d70a4
Simplify new_with_orderings
ozankabak 38ff1eb
Transition to fallible LexOrdering constructor
ozankabak a3101bb
Transition to fallible LexOrdering constructor - 2
ozankabak 8819ace
Transition to fallible LexOrdering constructor - 3
ozankabak 3660ce5
Transition to fallible LexOrdering constructor - 4
ozankabak 4c9770c
Transition to fallible LexOrdering constructor - 5
ozankabak 7f2fe97
Transition to fallible LexOrdering constructor - 6
ozankabak 95f7182
Transition to fallible LexOrdering constructor - 7
ozankabak a9b3b70
Transition to fallible LexOrdering constructor - 8
ozankabak e291ecd
Transition to fallible LexOrdering constructor - 9
ozankabak 39e6a9e
Transition to fallible LexOrdering constructor - 10
ozankabak 0810007
Transition to fallible LexOrdering constructor - 11
ozankabak 1ba1830
Simplify constant expressions
ozankabak f2f48a1
Simplify constant expressions - 2
ozankabak b905976
Simplify constant expressions - 3
ozankabak a9c17f6
Simplify constant expressions - 4
ozankabak 47ca84c
Simplify constant expressions - 5
ozankabak 2f80439
Simplify constant expressions - 6
ozankabak 591fc74
Simplify constant expressions - 7
ozankabak 79ad9d7
Simplify constant expressions - 8
ozankabak 61a41bc
Simplify constant expressions - 9
ozankabak 5567249
Merge branch 'apache_main' into required-input-ordering
ozankabak 5292fbb
Merge branch 'apache_main' into required-input-ordering
ozankabak ea6fe10
Fix imports
ozankabak 278cb49
Merge branch 'apache_main' into required-input-ordering
ozankabak 9b22545
Remove explicit constant tracking from equivalences
ozankabak d5468f5
Merge branch 'apache_main' into required-input-ordering
ozankabak 00ce540
Resolve logical conflict
ozankabak 052120f
Remove the unusual take API, instead use the from trait
ozankabak 0b37352
Simplify projection mapping - 1
ozankabak 914458e
Use a map instead of a vector in ProjectionMapping
ozankabak cce6168
Simplify DependencyMap
ozankabak 8094ab0
Simplify DependencyMap - 2
ozankabak 98ff7d2
Simplify DependencyMap - 3
ozankabak 1bcc9bc
Merge branch 'apache_main' into required-input-ordering
ozankabak 564ea22
Incorporate Jay's suggestions
ozankabak 0fc3465
Simplifications
ozankabak 4171887
Fix doctest
ozankabak 47d5c72
Improve docstrings
ozankabak ece9d5f
Update/cast the constant value accordingly when schema changes
ozankabak 20e2284
Merge branch 'apache_main' into required-input-ordering
ozankabak be45b96
Improve ProjectionMapping
ozankabak 7f2b0db
Remove DerefMut from ProjectionTargets to preserve non-emptiness
ozankabak cb0972d
Docstring
ozankabak 9f898ec
Optimize project_expr by fetching equivalence classes only once
ozankabak 74f74b3
Project multiple expressions more efficiently at once
ozankabak e4ff5fa
Merge branch 'apache_main' into required-input-ordering
ozankabak 4839e6b
Project multiple expressions more efficiently at once - 2
ozankabak 96ec3b4
Project multiple expressions more efficiently at once - 3
ozankabak 82486ae
Project multiple expressions more efficiently at once - 4
ozankabak c8bc03c
Merge branch 'apache_main' into required-input-ordering
ozankabak 51e7e80
Move normalization of sort expressions to equivalence group
ozankabak 7252898
Improve comments
ozankabak 6b63999
Merge branch 'apache_main' into required-input-ordering
ozankabak 95c89b5
Improve display for EquivalenceProperties
ozankabak 0cfb364
More idiomatic code
ozankabak 277f867
More succinct code
ozankabak 8060162
Remove extend_orderings from EquivalenceProperties
ozankabak 703db4b
Simplify with_reorder
ozankabak b927015
Merge branch 'apache_main' into required-input-ordering
ozankabak 2d38c14
Store normalized orderings - 1
ozankabak 653ff87
Reduce time complexity of normalization w.r.t. number of equivalence …
ozankabak 0c7b2e2
Merge branch 'apache_main' into required-input-ordering
ozankabak d6f7319
Simplify bridge_classes logic
ozankabak 8cea6b4
Remove TODOs
ozankabak bf39ae7
Simplify generate_dependency_orderings
ozankabak ce84d2f
normalized orderings - 2
ozankabak 0c99d3d
normalized orderings - 3
ozankabak 1c2b911
undo normalized orderings
ozankabak c9d40d3
Merge branch 'apache_main' into required-input-ordering
ozankabak e8018bd
Fix logical conflicts
ozankabak 5e65c35
Fix imports
ozankabak 04e96f2
Remove noop code
ozankabak 3a7d518
Move add_offset_to_expr
ozankabak 3e4de1e
Remove mutation from LexOrdering
ozankabak 2dbb8ce
Remove unwraps
ozankabak 32efc62
Remove unwraps - 2
ozankabak 6620506
Remove unwraps - 3
ozankabak 0b61bea
Remove unwraps - 4
ozankabak 93722a6
Remove collapse from LexOrdering
ozankabak e56ea33
Remove unwraps - 5
ozankabak 22b216e
Remove unwraps - 6
ozankabak 6e825a3
Remove unwraps - 7
ozankabak f9f2545
Remove unwraps - 8
ozankabak 5df5233
Remove unwraps - 9
ozankabak 8c70b7b
Remove unwraps - 10
ozankabak 73294b6
Remove collapse from LexRequirement
ozankabak 2448d2f
Merge branch 'apache_main' into required-input-ordering
ozankabak c2197f3
Simplify ordering_satisfy
ozankabak 1685834
Enforce uniqueness in LexOrdering
ozankabak a1ae1cc
Fix with_reorder
ozankabak 192ef41
Merge branch 'apache_main' into required-input-ordering
ozankabak 34f1afc
Use tee
ozankabak d1b379a
Fix reorder api
ozankabak a87505e
Comment grammar
ozankabak 4ac3c2b
Remove unwraps
ozankabak c704256
Cache normalized orderings
ozankabak a75ae44
Merge branch 'apache_main' into required-input-ordering
ozankabak e7bda2c
Minor: remove an unecessary clone in common_sort_prefix_length
alamb 1aebf24
Merge pull request #72 from alamb/alamb/tweaks_to_input
berkaysynnada 74d023b
Address reviews
ozankabak 0d4e8b2
Merge branch 'apache_main' into required-input-ordering
ozankabak 32de761
Merge branch 'apache_main' into required-input-ordering
ozankabak bde28fc
Merge branch 'apache_main' into required-input-ordering
ozankabak File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.