cube-js/cube

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

Fechada

#3.252 aberto em 13 de ago. de 2021

 (4 comentários) (0 reação) (0 responsável)Rust (1.965 forks)batch import
driver:oraclehelp wanted

Métricas do repositório

Stars
 (19.563 estrelas)
Métricas de merge de PR
 (Mesclagem média 5d 16h) (138 fundiu PRs em 30d)

Description

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"

Guia do colaborador