ignite-sql-opt-2 - minor review fixes
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/123b9db8 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/123b9db8 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/123b9db8 Branch: refs/heads/ignite-sql-opt-2 Commit: 123b9db8f4f4dc415aa397954128a2ad268fcc66 Parents: 91e1960 Author: S.Vladykin <[email protected]> Authored: Wed Nov 25 21:39:40 2015 +0300 Committer: S.Vladykin <[email protected]> Committed: Wed Nov 25 21:39:40 2015 +0300 ---------------------------------------------------------------------- .../processors/query/GridQueryProperty.java | 2 +- .../processors/query/h2/IgniteH2Indexing.java | 35 +++++++++++--------- .../processors/query/h2/sql/GridSqlSelect.java | 18 +++------- .../h2/twostep/GridReduceQueryExecutor.java | 22 ++++++------ 4 files changed, 37 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/123b9db8/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProperty.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProperty.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProperty.java index 1b484c1..d623d25 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProperty.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProperty.java @@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.query; import org.apache.ignite.IgniteCheckedException; /** - * + * Description and access method for query entity field. */ public abstract class GridQueryProperty { /** http://git-wip-us.apache.org/repos/asf/ignite/blob/123b9db8/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 7c137d2..cc452c1 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 @@ -183,7 +183,7 @@ public class IgniteH2Indexing implements GridQueryIndexing { private static final int PREPARED_STMT_CACHE_SIZE = 256; /** */ - private static final int TWO_STEP_QRY_CACHE_SIZE = 256; + private static final int TWO_STEP_QRY_CACHE_SIZE = 1024; /** Field name for key. */ public static final String KEY_FIELD_NAME = "_key"; @@ -1003,27 +1003,32 @@ public class IgniteH2Indexing implements GridQueryIndexing { PreparedStatement stmt; try { - stmt = prepareStatement(c, sqlQry, true); + // Do not cache this statement because the whole two step query object will be cached later on. + stmt = prepareStatement(c, sqlQry, false); } catch (SQLException e) { 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); - } + 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); + } - try { - twoStepQry = GridSqlQuerySplitter.split((JdbcPreparedStatement)stmt, qry.getArgs(), qry.isCollocated()); + try { + twoStepQry = GridSqlQuerySplitter.split((JdbcPreparedStatement)stmt, qry.getArgs(), qry.isCollocated()); - meta = meta(stmt.getMetaData()); + meta = meta(stmt.getMetaData()); + } + catch (SQLException e) { + throw new CacheException(e); + } } - catch (SQLException e) { - throw new CacheException(e); + finally { + U.close(stmt, log); } } @@ -2419,7 +2424,7 @@ public class IgniteH2Indexing implements GridQueryIndexing { } /** - * + * Statement cache. */ private static class StatementCache extends LinkedHashMap<String, PreparedStatement> { /** */ http://git-wip-us.apache.org/repos/asf/ignite/blob/123b9db8/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java index ae522da..e190c87 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlSelect.java @@ -118,21 +118,11 @@ public class GridSqlSelect extends GridSqlQuery { if (simple) { for (GridSqlElement expression : columns(true)) { - if (expression instanceof GridSqlColumn) - continue; + if (expression instanceof GridSqlAlias) + expression = expression.child(); - if (expression instanceof GridSqlAlias) { - if (expression.size() == 1) { - GridSqlElement child = expression.child(); - - if (child instanceof GridSqlColumn) - continue; - } - } - - simple = false; - - break; + if (!(expression instanceof GridSqlColumn)) + return false; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/123b9db8/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java index cf54a4a..1d4fa30 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java @@ -605,21 +605,23 @@ public class GridReduceQueryExecutor { if (skipMergeTbl) { List<List<?>> res = new ArrayList<>(); - for (GridMergeIndex idx : r.idxs) { - Cursor cur = idx.findInStream(null, null); + assert r.idxs.size() == 1 : r.idxs; - while (cur.next()) { - Row row = cur.get(); + GridMergeIndex idx = r.idxs.get(0); - int cols = row.getColumnCount(); + Cursor cur = idx.findInStream(null, null); - List<Object> resRow = new ArrayList<>(cols); + while (cur.next()) { + Row row = cur.get(); - for (int c = 0; c < cols; c++) - resRow .add(row.getValue(c).getObject()); + int cols = row.getColumnCount(); - res.add(resRow); - } + List<Object> resRow = new ArrayList<>(cols); + + for (int c = 0; c < cols; c++) + resRow.add(row.getValue(c).getObject()); + + res.add(resRow); } resIter = res.iterator();
