influxdata / influxdata/influxdb
There is a logical exception when applying time filtering with aggregate functions.
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
Dear InfluxDB Team, When I execute an aggregate function, there is a logical difference in the results depending on whether or not parentheses are added around the `time` field in the predicate expression. This behavior does not align with expectations.
#### Steps to reproduce
In the latest version of InfluxDB, if we have an organization named "**organization**", we can use the Influx client to execute the following commands to create a bucket and write the specified data into that bucket.
```
influx bucket delete --name db0
influx bucket create --name db0 --org organization
influx write \
-b db0 \
-o organization \
-p ms \
't0,t0_tag0=initTag t0_f0=1 1641024000000'
```
Next, we use the `influx v1 shell` command to enter the Influx shell backend and execute the following query statement:
```
# query 1
SELECT COUNT(t0_f0) FROM db0.autogen.t0 WHERE time >= 1641024000000000000 AND time <= 1641024000000000000 GROUP BY time(1800s);
# query 2
SELECT COUNT(t0_f0) FROM db0.autogen.t0 WHERE time >= 1641024000000000000 AND (time) <= 1641024000000000000 GROUP BY time(1800s);
```
#### Expected behaviour
Query 1 returned result set: 1
Query 2 returned result set: **1**
#### Actual behaviour
Query 1 returned result set: 1
Query 2 returned result set: 1, and there are multiple **zero** values.
#### Environment info
Influx CLI dev (git: a79a2a1b825867421d320428538f76a4c90aa34c) build_date: 2024-04-16T14:34:32Z
InfluxDB OSS v2.7.11 (git: [fbf5d4a](https://github.com/influxdata/influxdb/commit/fbf5d4ab5e65d3a3661aa52e1d05259d19a6a81b))
Linux 5.15.0-94-generic x86_64
Contributor guide
Research direction
Start by reproducing the two queries in the `influx v1 shell` using the bucket, measurement, timestamp, and commands provided. Compare the aggregate results when the second `time` predicate is parenthesized; done means both equivalent predicates produce the expected single result without extra zero values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100