cube-js/cube

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

Fermée

#3 252 ouverte le 13 août 2021

 (4 commentaires) (0 réaction) (0 personne assignée)Rust (1 965 forks)batch import
driver:oraclehelp wanted

Métriques du dépôt

Stars
 (19 563 étoiles)
Métriques de merge PR
 (Merge moyen 5j 16h) (138 PRs mergées en 30 j)

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"

Guide contributeur