apache / apache/iotdb

[Bug] SHOW TIMESERIES WHERE TAGS(...) CONTAINS is Case-Sensitive While Timeseries CONTAINS is Case-Insensitive

Open
#16,876 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.4k
Forks
1.2k
Avg merge
1d 23h
Merged PRs (30d)
115

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

apache iotdb = 2.0.5

### Describe the bug and provide the minimal reproduce step

I'm encountering inconsistent behavior in SQL queries involving `CONTAINS` filters on timeseries metadata. When searching timeseries by `TAGS`, the `CONTAINS` operator behaves case-sensitively.

```sql
SHOW TIMESERIES WHERE TAGS(description) CONTAINS "Flow";
```
This returns results correctly because one of my timeseries has a tag `description="Flow"`.

But if I change the search to:
```sql
SHOW TIMESERIES WHERE TAGS(description) CONTAINS "flow";
```
It returns no results, even though `"Flow"` exists.
So tag-based `CONTAINS` filtering is case-sensitive.

### What did you expect to see?

`CONTAINS` should behave consistently across metadata fields, ideally being case-insensitive.
For **timeseries names**, the same query type is already **case-insensitive**:
```sql
SHOW TIMESERIES WHERE Timeseries CONTAINS "Flow";
```
This matches `"Flow"`, `"flow"`, `"FLOW"`, etc.

### What did you see instead?

#### Why This Matters:

* TAG searches are commonly used for metadata filtering and discovery.
* Case-sensitive matching makes searching inconsistent with other IoTDB metadata filters.
* It forces users to know exact casing of tags, reducing usability.

### Anything else?

_No response_

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start with the SHOW TIMESERIES queries in the issue, comparing TAGS(description) CONTAINS with Timeseries CONTAINS using different casing. Trace the implementation of these metadata filters and add coverage for the reported examples; done means TAGS CONTAINS behaves consistently with the existing case-insensitive Timeseries CONTAINS behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, sql
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.