ClickHouse / ClickHouse/clickhouse-cpp
Bug in MAX Function with MergeTree Engine
- Dominant language
- C
- Stars
- 382
- Forks
- 209
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 14
Description
Dear CK Team, I have a bug that I need to report to you.
Description:
While using the MAX/MIN function on a column with MergeTree table engine, the query produces inconsistent results. Specifically, this bug is triggered when a specific partition key is selected and the corresponding column contains NaN values
Steps to Reproduce:
```
CREATE TABLE t1 (c0 Int32)
ENGINE = MergeTree()
ORDER BY c0
PARTITION BY (toUInt64 (c0))
INSERT INTO t1 (c0)
VALUES (-766544500), (2052205600), (2064494500), (824848640), (0)
SELECT MAX(-(c0/c0/c0+c0))
FROM t1
```
Expected Behavior:
The result should be consistent and return the unique positive value 766544500.
Actual Behavior:
Different values are returned across multiple queries, including all values in c0 execpt NaN ( -766544500, 2052205600, 2064494500, 824848640, 0).
Environment
OS:Ubuntu Server 22.04 LTS 64bit
TDengine Version:24.5.1.1010 (official build)
Contributor guide
No contributing guide indexed for this repository
Research direction
Begin by running the supplied CREATE TABLE, INSERT, and SELECT sequence on the stated environment and compare repeated results with the expected value. Trace the MergeTree partition path and MAX/MIN handling for NaN-related values; done means repeated queries consistently return 766544500 and a regression test covers the reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- sql
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100