Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 33CD2175E3 for ; Mon, 6 Apr 2015 16:38:20 +0000 (UTC) Received: (qmail 17163 invoked by uid 500); 6 Apr 2015 16:38:20 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 17094 invoked by uid 500); 6 Apr 2015 16:38:20 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 17032 invoked by uid 99); 6 Apr 2015 16:38:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Apr 2015 16:38:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 06 Apr 2015 16:38:19 +0000 Received: (qmail 16019 invoked by uid 99); 6 Apr 2015 16:37:56 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Apr 2015 16:37:56 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 65BCEE10AF; Mon, 6 Apr 2015 16:37:56 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: akuznetsov@apache.org To: commits@ignite.incubator.apache.org Date: Mon, 06 Apr 2015 16:38:09 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [14/50] incubator-ignite git commit: # IGNITE-540 Sql param substitution does not work in a case. X-Virus-Checked: Checked by ClamAV on apache.org # IGNITE-540 Sql param substitution does not work in a case. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8a5180c5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8a5180c5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8a5180c5 Branch: refs/heads/ignite-564 Commit: 8a5180c5f83013eff0e09f7698313fb947fdc756 Parents: 3af6914 Author: sevdokimov Authored: Fri Apr 3 16:18:26 2015 +0300 Committer: sevdokimov Committed: Fri Apr 3 16:18:26 2015 +0300 ---------------------------------------------------------------------- .../h2/twostep/GridReduceQueryExecutor.java | 43 ++++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a5180c5/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 b660f7e..7941f12 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 @@ -445,20 +445,28 @@ public class GridReduceQueryExecutor implements GridMessageListener { String name = expr.getAlias(); long precision = expr.getPrecision(); int displaySize = expr.getDisplaySize(); - DataType dt = DataType.getDataType(type); - if (precision > 0 && (dt.defaultPrecision == 0 || - (dt.defaultPrecision > precision && dt.defaultPrecision < Byte.MAX_VALUE))) { - // dont' set precision to MAX_VALUE if this is the default - precision = dt.defaultPrecision; - } int scale = expr.getScale(); - if (scale > 0 && (dt.defaultScale == 0 || - (dt.defaultScale > scale && dt.defaultScale < precision))) { - scale = dt.defaultScale; + + if (type != Value.UNKNOWN) { + DataType dt = DataType.getDataType(type); + + if (precision > 0 && (dt.defaultPrecision == 0 || + (dt.defaultPrecision > precision && dt.defaultPrecision < Byte.MAX_VALUE))) { + // dont' set precision to MAX_VALUE if this is the default + precision = dt.defaultPrecision; + } + + if (scale > 0 && (dt.defaultScale == 0 || + (dt.defaultScale > scale && dt.defaultScale < precision))) + scale = dt.defaultScale; + + if (scale > precision) + precision = scale; } - if (scale > precision) { - precision = scale; + else { + System.out.println("1"); } + Column col = new Column(name, type, precision, scale, displaySize); cols.add(col); } @@ -481,7 +489,18 @@ public class GridReduceQueryExecutor implements GridMessageListener { data.tableName = "T___"; data.schema = ses.getDatabase().getSchema(ses.getCurrentSchemaName()); data.create = true; - data.columns = generateColumnsFromQuery((Query)ses.prepare(qry.query(), false)); + + Query prepare = (Query)ses.prepare(qry.query(), false); + + ArrayList parsedParams = prepare.getParameters(); + + for (int i = Math.min(parsedParams.size(), qry.parameters().length); --i >= 0; ) { + Object val = qry.parameters()[i]; + + parsedParams.get(i).setValue(DataType.convertToValue(ses, val, Value.UNKNOWN)); + } + + data.columns = generateColumnsFromQuery(prepare); return new GridMergeTable(data); }