cube-js/cube

Incorrect alias in generated sql (ORACLE, ORA-00904)

クローズ

#3,252 opened on 2021/08/13

 (4 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (1,965 件のフォーク)batch import
driver:oraclehelp wanted

Repository metrics

Stars
 (19,563 個のスター)
PR merge metrics
 (平均マージ 5d 16h) (30d で 138 merged PRs)

説明

Describe the bug Incorrect alias generation in complex SQL request in Oracle.

To Reproduce 1.Make request to cube with parameters in different tables:

{
  "dimensions": [],
  "timeDimensions": [
    {
      "dimension": "Dm_portfolio.c6",
      "granularity": "month"
    }
  ],
  "measures": [
    "Dm_clients.m3__sum"
  ],
  "filters": [],
  "order": {}
}
  1. If generated SQL have two select statement: "SELECT \"keys\".\"dm_portfolio__c6_month\", sum(\"dm_clients_key___dm_clients\".age) \"dm_clients__m3__sum\" FROM (SELECT DISTINCT TRUNC(\"dm_clients_key___dm_portfolio\".report_month, 'MM') \"dm_portfolio__c6_month\", \"dm_clients_key___dm_clients\".client_id \"dm_clients__c1\" FROM dm.portfolio \"dm_clients_key___dm_portfolio\" LEFT JOIN dm.clients \"dm_clients_key___dm_clients\" ON \"dm_clients_key___dm_portfolio\".client_id = \"dm_clients_key___dm_clients\".client_id ) \"keys\" LEFT JOIN dm.clients \"dm_clients_key___dm_clients\" ON \"keys\".\"dm_clients__c1\" = \"dm_clients_key___dm_clients\".client_id GROUP BY TRUNC(\"dm_clients_key___dm_portfolio\".report_month, 'MM') ORDER BY 1 ASC FETCH NEXT 10000 ROWS ONLY"
  2. We have error: Error: ORA-00904: "dm_clients_key___dm_portfolio"."REPORT_MONTH": invalid identifier

Version: Docker 0.28.17

Additional context There is CORRECT alias in select: "keys"."dm_portfolio__c6_month"

But INCORRECT alias in group by: GROUP BY TRUNC("dm_clients_key___dm_portfolio".report_month, 'MM') should be: "keys"."dm_portfolio__c6_month"

コントリビューターガイド