ignite-sql-tests - params fix 2
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/167549b1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/167549b1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/167549b1 Branch: refs/heads/ignite-sql-tests Commit: 167549b17506c86c500651c84c7c468ca41c8975 Parents: 61eb681 Author: S.Vladykin <[email protected]> Authored: Mon Feb 9 00:57:27 2015 +0300 Committer: S.Vladykin <[email protected]> Committed: Mon Feb 9 00:57:27 2015 +0300 ---------------------------------------------------------------------- .../internal/processors/query/h2/IgniteH2Indexing.java | 3 ++- .../processors/query/h2/sql/GridSqlQuerySplitter.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/167549b1/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 0359334..1807dab 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 @@ -366,7 +366,8 @@ public class IgniteH2Indexing implements GridQueryIndexing { stmt.setObject(idx, obj); } catch (SQLException e) { - throw new IgniteCheckedException("Failed to bind parameter [idx=" + idx + ", obj=" + obj + ']', e); + throw new IgniteCheckedException("Failed to bind parameter [idx=" + idx + ", obj=" + obj + ", stmt=" + + stmt + ']', e); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/167549b1/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 6c83fbe..797bce7 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 @@ -58,6 +58,9 @@ public class GridSqlQuerySplitter { * @return Two step query. */ public static GridCacheTwoStepQuery split(Connection conn, String query, Object[] params) { + if (params == null) + params = GridCacheSqlQuery.EMPTY_PARAMS; + GridSqlSelect srcQry = GridSqlQueryParser.parse(conn, query); final String mergeTable = table(0); @@ -140,6 +143,9 @@ public class GridSqlQuerySplitter { * @return Extracted parameters list. */ private static List<Object> findParams(GridSqlSelect qry, Object[] params, ArrayList<Object> target) { + if (params.length == 0) + return target; + for (GridSqlElement el : qry.select()) findParams(el, params, target); @@ -177,7 +183,12 @@ public class GridSqlQuerySplitter { while (target.size() < idx) target.add(null); - target.add(idx, params[idx]); + Object param = params[idx]; + + if (idx == target.size()) + target.add(param); + else + target.set(idx, param); } else for (GridSqlElement child : el)
