influxdata / influxdata/influxdb
fill should force a return of values, even if the query has none
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
### Feature Request
Could be considered a bug, really a matter of perspective.
**Proposal:** [Description of the feature]
If there is a `fill()` clause attached to the query, the query should return all buckets specified, even if there are no matching points.
**Current behavior:** [What currently happens]
If the query has nothing but null results, the `fill()` clause is ignored.
Simple measurement with one point from yesterday:
```
> select * from fillfoo
name: fillfoo
-------------
time value
2016-07-05T20:20:00Z 42
>
```
Selecting a `SUM` with a `GROUP BY time()` and `fill()` clauses returns all expected buckets, with the `fill()` clause applied to buckets with no data:
```
> select sum(value) from fillfoo where time > now() - 21h group by time(4h) fill(0)
name: fillfoo
-------------
time sum
2016-07-05T16:00:00Z 0
2016-07-05T20:00:00Z 42
2016-07-06T00:00:00Z 0
2016-07-06T04:00:00Z 0
2016-07-06T08:00:00Z 0
2016-07-06T12:00:00Z 0
2016-07-06T16:00:00Z 0
```
However, if every bucket has no data, `fill()` is not invoked.
```
> select sum(value) from fillfoo where time > now() - 20h group by time(4h) fill(0)
>
```
**Desired behavior:** [What you would like to happen]
`fill()` should be used to populate all buckets that don't otherwise have data, including when all buckets are null.
```
> select sum(value) from fillfoo where time > now() - 20h group by time(4h) fill(0)
name: fillfoo
-------------
time sum
2016-07-06T00:00:00Z 0
2016-07-06T04:00:00Z 0
2016-07-06T08:00:00Z 0
2016-07-06T12:00:00Z 0
2016-07-06T16:00:00Z 0
```
**Use case:** [Why is this important (helps with prioritizing requests)]
This is not expected behavior and leads to user confusion when they expect `fill()` to always be applied:
https://groups.google.com/d/msgid/influxdb/6b233752-edd2-4523-9022-5c83dbcae344%40googlegroups.com
https://github.com/influxdata/influxdb/issues/6412
https://github.com/influxdata/influxdb/issues/6953
Contributor guide
Assessment
This issue has not been assessed yet.