You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Almog Gavra (Jira)" <ji...@apache.org> on 2022/09/29 18:14:00 UTC

[jira] [Created] (CALCITE-5302) CalciteCatalogReader should support SqlSyntax other than FUNCTION

Almog Gavra created CALCITE-5302:
------------------------------------

             Summary: CalciteCatalogReader should support SqlSyntax other than FUNCTION
                 Key: CALCITE-5302
                 URL: https://issues.apache.org/jira/browse/CALCITE-5302
             Project: Calcite
          Issue Type: Bug
            Reporter: Almog Gavra


As part of an effort to implement {{AT TIME ZONE}} functionality in a project using a customer parser, I noticed that {{CalciteCatalogReader}} only allows looking up operators that use {{{}SqlSyntax.FUNCTION{}}}: 

[https://github.com/apache/calcite/blob/b16df019ed9fc7dba7392be9b758358c5a4e927b/core/src/main/java/org/apache/calcite/prepare/CalciteCatalogReader.java#L250-L257]
{noformat}
@Override public void lookupOperatorOverloads(final SqlIdentifier opName,
    @Nullable SqlFunctionCategory category,
    SqlSyntax syntax,
    List<SqlOperator> operatorList,
    SqlNameMatcher nameMatcher) {
  if (syntax != SqlSyntax.FUNCTION) {
    return;
  }{noformat}
This means that if we want to implement a different kind of syntax (e.g. in the case of {{{}AT TIME ZONE{}}}, a SqlSyntax.BINARY) we cannot add that to the reader and instead use {{{}ListSqlOperatorTable{}}}.

I wanted to double check here and see whether that limitation is intentional (and if so, what a suggested workaround is), or whether it's a bug that should be fixed - which I'm happy to contribute.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)