Java ApacheCalcite中planner和ddl语句的问题
当我尝试验证包含“CREATE TABLE”的sql语句时,它会抛出一个错误:Java ApacheCalcite中planner和ddl语句的问题,java,ddl,create-table,apache-calcite,query-planner,Java,Ddl,Create Table,Apache Calcite,Query Planner,当我尝试验证包含“CREATE TABLE”的sql语句时,它会抛出一个错误: java.lang.AssertionError: Was not expecting value 'CREATE_TABLE' for enumeration 'org.apache.calcite.sql.SqlKind' in this context at org.apache.calcite.util.Util.unexpected(Util.java:1773) at org.apach
java.lang.AssertionError: Was not expecting value 'CREATE_TABLE' for enumeration 'org.apache.calcite.sql.SqlKind' in this context
at org.apache.calcite.util.Util.unexpected(Util.java:1773)
at org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2715)
at org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2381)
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:927)
at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633)
at org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:188)
我想知道是否可以使用方解石中的ddl语句验证查询?从stacktrace中可以看出,您使用的是
Planner
界面。目前,该接口不支持对包含DDL元素的语句进行验证,因为它总是创建一个的实例
为了使用DDL节点验证语句,您必须获得的实例,但目前没有使用此服务的高级API
通过方解石连接执行的语句通过
ContextSqlValidator
,因此您可以了解如何通过在中调试测试用例来实例化此类。如果您提供了完整的查询和调用planner API的代码段,您的问题将更容易理解。谢谢,它帮助了我。我做了一个修改,在执行DDL查询时不使用CalciteValidator