[ https://issues.apache.org/jira/browse/IGNITE-10414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16770819#comment-16770819 ]
Vladimir Ozerov commented on IGNITE-10414: ------------------------------------------ Patch looks good in general. However, Queries 1 hanged. Requires investigation. > IF NOT EXISTS in CREATE TABLE doesn't work > ------------------------------------------ > > Key: IGNITE-10414 > URL: https://issues.apache.org/jira/browse/IGNITE-10414 > Project: Ignite > Issue Type: Bug > Components: sql > Affects Versions: 2.4, 2.6, 2.7 > Reporter: Evgenii Zhuravlev > Assignee: Pavel Kuznetsov > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Reproducer: > > {code:java} > Ignite ignite = Ignition.start(); > ignite.getOrCreateCache("test").query(new SqlFieldsQuery("CREATE > TABLE IF NOT EXISTS City(id LONG PRIMARY KEY," > + " name VARCHAR) WITH \"template=replicated\"")); > ignite.getOrCreateCache("test").query(new SqlFieldsQuery("CREATE > TABLE IF NOT EXISTS City(id LONG PRIMARY KEY," > + " name VARCHAR) WITH \"template=replicated\"")); > {code} > Error: > {code:java} > (err) DDL operation failureSchemaOperationException [code=3, msg=Table > already exists: CITY] > at > org.apache.ignite.internal.processors.query.QueryUtils.checkQueryEntityConflicts(QueryUtils.java:1214) > at > org.apache.ignite.internal.processors.query.h2.ddl.DdlStatementsProcessor.runDdlStatement(DdlStatementsProcessor.java:351) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunPrepared(IgniteH2Indexing.java:1981) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1896) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2174) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2169) > at > org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2677) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$0(GridQueryProcessor.java:2183) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2203) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2164) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2125) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:685) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:636) > at > org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388) > at > org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:40) > Exception in thread "main" javax.cache.CacheException: Table already exists: > CITY > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:697) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:636) > at > org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388) > at > org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:40) > Caused by: class > org.apache.ignite.internal.processors.query.IgniteSQLException: Table already > exists: CITY > at > org.apache.ignite.internal.processors.query.h2.ddl.DdlStatementsProcessor.convert(DdlStatementsProcessor.java:642) > at > org.apache.ignite.internal.processors.query.h2.ddl.DdlStatementsProcessor.runDdlStatement(DdlStatementsProcessor.java:503) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunPrepared(IgniteH2Indexing.java:1981) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1896) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2174) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2169) > at > org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2677) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$0(GridQueryProcessor.java:2183) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2203) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2164) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2125) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:685) > ... 3 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)