ClickHouse / ClickHouse/clickhouse-cpp

Bug in MAX Function with MergeTree Engine

Open
#403 1 comment 0 reactions 0 assignees View on GitHub
bug need-info
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.