Ignite数据库:创建模式:AssertionError

Mul*_*ard 0 sql ignite

我想使用ignite作为内存数据库创建一个模式.所以我做了以下事情:

try (Statement statement = connection.createStatement()) {
    statement.executeQuery("CREATE SCHEMA my_schema");
}
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Exception in thread "sql-connector-#38%null%" java.lang.AssertionError
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1341)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1856)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1852)
    at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFieldsNoCache(GridQueryProcessor.java:1860)
    at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.executeQuery(JdbcRequestHandler.java:188)
    at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:122)
    at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:152)
    at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:44)
    at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
    at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
    at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
    at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

我不知道这意味着什么.我需要创建模式,因为我为我的sql语句创建单元测试,原始表也有一个模式:

my_schema.my_table
Run Code Online (Sandbox Code Playgroud)

我不能仅仅为了单元测试目的而替换表名.

编辑

我必须提到点燃称为模式.在我看来,它只是一个数据库名称.但CREATE DATABASE my_database也行不通.

Ale*_*nko 5

到目前为止CREATE SCHEMA,Ignite不支持命令.

如果您创建了几个缓存,则会为每个缓存分配自己的具有匹配名称的模式.此外,还有一个模式名称PUBLIC,其中包含使用命令创建的所有缓存CREATE TABLE.

此处描述了Ignite中当前可用的DDL命令的子集:

https://apacheignite-sql.readme.io/docs/ddl

  • 我已经在 master 分支上检查过这个,不再有 AssertionError,现在 ignite 抛出以下异常:“线程“main”中的异常 javax.cache.CacheException: Unsupported DDL/DML operation: org.h2.command.ddl.CreateSchema ” (2认同)