Use atomics for SQLMetric implementation, remove unused name field#25
Merged
andygrove merged 1 commit intoapache:masterfrom Apr 22, 2021
Merged
Use atomics for SQLMetric implementation, remove unused name field#25andygrove merged 1 commit intoapache:masterfrom
andygrove merged 1 commit intoapache:masterfrom
Conversation
Contributor
Author
|
Probably one for @andygrove, if you have some time :) |
Dandandan
approved these changes
Apr 21, 2021
Contributor
Dandandan
left a comment
There was a problem hiding this comment.
Looking quite a bit cleaner! 😎
Codecov Report
@@ Coverage Diff @@
## master #25 +/- ##
==========================================
- Coverage 70.41% 70.39% -0.02%
==========================================
Files 123 123
Lines 21261 21255 -6
==========================================
- Hits 14970 14963 -7
- Misses 6291 6292 +1
Continue to review full report at Codecov.
|
Member
|
Closes #30 |
andygrove
added a commit
that referenced
this pull request
Jan 12, 2023
* Initial commit * initial commit * failing test * table scan projection * closer * test passes, with some hacks * use DataFrame (#2) * update README * update dependency * code cleanup (#3) * Add support for Filter operator and BinaryOp expressions (#4) * GitHub action (#5) * Split code into producer and consumer modules (#6) * Support more functions and scalar types (#7) * Use substrait 0.1 and datafusion 8.0 (#8) * use substrait 0.1 * use datafusion 8.0 * update datafusion to 10.0 and substrait to 0.2 (#11) * Add basic join support (#12) * Added fetch support (#23) Added fetch to consumer Added limit to producer Added unit tests for limit Added roundtrip_fill_none() for testing when None input can be converted to 0 Update src/consumer.rs Co-authored-by: Andy Grove <andygrove73@gmail.com> Co-authored-by: Andy Grove <andygrove73@gmail.com> * Upgrade to DataFusion 13.0.0 (#25) * Add sort consumer and producer (#24) Add consumer Add producer and test Modified error string * Add serializer/deserializer (#26) * Add plan and function extension support (#27) * Add plan and function extension support * Removed unwraps * Implement GROUP BY (#28) * Add consumer, producer and tests for aggregate relation Change function extension registration from absolute to relative anchor (reference) Remove operator to/from reference * Fixed function registration bug * Add test * Addressed PR comments * Changed field reference from mask to direct reference (#29) * Changed field reference from masked reference to direct reference * Handle unsupported case (struct with child) * Handle SubqueryAlias (#30) Fixed aggregate function register bug * Add support for SELECT DISTINCT (#31) Add test case * Implement BETWEEN (#32) * Add case (#33) * Implement CASE WHEN * Add more case to test * Addressed comments * feat: support explicit catalog/schema names in ReadRel (#34) * feat: support explicit catalog/schema names in ReadRel Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix: use re-exported expr crate Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * move files to subfolder * RAT * remove rust.yaml * revert .gitignore changes * tomlfmt * tomlfmt Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Co-authored-by: Daniël Heres <danielheres@gmail.com> Co-authored-by: JanKaul <jankaul@mailbox.org> Co-authored-by: nseekhao <37189615+nseekhao@users.noreply.github.com> Co-authored-by: Ruihang Xia <waynestxia@gmail.com>
alamb
pushed a commit
that referenced
this pull request
Aug 8, 2024
…calculations, limit/order/distinct (#11756) * Fix unparser derived table with columns include calculations, limit/order/distinct (#24) * compare format output to make sure the two level of projects match * add method to find inner projection that could be nested under limit/order/distinct * use format! for matching in unparser sort optimization too * refactor * use to_string and also put comments in * clippy * fix unparser derived table contains cast (#25) * fix unparser derived table contains cast * remove dbg
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
As mentioned in apache/arrow#10049 as a potential followup, this PR simplifies metrics management in physical ops by removing the need for a mutex around
SQLMetricinstances, instead using atomics to track metric values.I've also removed the
namefield as this info is duplicated byExecutionPlan::metricsreturning a string-keyed map. Happy to revert that portion of the change if people feel strongly about it though!It might be possible to futher simplify this by removing the
Arcallocs and sharingSQLMetricinstances asSyncreferences if the existing lifetime setup plays nicely with it, but I didn't want to spend too much time digging into this; I think this PR as-is gives us the immediate win of not needing to deal with mutexes :)