You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2019/08/09 20:49:01 UTC

[jira] [Resolved] (CALCITE-2843) Babel parser should parse PostgreSQL-style '::' cast operator

     [ https://issues.apache.org/jira/browse/CALCITE-2843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Julian Hyde resolved CALCITE-2843.
----------------------------------
    Resolution: Fixed

Fixed in [e8baf4f|https://github.com/apache/calcite/commit/e8baf4f4720e07cdce1aa2baabf20042b9353bbb]; thanks for the PR, [~mgelbana]!

> Babel parser should parse PostgreSQL-style '::' cast operator
> -------------------------------------------------------------
>
>                 Key: CALCITE-2843
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2843
>             Project: Calcite
>          Issue Type: Bug
>          Components: babel
>    Affects Versions: 1.18.0
>            Reporter: Muhammad Gelbana
>            Assignee: Muhammad Gelbana
>            Priority: Major
>              Labels: postgresql, pull-request-available
>             Fix For: 1.21.0
>
>          Time Spent: 4h 20m
>  Remaining Estimate: 0h
>
> *Code to reproduce the problem*
> {code:java}
> public static void main(String[] args) throws Exception {
>     Config parserConfig = configBuilder().setConformance(SqlConformanceEnum.BABEL).setParserFactory(SqlBabelParserImpl.FACTORY).build();
>     FrameworkConfig frameworkConfig = Frameworks.newConfigBuilder().parserConfig(parserConfig).build();
>     Planner planner = Frameworks.getPlanner(frameworkConfig);
>     String pg = "SELECT 'array_in'::regproc, typtype FROM pg_catalog.pg_type";
>     planner.parse(pg);
> }{code}
>  
> *Thrown exception*
> {noformat}
> Exception in thread "main" org.apache.calcite.sql.parser.SqlParseException: Encountered ":" at line 1, column 18.
> Was expecting one of:
>     <EOF> 
>     "ORDER" ...
>     "LIMIT" ...
>     "OFFSET" ...
>     "FETCH" ...
>     "FROM" ...
>     "," ...
>     <IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     <QUOTED_STRING> ...
>     "." ...
>     "IN" ...
>     "<" ...
>     "<=" ...
>     ">" ...
>     ">=" ...
>     "=" ...
>     "<>" ...
>     "!=" ...
>     "+" ...
>     "-" ...
>     "*" ...
>     "/" ...
>     "%" ...
>     "||" ...
>     "[" ...
>     "UNION" ...
>     "INTERSECT" ...
>     "EXCEPT" ...
>     "MINUS" ...
>     
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.convertException(SqlBabelParserImpl.java:354)
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.normalizeException(SqlBabelParserImpl.java:142)
> 	at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:156)
> 	at org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:181)
> 	at org.apache.calcite.prepare.PlannerImpl.parse(PlannerImpl.java:174)
> 	at org.apache.calcite.tools.Planner.parse(Planner.java:50)
> 	at com.lab.calcite.App2.main(App2.java:23)
> Caused by: org.apache.calcite.sql.parser.babel.ParseException: Encountered ":" at line 1, column 18.
> Was expecting one of:
>     <EOF> 
>     "ORDER" ...
>     "LIMIT" ...
>     "OFFSET" ...
>     "FETCH" ...
>     "FROM" ...
>     "," ...
>     <IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     <QUOTED_STRING> ...
>     "." ...
>     "IN" ...
>     "<" ...
>     "<=" ...
>     ">" ...
>     ">=" ...
>     "=" ...
>     "<>" ...
>     "!=" ...
>     "+" ...
>     "-" ...
>     "*" ...
>     "/" ...
>     "%" ...
>     "||" ...
>     "[" ...
>     "UNION" ...
>     "INTERSECT" ...
>     "EXCEPT" ...
>     "MINUS" ...
>     
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.generateParseException(SqlBabelParserImpl.java:31191)
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.jj_consume_token(SqlBabelParserImpl.java:31008)
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.SqlStmtEof(SqlBabelParserImpl.java:877)
> 	at org.apache.calcite.sql.parser.babel.SqlBabelParserImpl.parseSqlStmtEof(SqlBabelParserImpl.java:198)
> 	at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:148)
> 	... 4 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)