IssueRaiser

fill should force a return of values, even if the query has none

### 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

Posted by beckettsean on Jul 6, 2016, 4:27 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.5,000 issues0 comments

github (Other)

fill should force a return of values, even if the query has none

beckettseanJul 6, 2016, 4:27 PM

### 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

Comments (0)

No comments yet. Start the discussion.

Comment on this issue