influxdata / influxdata/influxdb

There is a logical exception when applying time filtering with aggregate functions.

Open
#25,633 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.