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

Muhammad Gelbana updated CALCITE-2844:
--------------------------------------
    Description: 
*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 * from generate_series(1, 5)";
    planner.parse(pg);
}
{code}
 

*Thrown exception*
{noformat}
Exception in thread "main" org.apache.calcite.sql.parser.SqlParseException: 
Encountered "( 1" at line 1, column 30.
Was expecting one of:
    <EOF>
    "ORDER" ...
    "LIMIT" ...
    "OFFSET" ...
    "FETCH" ...
    "NATURAL" ...
    "JOIN" ...
    "INNER" ...
    "LEFT" ...
    "RIGHT" ...
    "FULL" ...
    "CROSS" ...
    "," ...
    "OUTER" ...
    "(" <IDENTIFIER> ...
    "(" <QUOTED_IDENTIFIER> ...
    "(" <BACK_QUOTED_IDENTIFIER> ...
    "(" <BRACKET_QUOTED_IDENTIFIER> ...
    "(" <UNICODE_QUOTED_IDENTIFIER> ...
    "MATCH_RECOGNIZE" ...
    "." ...
    "(" ...
    <IDENTIFIER> ...
    <QUOTED_IDENTIFIER> ...
    <BACK_QUOTED_IDENTIFIER> ...
    <BRACKET_QUOTED_IDENTIFIER> ...
    <UNICODE_QUOTED_IDENTIFIER> ...
    "TABLESAMPLE" ...
    "WHERE" ...
    "GROUP" ...
    "HAVING" ...
    "WINDOW" ...
    "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:24)
Caused by: org.apache.calcite.sql.parser.babel.ParseException: Encountered "( 
1" at line 1, column 30.
Was expecting one of:
    <EOF>
    "ORDER" ...
    "LIMIT" ...
    "OFFSET" ...
    "FETCH" ...
    "NATURAL" ...
    "JOIN" ...
    "INNER" ...
    "LEFT" ...
    "RIGHT" ...
    "FULL" ...
    "CROSS" ...
    "," ...
    "OUTER" ...
    "(" <IDENTIFIER> ...
    "(" <QUOTED_IDENTIFIER> ...
    "(" <BACK_QUOTED_IDENTIFIER> ...
    "(" <BRACKET_QUOTED_IDENTIFIER> ...
    "(" <UNICODE_QUOTED_IDENTIFIER> ...
    "MATCH_RECOGNIZE" ...
    "." ...
    "(" ...
    <IDENTIFIER> ...
    <QUOTED_IDENTIFIER> ...
    <BACK_QUOTED_IDENTIFIER> ...
    <BRACKET_QUOTED_IDENTIFIER> ...
    <UNICODE_QUOTED_IDENTIFIER> ...
    "TABLESAMPLE" ...
    "WHERE" ...
    "GROUP" ...
    "HAVING" ...
    "WINDOW" ...
    "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}

  was:
*Query*
{code:sql}
SELECT typinput, typtype FROM pg_catalog.pg_type LEFT JOIN (select ns.oid as 
nspoid, ns.nspname, r.r from pg_namespace as ns join ( select s.r, 
(current_schemas(false))[s.r] as nspname from generate_series(1, 
array_upper(current_schemas(false), 1)) as s(r) ) as r using ( nspname )) as sp 
ON sp.nspoid = typnamespace WHERE typname = $1 ORDER BY sp.r, pg_type.oid DESC 
LIMIT 1{code}


> Babel parser should parse PostgreSQL table functions
> ----------------------------------------------------
>
>                 Key: CALCITE-2844
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2844
>             Project: Calcite
>          Issue Type: Bug
>          Components: babel
>    Affects Versions: 1.18.0
>            Reporter: Muhammad Gelbana
>            Assignee: Julian Hyde
>            Priority: Major
>
> *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 * from generate_series(1, 5)";
>     planner.parse(pg);
> }
> {code}
>  
> *Thrown exception*
> {noformat}
> Exception in thread "main" org.apache.calcite.sql.parser.SqlParseException: 
> Encountered "( 1" at line 1, column 30.
> Was expecting one of:
>     <EOF>
>     "ORDER" ...
>     "LIMIT" ...
>     "OFFSET" ...
>     "FETCH" ...
>     "NATURAL" ...
>     "JOIN" ...
>     "INNER" ...
>     "LEFT" ...
>     "RIGHT" ...
>     "FULL" ...
>     "CROSS" ...
>     "," ...
>     "OUTER" ...
>     "(" <IDENTIFIER> ...
>     "(" <QUOTED_IDENTIFIER> ...
>     "(" <BACK_QUOTED_IDENTIFIER> ...
>     "(" <BRACKET_QUOTED_IDENTIFIER> ...
>     "(" <UNICODE_QUOTED_IDENTIFIER> ...
>     "MATCH_RECOGNIZE" ...
>     "." ...
>     "(" ...
>     <IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     "TABLESAMPLE" ...
>     "WHERE" ...
>     "GROUP" ...
>     "HAVING" ...
>     "WINDOW" ...
>     "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:24)
> Caused by: org.apache.calcite.sql.parser.babel.ParseException: Encountered "( 
> 1" at line 1, column 30.
> Was expecting one of:
>     <EOF>
>     "ORDER" ...
>     "LIMIT" ...
>     "OFFSET" ...
>     "FETCH" ...
>     "NATURAL" ...
>     "JOIN" ...
>     "INNER" ...
>     "LEFT" ...
>     "RIGHT" ...
>     "FULL" ...
>     "CROSS" ...
>     "," ...
>     "OUTER" ...
>     "(" <IDENTIFIER> ...
>     "(" <QUOTED_IDENTIFIER> ...
>     "(" <BACK_QUOTED_IDENTIFIER> ...
>     "(" <BRACKET_QUOTED_IDENTIFIER> ...
>     "(" <UNICODE_QUOTED_IDENTIFIER> ...
>     "MATCH_RECOGNIZE" ...
>     "." ...
>     "(" ...
>     <IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     "TABLESAMPLE" ...
>     "WHERE" ...
>     "GROUP" ...
>     "HAVING" ...
>     "WINDOW" ...
>     "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.3#76005)

Reply via email to