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;
      }
  }