The XXXDialect is used for translating the Calcite RelNode tree to normal sql text that is used in the JDBC connection to external engines, so it is actually “unparsing”, what you need is parsing sql text to RelNode.
Best, Danny Chan 在 2020年2月14日 +0800 PM3:58,Shivraj Singh <shivraj.si...@knoldus.com>,写道: > Thanks @Danny Chan , > > Please tell me one more thing: > Just curious what does the PostgresSqlDialect accomplish in Calcite, if not > to parse postgres sqls? > *Shivraj Singh* > Software Consultant > Knoldus Inc. <http://www.knoldus.com> > +91-8800782123 > Canada - USA - India - Singapore > <https://in.linkedin.com/company/knoldus> <https://twitter.com/Knolspeak> > <https://www.facebook.com/KnoldusSoftware/> <https://blog.knoldus.com/> > > > On Fri, Feb 14, 2020 at 12:26 PM Danny Chan <yuzhao....@gmail.com> wrote: > > > You should extend the babel parser by yourself. > > > > Shivraj Singh <shivraj.si...@knoldus.com>于2020年2月14日 周五下午2:33写道: > > > > > I tried for BABEL conformance but it also doesn't work. > > > This is the way I used it: > > > > > > val sqlParserConfig = SqlParser.configBuilder() > > > .setParserFactory(SqlParserImpl.FACTORY) > > > .setConformance(SqlConformanceEnum.BABEL) > > > .setConfig(sqlParserA) > > > .build() > > > > > > SqlParser.create(new > > > SourceStringReader(sql),sqlParserConfig).parseQuery() > > > > > > Am I doing something wrong? > > > > > > *Shivraj Singh* > > > Software Consultant > > > Knoldus Inc. <http://www.knoldus.com> > > > +91-8800782123 > > > Canada - USA - India - Singapore > > > <https://in.linkedin.com/company/knoldus> <https://twitter.com/Knolspeak > > > > > > <https://www.facebook.com/KnoldusSoftware/> <https://blog.knoldus.com/> > > > > > > > > > On Thu, Feb 13, 2020 at 11:42 PM Julian Hyde <jh...@apache.org> wrote: > > > > > > > Note that Calcite's default parser only parses SQL in Calcite's > > > > dialect (with a little leeway such as choice of quoting characters). > > > > > > > > To parse other dialects, use the Babel parser. It can handle (or could > > > > handle) SQL extensions that are not in standard SQL and which we don't > > > > want to bring into Calcite SQL. PostgreSQL's "::" cast operator is an > > > > example of that. > > > > > > > > On Thu, Feb 13, 2020 at 4:00 AM Danny Chan <yuzhao....@gmail.com> > > wrote: > > > > > > > > > > If you want to parse the sql in PostgreSQL dialect, there is no way > > to > > > do > > > > > that now. You need a new SqlConformance actually. > > > > > > > > > > Shivraj Singh <shivraj.si...@knoldus.com>于2020年2月13日 周四下午3:50写道: > > > > > > > > > > > Hi, I want to parse the query of PostgreSQL via Calcite and while I > > > am > > > > > > parsing the query using the calcite parser it gives me exception > > for > > > > system > > > > > > keyword. > > > > > > > > > > > > This is the program: > > > > > > This is the query : > > > > > > " select system from my_table;" > > > > > > > > > > > > val parser:SqlParser = SqlParser.create(query) > > > > > > parser.parseQuery() > > > > > > > > > > > > Exception I got. > > > > > > org.apache.calcite.sql.parser.SqlParseException: Encountered > > > > "*system*" at > > > > > > line 1, column 8. > > > > > > Was expecting one of: > > > > > > "ABS" ... > > > > > > "ALL" ... > > > > > > > > > > > > And I also got exception for this scenario to : > > > > > > query : > > > > > > INSERT INTO my_table(id,system_state) > > > > > > VALUES (?, ?::system_state_type) > > > > > > > > > > > > exception I got: > > > > > > org.apache.calcite.sql.parser.SqlParseException: Encountered "*:*" > > at > > > > line. > > > > > > Was expecting one of: > > > > > > <EOF> > > > > > > "EXCEPT" ... > > > > > > > > > > > > Please help me > > > > > > 1. How to parse these queries? > > > > > > 2. Can we parse query using PostgresqlSqlDialect, if yes then how. > > > > > > > > > > > > Thanks. > > > > > > > > > > > > *Shivraj Singh* > > > > > > Software Consultant > > > > > > Knoldus Inc. <http://www.knoldus.com> > > > > > > +91-8800782123 > > > > > > Canada - USA - India - Singapore > > > > > > <https://in.linkedin.com/company/knoldus> < > > > > https://twitter.com/Knolspeak> > > > > > > <https://www.facebook.com/KnoldusSoftware/> < > > > https://blog.knoldus.com/ > > > > > > > > > > > > > > > > > > > >