Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheCalcite中planner和ddl语句的问题_Java_Ddl_Create Table_Apache Calcite_Query Planner - Fatal编程技术网

Java ApacheCalcite中planner和ddl语句的问题

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

当我尝试验证包含“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.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