TJ Banghart created CALCITE-5616: ------------------------------------ Summary: Allow unparsing of SqlIntervalQualifier in EXTRACT to be overridden by dialects Key: CALCITE-5616 URL: https://issues.apache.org/jira/browse/CALCITE-5616 Project: Calcite Issue Type: Improvement Components: core Reporter: TJ Banghart
In {{SqlExtractFunction#unparse}}, the first operand is passed to {{SqlIntervalQualifier.asIdentifier}} which returns a {{SqlIdentifier}} [if the operand is a {{SqlIntervalQualifier}}|https://github.com/apache/calcite/blob/5c7be55ffee836366dcc7fefb6adfc0b8c47465f/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java#L1366-L1370]. {{SqlIdentifier#unparse}} is handled by [{{SqlUtil#unparseSqlIdentifierSyntax}}|https://github.com/apache/calcite/blob/5c7be55ffee836366dcc7fefb6adfc0b8c47465f/core/src/main/java/org/apache/calcite/sql/SqlUtil.java#L384-L412] which has no dialect context. We should unparse these interval identifiers in the target dialect using the [existing {{SqlDialect#unparseSqlIntervalQualifier}} method|https://github.com/apache/calcite/blob/5c7be55ffee836366dcc7fefb6adfc0b8c47465f/core/src/main/java/org/apache/calcite/sql/SqlDialect.java#L492-L538]. This would help prevent errors when unparsing interval identifiers for some dialects. For example, BigQuery uses {{DAYOFWEEK}} rather than {{DOW}} but there is currently no way to override this in {{BigQuerySqlDialect}}. -- This message was sent by Atlassian Jira (v8.20.10#820010)