From 8fa0d53600e6d5b2a42cb94160918939e7f33d10 Mon Sep 17 00:00:00 2001 From: Alex Qyoun-ae <4062971+MazterQyou@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:34:18 +0400 Subject: [PATCH] feat(cubesql): Support `DATE_PART` SQL push down with Databricks (#8779) --- 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 a9959926f8e56..1c089e70eb90a 100644 --- a/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts +++ b/packages/cubejs-databricks-jdbc-driver/src/DatabricksQuery.ts @@ -187,6 +187,7 @@ export class DatabricksQuery extends BaseQuery { public sqlTemplates() { const templates = super.sqlTemplates(); 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] }})'; templates.functions.LTRIM = 'LTRIM({{ args|reverse|join(", ") }})'; templates.functions.RTRIM = 'RTRIM({{ args|reverse|join(", ") }})'; @@ -194,6 +195,7 @@ export class DatabricksQuery extends BaseQuery { templates.functions.LEAST = 'LEAST({{ args_concat }})'; templates.functions.GREATEST = 'GREATEST({{ args_concat }})'; templates.expressions.timestamp_literal = 'from_utc_timestamp(\'{{ value }}\', \'UTC\')'; + templates.expressions.extract = 'EXTRACT({{ date_part }} FROM {{ expr }})'; templates.quotes.identifiers = '`'; templates.quotes.escape = '``'; // TODO: Databricks has `TIMESTAMP_NTZ` with logic similar to Pg's `TIMESTAMP`