Skip to content

Formatting of ClickHouse aggregate function any results in extra whitespace and poor formatting #483

Closed
@damirbk

Description

Describe the bug
sqlfmt doesn't seem to understand that the any function is an aggregate function and not the typical SQL ANY operator. See examples below.

To Reproduce
File example1.sql:

select any(number) as any_number from (select number from system.numbers limit 10)

Also, file example2.sql:

select max(number) as max_number, min(number) as min_number, any(number) as any_number, avg(number) as avg_number from (select number from system.numbers limit 10)

Expected behavior
For example1.sql:

select any(number) as any_number from (select number from system.numbers limit 10)

(no change)

For example2.sql:

select
    max(number) as max_number,
    min(number) as min_number,
    any(number) as any_number,
    avg(number) as avg_number
from (select number from system.numbers limit 10)

Actual behavior
After running sqlfmt example1.sql --dialect clickhouse --line-length 88:

select any (number) as any_number from (select number from system.numbers limit 10)

Extra whitespace is added incorrectly.

After running sqlfmt example2.sql --dialect clickhouse --line-length 88:

select
    max(number) as max_number,
    min(number) as min_number, any (number) as any_number,
    avg(number) as avg_number
from (select number from system.numbers limit 10)

Additional context
What is the output of sqlfmt --version?

sqlfmt, version 0.19.2

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions