-
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
47
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.
+2,983
−243
Open
Changes from all commits
Commits
Show all changes
47 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 2fb7cce
fix: keep aggregate options in over() and reject an aggregate order_by
timsaucer 99f506d
fix: treat the sort key added when decoding a RANGE frame as no order_by
timsaucer 7dd2658
fix: check the function kind on every builder call, not just the first
timsaucer e811758
fix: accept numpy and pandas column lists as fill_null and fill_nan s…
timsaucer 1af877f
fix: reject explain options that the chosen plan would ignore
timsaucer 473856e
fix: take a lone range or gen_series argument only by position
timsaucer 74b6434
fix: reject DISTINCT in Python aggregate UDFs instead of ignoring it
timsaucer daac7f2
docs: say a chained order_by sets only the percentile's sort direction
timsaucer a4fe393
docs: correct what distinct does in count_star and the weighted perce…
timsaucer 47359df
fix: accept numpy.bool_ as string_agg's distinct
timsaucer 1475123
fix: accept the callable by keyword in udf, udaf, udwf, and udtf
timsaucer 354db9a
docs: note that fill_null and fill_nan fail on uppercase or dotted names
timsaucer 9f2b326
docs: say mean's filter now works only when passed by keyword
timsaucer 6808f95
fix: resolve CapsuleType in context and extensions, and at runtime
timsaucer 4d66257
docs: show how to move an aggregate's order_by into the Window
timsaucer ad4a447
fix: import CapsuleType from types on Python 3.13 and newer
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
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
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.