From f61afc306b225768f741171a8be9c4c82ec83145 Mon Sep 17 00:00:00 2001 From: Konstantin Burkalev Date: Wed, 27 Nov 2024 19:58:41 +0200 Subject: [PATCH] =?UTF-8?q?feat(databricks-driver):=20Support=20for=20inte?= =?UTF-8?q?rvals=20and=C2=A0CURRENT=5FDATE=20for=20sql=20push=20down=20(#9?= =?UTF-8?q?000)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add single intervals transformation forĀ databricks * add CURRENTDATE support forĀ Databricks SQL Push down --- packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts b/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts index 1a37613ba222b..af30172a76e40 100644 --- a/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts +++ b/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts @@ -186,6 +186,7 @@ export class DatabricksQuery extends BaseQuery { public sqlTemplates() { const templates = super.sqlTemplates(); + templates.functions.CURRENTDATE = 'CURRENT_DATE'; templates.functions.DATETRUNC = 'DATE_TRUNC({{ args_concat }})'; templates.functions.DATEPART = 'DATE_PART({{ args_concat }})'; templates.functions.BTRIM = 'TRIM({% if args[1] is defined %}{{ args[1] }} FROM {% endif %}{{ args[0] }})'; @@ -197,6 +198,7 @@ export class DatabricksQuery extends BaseQuery { templates.functions.TRUNC = 'CASE WHEN ({{ args[0] }}) >= 0 THEN FLOOR({{ args_concat }}) ELSE CEIL({{ args_concat }}) END'; templates.expressions.timestamp_literal = 'from_utc_timestamp(\'{{ value }}\', \'UTC\')'; templates.expressions.extract = 'EXTRACT({{ date_part }} FROM {{ expr }})'; + templates.expressions.interval_single_date_part = 'INTERVAL \'{{ num }}\' {{ date_part }}'; templates.quotes.identifiers = '`'; templates.quotes.escape = '``'; // TODO: Databricks has `TIMESTAMP_NTZ` with logic similar to Pg's `TIMESTAMP`