Skip to content

[BUG] ClickHouse parametric aggregates drop params group on render (quantile(0.5)(x) → quantile(x)) #531

Description

@basili4-1982

Bug Description

ClickHouse parametric aggregates lose their params group when the AST is
rendered back to SQL: quantileTDigest(0.95)(value) becomes
quantileTDigest(value).

Root cause

FunctionCall has a Parameters field (added for ClickHouse fn(params)(args),
issue #482 / PR #487), but FunctionCall.SQL() (pkg/sql/ast/sql.go) renders
only Arguments and never emits Parameters.

To Reproduce

tree, _ := gosqlx.ParseWithDialect(
    "SELECT quantileTDigest(0.95)(value) FROM events",
    keywords.DialectClickHouse)
fmt.Println(tree.SQL())
// SELECT quantileTDigest(value) FROM events  (0.95 lost!)

Expected Behavior

SELECT quantileTDigest(0.95)(value) FROM events

Notes

Exists in v1.14.0 and current main. PR: #529.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions