The core parser does not parse DDL. This is intentional.

There are other parsers, e.g. server, that parse a limited subset of
DDL. It may or may not be the subset that you want.

Julian

On Wed, Nov 4, 2020 at 2:08 AM Viliam Durina <[email protected]> wrote:
>
> You might have a look at how we're adding DDL to Hazelcast Jet:
> https://github.com/hazelcast/hazelcast-jet/pull/2620
>
> Have a look at the `parserImpls.ftl` file.
>
> Viliam
>
> On Wed, 4 Nov 2020 at 09:24, xiao cai <[email protected]> wrote:
>
> > Hi Liya:
> >
> >
> > Althrough that can not meet my needs,but it still helps me a lot, thank
> > you very much for your reply.
> >
> >
> > Best,
> > Xiao.
> >
> >
> >  原始邮件
> > 发件人: Fan Liya<[email protected]>
> > 收件人: dev<[email protected]>
> > 发送时间: 2020年11月4日(周三) 11:35
> > 主题: Re: How to parse sql of DDL
> >
> >
> > Hi Xiao, I am not sure if we support "alter table ... add column ... after
> > ..." statement, as some databases do not support this syntax. We do support
> > "alter table ... add column ..." statement. An example can be found in
> > MultiJdbcSchemaJoinTest#testSchemaConsistency, which may be helpful. Best,
> > Liya Fan On Wed, Nov 4, 2020 at 10:53 AM xiao cai <[email protected]>
> > wrote: > Hi Liya: > Thanks for your suggestion! > > > Here is the demo i
> > ran using SqlParser: > > > -------------- > String sql = "ALTER TABLE
> > `test`.`mysql_sink_test_1` ADD COLUMN > `col_for_test` varchar(255) NULL
> > AFTER `col_binary_1`; > SqlParser.Config mysqlConfig = >
> > SqlParser.configBuilder().setLex(Lex.MYSQL).build(); > SqlParser sqlParser
> > = SqlParser.create(sql.toLowerCase(), mysqlConfig); > SqlNode sqlNode =
> > sqlParser.parseStmt(); > -------------- > > > Then I received the following
> > error message: > > > --------------------- >
> > org.apache.calcite.sql.parser.SqlParseException: Encountered "table" at >
> > line 1, column 7. > Was expecting one of: > "SESSION" ... > "SYSTEM" ... >
> > at >
> > org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserImpl.java:364)
> > > at >
> > org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParserImpl.java:149)
> > > at >
> > org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:148)
> > > at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:163)
> > > at org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:188)
> > > ——————————— > > > > > > > 原始邮件 > 发件人: Fan Liya<[email protected]> >
> > 收件人: dev<[email protected]> > 发送时间: 2020年11月4日(周三) 10:40 > 主题: Re:
> > How to parse sql of DDL > > > Hi Xiao, It's hard to diagnose the problem
> > without seeing your code. My > suggestion is that you can debug some test
> > cases in our code base (related > to SqlParser), and check how it works.
> > Best, Liya Fan On Wed, Nov 4, 2020 > at 10:34 AM xiao cai <[email protected]>
> > wrote: > Hi > I just want to konw > how to parse the sql statement of DDL.
> > I had use > SqlParser to do this, > but it was failed. > Is someone can
> > help me , thank you very mush. > > > > Best xiao.
>
>
>
> --
> Viliam Durina
> Jet Developer
>       hazelcast®
>
>   <https://www.hazelcast.com> 2 W 5th Ave, Ste 300 | San Mateo, CA 94402 |
> USA
> +1 (650) 521-5453 | hazelcast.com <https://www.hazelcast.com>
>
> --
> This message contains confidential information and is intended only for the
> individuals named. If you are not the named addressee you should not
> disseminate, distribute or copy this e-mail. Please notify the sender
> immediately by e-mail if you have received this e-mail by mistake and
> delete this e-mail from your system. E-mail transmission cannot be
> guaranteed to be secure or error-free as information could be intercepted,
> corrupted, lost, destroyed, arrive late or incomplete, or contain viruses.
> The sender therefore does not accept liability for any errors or omissions
> in the contents of this message, which arise as a result of e-mail
> transmission. If verification is required, please request a hard-copy
> version. -Hazelcast

Reply via email to