You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/02/29 07:48:56 UTC
[8/9] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-1232
Merge remote-tracking branch 'remotes/origin/master' into ignite-1232
Conflicts:
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e5840988
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e5840988
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e5840988
Branch: refs/heads/ignite-1232
Commit: e5840988d94aafd36953db4753c370664ceee09f
Parents: 42c7da9 c3f5168
Author: sboikov <sb...@gridgain.com>
Authored: Mon Feb 29 09:48:22 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Feb 29 09:48:22 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryClassDescriptor.java | 2 +-
.../processors/cache/GridCacheProcessor.java | 12 ++
.../processors/query/GridQueryProcessor.java | 13 ++-
.../ignite/internal/visor/cache/VisorCache.java | 2 +-
.../cache/VisorCacheAggregatedMetrics.java | 113 ++++++++++++++-----
.../internal/visor/cache/VisorCacheMetrics.java | 88 +++++++--------
.../cache/VisorCacheMetricsCollectorTask.java | 21 +++-
.../visor/cache/VisorCacheMetricsV2.java | 66 +++++++++++
.../internal/visor/cache/VisorCacheV2.java | 2 +-
.../ignite/resources/JobContextResource.java | 4 +-
.../processors/query/h2/IgniteH2Indexing.java | 109 ++++++++++--------
.../cache/CacheQueryNewClientSelfTest.java | 108 ++++++++++++++++++
.../IgniteCacheQuerySelfTestSuite.java | 6 +-
.../commands/cache/VisorCacheCommand.scala | 30 +++--
14 files changed, 440 insertions(+), 136 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e5840988/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e5840988/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 715c6fa,a0e9c58..f97e347
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@@ -17,7 -17,42 +17,43 @@@
package org.apache.ignite.internal.processors.query.h2;
+ import java.io.Externalizable;
+ import java.io.IOException;
+ import java.io.ObjectInput;
+ import java.io.ObjectOutput;
+ import java.lang.reflect.Constructor;
+ import java.lang.reflect.Field;
+ import java.lang.reflect.Method;
+ import java.lang.reflect.Modifier;
+ import java.math.BigDecimal;
+ import java.sql.Connection;
+ import java.sql.Date;
+ import java.sql.DriverManager;
+ import java.sql.PreparedStatement;
+ import java.sql.ResultSet;
+ import java.sql.ResultSetMetaData;
+ import java.sql.SQLException;
+ import java.sql.Statement;
+ import java.sql.Time;
+ import java.sql.Timestamp;
+ import java.sql.Types;
+ import java.text.MessageFormat;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.Iterator;
+ import java.util.LinkedHashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.UUID;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import javax.cache.Cache;
+ import javax.cache.CacheException;
+import java.util.Objects;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
@@@ -87,11 -116,11 +123,13 @@@ import org.apache.ignite.resources.Logg
import org.apache.ignite.spi.indexing.IndexingQueryFilter;
import org.h2.api.JavaObjectSerializer;
import org.h2.command.CommandInterface;
+ import org.h2.constant.ErrorCode;
+ import org.h2.constant.SysProperties;
+import org.h2.engine.Session;
+import org.h2.engine.SysProperties;
import org.h2.index.Index;
import org.h2.index.SpatialIndex;
+import org.h2.jdbc.JdbcConnection;
import org.h2.jdbc.JdbcPreparedStatement;
import org.h2.message.DbException;
import org.h2.mvstore.cache.CacheLongKeyLIRS;
@@@ -1096,23 -1033,31 +1097,41 @@@ public class IgniteH2Indexing implement
meta = cachedQry.meta;
}
else {
+ final UUID locNodeId = ctx.localNodeId();
+
+ setupConnection(c, distributedJoins, enforceJoinOrder);
+
+ GridH2QueryContext.set(new GridH2QueryContext(locNodeId, locNodeId, 0, PREPARE)
+ .distributedJoins(distributedJoins));
+
PreparedStatement stmt;
- try {
- stmt = c.prepareStatement(sqlQry);
- }
- catch (SQLException e) {
- throw new CacheException("Failed to parse query: " + sqlQry, e);
- }
- finally {
- GridH2QueryContext.clear(false);
+ boolean cachesCreated = false;
+
+ while (true) {
+ try {
+ // Do not cache this statement because the whole two step query object will be cached later on.
+ stmt = prepareStatement(c, sqlQry, false);
+
+ break;
+ }
+ catch (SQLException e) {
+ if (!cachesCreated && e.getErrorCode() == ErrorCode.SCHEMA_NOT_FOUND_1) {
+ try {
+ ctx.cache().createMissingCaches();
+ }
+ catch (IgniteCheckedException e1) {
+ throw new CacheException("Failed to create missing caches.", e);
+ }
+
+ cachesCreated = true;
+ }
+ else
+ throw new CacheException("Failed to parse query: " + sqlQry, e);
+ }
++ finally {
++ GridH2QueryContext.clear(false);
++ }
}
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e5840988/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index 685afc3,968dbf6..2133055
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@@ -247,8 -257,9 +248,11 @@@ public class IgniteCacheQuerySelfTestSu
suite.addTestSuite(IgniteCacheP2pUnmarshallingQueryErrorTest.class);
suite.addTestSuite(IgniteCacheNoClassQuerySelfTest.class);
+ suite.addTestSuite(IgniteCacheJoinQueryTest.class);
+
+ // Other.
+ suite.addTestSuite(CacheQueryNewClientSelfTest.class);
+
return suite;
}
}