Comments (11)
For anyone else looking for this, the solution is to implement supports_filters_pushdown
on the table, then use that to apply filters within scan
.
Feel free to close this if you like.
from arrow-datafusion.
Relabed from bug to feature -- thanks @samuelcolvin
from arrow-datafusion.
I think using the reported statistics to prune using datafusion::physical_optimizer::pruning::PruningPredicate would be a nice improvement (so each table provider didn't have to apply the basic min/max filters themselves)
from arrow-datafusion.
@alamb using PruningPredicate
makes sense, but please can you point me at where I need to make changes to add this functionality?
from arrow-datafusion.
@alamb using
PruningPredicate
makes sense, but please can you point me at where I need to make changes to add this functionality?
I recommend updating the existing though poorly named AggregateStatistics pass
And there you could potentially call ExecutionPlan::statistics()
and use PruningPredicate to prove that some predicates can't be true and replace them with PlaceholderRowExec
from arrow-datafusion.
(Thank you for working on this, bTW)
from arrow-datafusion.
@samuelcolvin have you already started to write code?
from arrow-datafusion.
No code yet, if you'd like to work on this, feel free.
from arrow-datafusion.
Actually I'm on a flight today, so might have some time to work on this.
from arrow-datafusion.
Progress update, I've got min & max stats pruning "working" in our code, however I immediately ran into #10536, I'll let you know how I get on.
from arrow-datafusion.
You know it occurs to me that @dmitrybugakov / @jayzhan211 may be working on a similar feature with a different approach on #10456 🤔 I
from arrow-datafusion.
Related Issues (20)
- Update `REPLACE` scalar function to support Utf8View HOT 1
- Update `REPEAT` scalar function to support Utf8View HOT 1
- Update `REVERSE` scalar function to support Utf8View HOT 1
- Update `RTRIM` scalar function to support Utf8View HOT 2
- Update `RIGHT` scalar function to support Utf8View HOT 1
- Update `RPAD` scalar function to support Utf8View HOT 3
- Internal error `generate_series`: Internal error: could not cast value to .....arrow_array::types::Date32Type`
- Support creating arrays with non-nullable elements in `make_array` HOT 7
- Manage group values and states by blocks in aggregation HOT 7
- Support `element_at` for `Map` type HOT 1
- Change default value of `datafusion.catalog.has_header` to `true` HOT 2
- Add additional regexp functions
- Update `SPLIT_PART` scalar function to support Utf8View HOT 1
- Update `STRPOS` scalar function to support Utf8View HOT 1
- Update `SUBSTR` scalar function to support Utf8View HOT 1
- Update `TRANSLATE` scalar function to support Utf8View HOT 1
- Update `FIND_IN_SET` scalar function to support Utf8View HOT 1
- Latest nightly clippy complains about more things
- Suggest get_expr_planners() return Vec<> rather than &[] HOT 1
- Link is outdated
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arrow-datafusion.