Skip to content

Commit

Permalink
Fix DATENAME function(s).
Browse files Browse the repository at this point in the history
  • Loading branch information
yurifal committed Jul 25, 2022
1 parent 891b05f commit b59c30a
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 6 deletions.
66 changes: 61 additions & 5 deletions clickhouse_jdbc/dialect.tdd
Original file line number Diff line number Diff line change
Expand Up @@ -1839,23 +1839,59 @@
<argument type='localstr' />
</date-function>
<date-function name='DATENAME' return-type='str'>
<formula>CAST(dateName(%1,%2) AS Nullable(String))</formula>
<formula part='year'>CAST(dateName('year',%2) AS Nullable(String))</formula>
<formula part='quarter'>CAST(dateName('quarter',%2) AS Nullable(String))</formula>
<formula part='month'>CAST(dateName('month',%2) AS Nullable(String))</formula>
<formula part='dayofyear'>CAST(dateName('dayofyear',%2) AS Nullable(String))</formula>
<formula part='day'>CAST(dateName('day',%2) AS Nullable(String))</formula>
<formula part='weekday'>CAST(dateName('weekday',%2) AS Nullable(String))</formula>
<formula part='week'>CAST(dateName('week', toStartOfWeek(%2, 8)) AS Nullable(String))</formula>
<formula part='hour'>CAST(dateName('hour',%2) AS Nullable(String))</formula>
<formula part='minute'>CAST(dateName('minute',%2) AS Nullable(String))</formula>
<formula part='second'>CAST(dateName('second',%2) AS Nullable(String))</formula>
<argument type='localstr' />
<argument type='datetime' />
</date-function>
<date-function name='DATENAME' return-type='str'>
<formula>CAST(dateName(%1,%2) AS Nullable(String))</formula>
<formula part='year'>CAST(dateName('year',%2) AS Nullable(String))</formula>
<formula part='quarter'>CAST(dateName('quarter',%2) AS Nullable(String))</formula>
<formula part='month'>CAST(dateName('month',%2) AS Nullable(String))</formula>
<formula part='dayofyear'>CAST(dateName('dayofyear',%2) AS Nullable(String))</formula>
<formula part='day'>CAST(dateName('day',%2) AS Nullable(String))</formula>
<formula part='weekday'>CAST(dateName('weekday',%2) AS Nullable(String))</formula>
<formula part='week'>CAST(dateName('week', toStartOfWeek(%2, 8)) AS Nullable(String))</formula>
<formula part='hour'>CAST(dateName('hour',%2) AS Nullable(String))</formula>
<formula part='minute'>CAST(dateName('minute',%2) AS Nullable(String))</formula>
<formula part='second'>CAST(dateName('second',%2) AS Nullable(String))</formula>
<argument type='localstr' />
<argument type='date' />
</date-function>
<date-function name='DATENAME' return-type='str'>
<formula part='week'>CAST(toWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END)) AS Nullable(String))</formula>
<formula part='year'>CAST(dateName('year',%2) AS Nullable(String))</formula>
<formula part='quarter'>CAST(dateName('quarter',%2) AS Nullable(String))</formula>
<formula part='month'>CAST(dateName('month',%2) AS Nullable(String))</formula>
<formula part='dayofyear'>CAST(dateName('dayofyear',%2) AS Nullable(String))</formula>
<formula part='day'>CAST(dateName('day',%2) AS Nullable(String))</formula>
<formula part='weekday'>CAST(dateName('weekday',%2) AS Nullable(String))</formula>
<formula part='week'>CAST(dateName('week',toStartOfWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))) AS Nullable(String))</formula>
<formula part='hour'>CAST(dateName('hour',%2) AS Nullable(String))</formula>
<formula part='minute'>CAST(dateName('minute',%2) AS Nullable(String))</formula>
<formula part='second'>CAST(dateName('second',%2) AS Nullable(String))</formula>
<argument type='localstr' />
<argument type='datetime' />
<argument type='localstr' />
</date-function>
<date-function name='DATENAME' return-type='str'>
<formula part='week'>CAST(toWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END)) AS Nullable(String))</formula>
<formula part='year'>CAST(dateName('year',%2) AS Nullable(String))</formula>
<formula part='quarter'>CAST(dateName('quarter',%2) AS Nullable(String))</formula>
<formula part='month'>CAST(dateName('month',%2) AS Nullable(String))</formula>
<formula part='dayofyear'>CAST(dateName('dayofyear',%2) AS Nullable(String))</formula>
<formula part='day'>CAST(dateName('day',%2) AS Nullable(String))</formula>
<formula part='weekday'>CAST(dateName('weekday',%2) AS Nullable(String))</formula>
<formula part='week'>CAST(dateName('week',toStartOfWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))) AS Nullable(String))</formula>
<formula part='hour'>CAST(dateName('hour',%2) AS Nullable(String))</formula>
<formula part='minute'>CAST(dateName('minute',%2) AS Nullable(String))</formula>
<formula part='second'>CAST(dateName('second',%2) AS Nullable(String))</formula>
<argument type='localstr' />
<argument type='date' />
<argument type='localstr' />
Expand Down Expand Up @@ -1894,13 +1930,31 @@
<argument type='date' />
</date-function>
<date-function name='DATEPART' return-type='int'>
<formula part='year'>toYear(%2)</formula>
<formula part='quarter'>toQuarter(%2)</formula>
<formula part='month'>toMonth(%2)</formula>
<formula part='dayofyear'>toDayOfYear(%2)</formula>
<formula part='day'>toDayOfMonth(%2)</formula>
<formula part='weekday'>toDayOfWeek(%2) mod 7 + 1</formula>
<formula part='week'>toWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))</formula>
<formula part='hour'>toHour(%2)</formula>
<formula part='minute'>toMinute(%2)</formula>
<formula part='second'>toSecond(%2)</formula>
<argument type='localstr' />
<argument type='datetime' />
<argument type='localstr' />
</date-function>
<date-function name='DATEPART' return-type='int'>
<formula part='year'>toYear(%2)</formula>
<formula part='quarter'>toQuarter(%2)</formula>
<formula part='month'>toMonth(%2)</formula>
<formula part='dayofyear'>toDayOfYear(%2)</formula>
<formula part='day'>toDayOfMonth(%2)</formula>
<formula part='weekday'>toDayOfWeek(%2) mod 7 + 1</formula>
<formula part='week'>toWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))</formula>
<formula part='hour'>toHour(%2)</formula>
<formula part='minute'>toMinute(%2)</formula>
<formula part='second'>toSecond(%2)</formula>
<argument type='localstr' />
<argument type='date' />
<argument type='localstr' />
Expand All @@ -1918,13 +1972,15 @@
<argument type='date' />
</date-function>
<date-function name='DATETRUNC' return-type='datetime'>
<formula>toStartOfInterval(%2, INTERVAL 1 %1)</formula>
<formula part='week'>toStartOfWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))</formula>
<argument type='localstr' />
<argument type='datetime' />
<argument type='localstr' />
</date-function>
<date-function name='DATETRUNC' return-type='datetime'>
<formula part='week'>toStartOfWeek(toDateTime(%2), (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))</formula>
<formula>toStartOfInterval(%2, INTERVAL 1 %1)</formula>
<formula part='week'>toStartOfWeek(%2, (CASE WHEN %3=0 THEN 8 WHEN %3=1 THEN 9 ELSE 8 END))</formula>
<argument type='localstr' />
<argument type='date' />
<argument type='localstr' />
Expand Down
2 changes: 1 addition & 1 deletion clickhouse_jdbc/manifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8' ?>
<connector-plugin class='clickhouse_jdbc' superclass='jdbc' plugin-version='0.2.3' name='ClickHouse JDBC' version='18.1' min-version-tableau='2020.4'>
<connector-plugin class='clickhouse_jdbc' superclass='jdbc' plugin-version='0.2.4' name='ClickHouse JDBC' version='18.1' min-version-tableau='2020.4'>
<vendor-information>
<company name='ANALYTIKA PLUS'/>
<support-link url='https://github.com/analytikaplus/clickhouse-tableau-connector-jdbc/issues'/>
Expand Down

0 comments on commit b59c30a

Please sign in to comment.