-
Notifications
You must be signed in to change notification settings - Fork 176
feat: close upstream coverage gaps for DataFusion 55.1.0 #1763
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
Open
timsaucer
wants to merge
31
commits into
apache:main
Choose a base branch
from
timsaucer:feat/upstream-coverage-gaps
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
5a0e79d
feat: expose any_value, array math, array_first, and missing Spark fu…
timsaucer 8027fcb
feat: add rand, substring_index, file metadata functions, and distinc…
timsaucer 97e6031
feat(spark): add pyspark aliases and optional-length substr
timsaucer e8c2192
feat: accept optional arguments upstream supports on trim, array_to_s…
timsaucer 2747573
feat: add DataFrame.fill_nan
timsaucer 24764bd
feat: add null_treatment to lead and lag
timsaucer b035c97
feat: add show_statistics, analyze_level, and analyze_categories to e…
timsaucer d2ac890
fix: keep existing options when chaining aggregate and window builders
timsaucer 97e5905
feat: accept a bare PyCapsule in ScalarUDF and WindowUDF
timsaucer d53a255
chore: export TableProviderFactory from datafusion.catalog
timsaucer 5d43576
docs(skill): record DataFrame.to_string as not needing exposure
timsaucer f6d0478
fix: resolve the _PyCapsule type alias so capsule overloads type-check
timsaucer 6345b17
fix: keep an explicit window frame that equals the default when chaining
timsaucer 73b052d
fix: leave lead and lag null_treatment unset by default
timsaucer 8173554
fix: keep existing window function options in over()
timsaucer 96f990b
feat: accept native ints and a single argument in range and gen_series
timsaucer d731279
fix: decide window frame re-derivation from the expression alone
timsaucer b4cad2d
fix: treat the frame an empty order_by derives as a default when chai…
timsaucer 92ace16
fix: raise when a builder option does not apply to the function kind
timsaucer 8e21c8a
docs: note that over() drops options set on an aggregate
timsaucer 6b52225
docs: document that chaining now keeps options already set
timsaucer 0ac494e
fix: reject a non-bool distinct in string_agg
timsaucer 607dde4
fix: reject show_statistics combined with analyze in explain
timsaucer 4933fa2
fix: treat a bare str as a column name in spark.printf
timsaucer 23ed533
fix: name the expected and found capsule when importing a UDF
timsaucer 8454a09
fix: treat an empty fill_null or fill_nan subset as no columns
timsaucer 1b01845
fix: keep the sort direction in percentile_cont and friends
timsaucer f8d7b70
fix: allow the keyword-only form of the udf, udaf, and udwf decorators
timsaucer 7259819
docs: fix the broken guide links in aggregate docstrings
timsaucer d779502
test: check that bit_and and bit_or keep distinct in the expression
timsaucer db5b7cc
docs(skill): show substr's length argument as valid
timsaucer 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
Some comments aren't visible on the classic Files Changed page.
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
Oops, something went wrong.
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.
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.
Upstream
DataFrame::fill_nan(viafill_columns) rebuilds every column withcol(field.name()), which parses the name as an identifier (lowercasing it, splitting on.). Sofill_nanfails on any DataFrame with an uppercase or dotted column name, even when that column isn't insubset:fill_nullhas the same upstream bug, so this is probably worth an upstream issue (ident(field.name())there would fix both). Until then the wrapper could build the projection itself from unparsed column references plusnanvl.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.
Confirmed in pure Rust on 55.1.0, for both
Nameanda.bcolumn names, and filed upstream as apache/datafusion#25829 with a suggested fix (Expr::Column(Column::from((qualifier, field))), which also keeps the qualifier). I've left the wrapper as-is sofill_nanandfill_nullkeep behaving the same way, and we'll pick up the upstream fix when it lands.