influxdb icon indicating copy to clipboard operation
influxdb copied to clipboard

A logical bug is triggered when comparison operators are applied to string data types.

Open LingweiKuang opened this issue 1 year ago • 0 comments

Dear InfluxDB Team, I have a bug that I need to report to you.

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 \
  --bucket db0 \
  --precision s "
t0,t0_tag0="initTag" t0_f0=0u 1641024000
t0,t0_tag0=initTag t0_f0=1u 1641024001
t0,t0_tag1=initTag t0_f0=0u 1641024000"

Next, we use the Influx v1 shell command to enter the Influx shell backend and execute two types of query statements:

# query 1
SELECT t0_f0, t0_tag0 FROM db0.autogen.t0 where 1 < 2
SELECT t0_f0, t0_tag0 FROM db0.autogen.t0 where 1u < 2u

# query 2
SELECT t0_f0, t0_tag0 FROM db0.autogen.t0 where 'A' < 'B'

# query 3
SELECT t0_f0, t0_tag0 FROM db0.autogen.t0 where t0_tag0 < 'a'

Expected behaviour

According to the InfluxDB OSS v2 development documentation, the WHERE clause supports comparisons against string, boolean, float, and integer field values. Query 1 and Query 2 should be able to retrieve all three data points, while Query 3 should not be able to retrieve any data.

Actual behaviour

Query 1 correctly retrieves three data points, but Query 2 returns "No results", while Query 3 is able to retrieve three data points.

It seems this could be a logical issue caused by applying comparison operators to string data types. Could you please confirm if this is the case?

Environment info

Influx CLI dev (git: none) build_date: 2023-04-28T14:24:14Z

InfluxDB OSS v2.7.10 (git: f302d97)

Linux 5.15.0-94-generic x86_64

LingweiKuang avatar Oct 11 '24 01:10 LingweiKuang