Skip to content

PostgreSQL parser fails on GROUP BY ROLLUP(a), b with schema-qualified columns #6662

Description

@ang0858

Database Type

postgresql

Database Version

PostgreSQL 15.3

Druid Version

1.2.23

JDK Version

Open JDK 21

Error SQL

SELECT
'day' AS stat_period,
TO_CHAR(dis_date, 'YYYY-MM-DD') AS stat_date,
CASE
WHEN GROUPING(dis_dept_code) = 1 THEN 'all'
ELSE dis_dept_code
END AS dept_code,
COUNT() FILTER (WHERE if_surg_flag = 0) AS surg_dis_cnt,
COUNT(
) FILTER (WHERE if_surg_flag = 0 and nrs_grd in('01','04')) AS surg_dis_hl_nurs_cnt
FROM dwd_inp_fact_discharge_reg
WHERE dis_date >= to_date('${start_time}', 'YYYY-MM-DD')
and dis_date <= to_date('${end_time}', 'YYYY-MM-DD')
AND dis_dept_code IS NOT NULL
GROUP BY rollup(dis_dept_code), dis_date
ORDER BY stat_date, dept_code;

Testcase Code

List stmts = SQLUtils.parseStatements(sql, dbType);

Stacktrace Info

No response

Error Info

com.alibaba.druid.sql.parser.ParserException: not supported.pos 562, line 8, column 34, token ,
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:654)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:600)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:621)
将group by子句下的rollup(...)放最后可解决

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions