You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/07/31 01:16:35 UTC

[3/4] incubator-ignite git commit: ignite-1142 - fixes for parameter type substitution

ignite-1142 - fixes for parameter type substitution


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cfd1fb27
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cfd1fb27
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cfd1fb27

Branch: refs/heads/ignite-1142
Commit: cfd1fb27f6614a93f8de3021066900b2c865d0bc
Parents: 06d03e8
Author: S.Vladykin <sv...@gridgain.com>
Authored: Thu Jul 30 23:48:25 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Thu Jul 30 23:48:25 2015 +0300

----------------------------------------------------------------------
 .../processors/query/h2/IgniteH2Indexing.java         | 14 ++++++++++++--
 .../processors/query/h2/sql/GridSqlQuerySplitter.java |  7 +++++--
 2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cfd1fb27/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git 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
index c76dbe7..df6ac49 100644
--- 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
@@ -599,6 +599,9 @@ public class IgniteH2Indexing implements GridQueryIndexing {
             String name = rsMeta.getColumnLabel(i);
             String type = rsMeta.getColumnClassName(i);
 
+            if (type == null) // Expression always returns NULL.
+                type = Void.class.getName();
+
             meta.add(new SqlFieldMetadata(schemaName, typeName, name, type));
         }
 
@@ -852,6 +855,14 @@ public class IgniteH2Indexing implements GridQueryIndexing {
             throw new CacheException("Failed to parse query: " + sqlQry, e);
         }
 
+        try {
+            bindParameters(stmt, F.asList(qry.getArgs()));
+        }
+        catch (IgniteCheckedException e) {
+            throw new CacheException("Failed to bind parameters: [qry=" + sqlQry + ", params=" +
+                Arrays.deepToString(qry.getArgs()) + "]", e);
+        }
+
         GridCacheTwoStepQuery twoStepQry;
         List<GridQueryFieldMetadata> meta;
 
@@ -1881,8 +1892,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
          * @param type Type.
          */
         SqlFieldMetadata(@Nullable String schemaName, @Nullable String typeName, String name, String type) {
-            assert name != null;
-            assert type != null;
+            assert name != null && type != null : schemaName + " | " + typeName + " | " + name + " | " + type;
 
             this.schemaName = schemaName;
             this.typeName = typeName;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cfd1fb27/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
index fe53101..9326b01 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
@@ -241,8 +241,11 @@ public class GridSqlQuerySplitter {
             GridSqlElement col = cols.get(i);
             GridSqlType t = col.resultType();
 
-            if (t == null || t == GridSqlType.UNKNOWN)
-                throw new IllegalStateException("Type: " + t + " -> " + col);
+            if (t == null)
+                throw new NullPointerException("Column type.");
+
+            if (t == GridSqlType.UNKNOWN)
+                throw new IllegalStateException("Unknown type: " + col);
 
             String alias;