Skip to content

EPIC: Statistics improvements #5

@edmondop

Description

@edmondop

Is your feature request related to a problem or challenge?

Is your feature request related to a problem or challenge?
We would like to use "statistics" in our project for transformations that rely on the statisics being "correct" (e.g. that the there are no values outside the min and max range).

DataFusion has several optimizations like this too that rely on statistics being correct such as skipping file scans with limits such as in https://github.com/apache/arrow-datafusion/blob/e54894c39202815b14d9e7eae58f64d3a269c165/datafusion/core/src/datasource/statistics.rs#L34-L33. There are also suggestions of additional such optimizations like apache#6672

However the current Statistics code seems to make it hard to manage the 'are the statistics exact and can they be guaranteed for transformations' (@crepererum noted this quite some time ago on apache#5613). This has recently lead to several bugs such as

apache#8049
apache#8094
We would like to make it clearer what is known and what is an estimate is know (e.g. the min/max of row counts may be known, but the actual value may be an estimate after a filter). This is described in more detail on apache#8078

As we began exploring this concept we ran into several issues with Statistics and I think it is getting big enough to warrant its own tracking epic

Related items

apache#8110

apache#8111

apache#8295

apache#8229

apache#8228

apache#8078

apache#8133

apache#8099

apache#7490

apache#5614

apache#5613

apache#8309

apache#2976

apache#8334

apache#8335

apache#7925

apache#8342
Pruning Improvements (maybe should be its own epic)

apache#7869

apache#8376
Describe the solution you'd like
No response

Describe alternatives you've considered
No response

Additional context
This is somewhat related

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions