Conversation
|
@kumarUjjawal Hi! First-time contributor here — this touches FilterExec statistics/selectivity. It looks like the Actions runs are waiting for approval. Would you mind kicking CI / taking a look when you get a chance? Happy to address any feedback. Thanks! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #25835 +/- ##
========================================
Coverage 82.60% 82.60%
========================================
Files 1144 1144
Lines 441971 442197 +226
Branches 441971 442197 +226
========================================
+ Hits 365081 365297 +216
- Misses 54807 54816 +9
- Partials 22083 22084 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
run benchmark tpcds tpch sql_planner compute_statistics |
|
run benchmark imdb |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark tpchResults will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark tpcdsResults will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark sql_plannerResults will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark compute_statisticsResults will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark imdbResults will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark tpchCPU Details (lscpu)Details
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark tpcdsCPU Details (lscpu)Details
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
kumarUjjawal
left a comment
There was a problem hiding this comment.
Thank you @limadog9
LGTM!
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark compute_statisticsCPU Details (lscpu)Details
Resource Usagecompute_statistics — base (merge-base)
compute_statistics — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark imdbCPU Details (lscpu)Details
Resource Usageimdb — base (merge-base)
imdb — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing fix/string-predicate-selectivity (340fcd5) to b9c8b3d (merge-base) diff Run configurationrun benchmark sql_plannerCPU Details (lscpu)Details
Resource Usagesql_planner — base (merge-base)
sql_planner — branch
File an issue against this benchmark runner |
|
@kumarUjjawal, could you please take a look at the conflict-resolution merge in 6f71e2e and approve the queued workflows so CI can run? The update merges GitHub now reports no merge conflicts, and your existing approval is still present. However, the push triggered seven workflows that require maintainer approval. I hadn't accounted for that additional approval step before the update—sorry for the extra interruption.
|
|
@kumarUjjawal A quick follow-up to my earlier comment: I clicked Update branch afterward, which triggered a fresh set of workflows that are awaiting approval again. I'm still learning the PR process and didn't realize that would require another workflow approval—sorry for the extra step! Could you approve the latest runs whenever you have a chance? No rush, and thanks again for your time and help. |
No worries. The general workflow is to avoid pushing changes once the pr is already approved unless there are conflict resolution or broken CI.
Happy to help |
Which issue does this PR close?
Closes #25614.
Rationale for this change
String equality, LIKE, and NOT LIKE currently receive the same fallback estimate. For a column with 1,000 rows, 200 NULLs, and 20 distinct non-null values, equality should estimate 40 matching rows and inequality 760, instead of estimating 200 for both.
What changes are included in this PR?
What is the testing strategy for this PR?
Public SQL planning tests in
datafusion/core/tests/custom_sources_cases/statistics.rsinject known statistics through the existing table-provider fixture. They cover Utf8, LargeUtf8, Utf8View, equality/inequality, pattern forms, escaped characters, ILIKE, unknown distinct counts, and configured fallback selectivity. Direct physical-plan tests cover patterns eliminated by SQL simplification, NULL/empty inputs, and column-valued patterns.Validation:
cargo fmt --allpassed.mainfilter implementation, with the expected row-count assertion failures.Are there any user-facing changes?
String filter row estimates change. No public API changes. Wildcard estimates remain heuristics in the absence of string histograms.