Skip to content

Inconsistent AST formatting in tupleElement #78639

@alexkats

Description

@alexkats

CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=78636&sha=f06711fd81760d2f0c570ec6db0973ce7d5c4d40&name_0=PR&name_1=AST+fuzzer+(debug)

SELECT r, so FROM (SELECT DISTINCT arrayFilter(x -> (tupleElement(*, 1) = so), cg) AS r, if(['y', 'n'] < arrayMap(x -> (x.1), cg), 'y', toFixedString('n', 1)) AS so, [('n', 1)] AS cg PREWHERE (equals(isZeroOrNull(untuple((30 = (2 IS NOT NULL), 60 IS NULL, 2)), materialize((2 IS NOT NULL) = 30, 2)), isZeroOrNull(assumeNotNull(2)), toNullable(isNullable(toUInt256(2)) IS NULL, 30)), toLowCardinality(toUInt128(2)) IS NOT NULL) GROUP BY and(untuple((toLowCardinality(toUInt256(30)) = (toLowCardinality(2) IS NOT NULL), isNullable(2)))), untuple((*, (2 IS NOT NULL) = 30)) AND 28);

Inconsistent AST formatting: the query:
SELECT r, so FROM (SELECT DISTINCT arrayFilter(x -> ((*.1) = so), cg) AS r, if(['y', 'n'] < arrayMap(x -> (x.1), cg), 'y', toFixedString('n', 1)) AS so, [('n', 1)] AS cg PREWHERE (equals(isZeroOrNull(untuple((30 = (2 IS NOT NULL), 60 IS NULL, 2)), materialize((2 IS NOT NULL) = 30, 2)), isZeroOrNull(assumeNotNull(2)), toNullable(isNullable(toUInt256(2)) IS NULL, 30)), toLowCardinality(toUInt128(2)) IS NOT NULL) GROUP BY and(untuple((toLowCardinality(toUInt256(30)) = (toLowCardinality(2) IS NOT NULL), isNullable(2)))), untuple((*, (2 IS NOT NULL) = 30)) AND 28)
cannot parse query back from SELECT r, so FROM (SELECT DISTINCT arrayFilter(x -> (tupleElement(*, 1) = so), cg) AS r, if(['y', 'n'] < arrayMap(x -> (x.1), cg), 'y', toFixedString('n', 1)) AS so, [('n', 1)] AS cg PREWHERE (equals(isZeroOrNull(untuple((30 = (2 IS NOT NULL), 60 IS NULL, 2)), materialize((2 IS NOT NULL) = 30, 2)), isZeroOrNull(assumeNotNull(2)), toNullable(isNullable(toUInt256(2)) IS NULL, 30)), toLowCardinality(toUInt128(2)) IS NOT NULL) GROUP BY and(untuple((toLowCardinality(toUInt256(30)) = (toLowCardinality(2) IS NOT NULL), isNullable(2)))), untuple((*, (2 IS NOT NULL) = 30)) AND 28).

Maybe related: #62975 and #68296

Metadata

Metadata

Assignees

Labels

fuzzProblem found by one of the fuzzers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions