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 9552817508 for ; Mon, 6 Apr 2015 18:55:45 +0000 (UTC) Received: (qmail 66723 invoked by uid 500); 6 Apr 2015 18:55:45 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 66692 invoked by uid 500); 6 Apr 2015 18:55:45 -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 66683 invoked by uid 99); 6 Apr 2015 18:55:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Apr 2015 18:55:45 +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 18:55:21 +0000 Received: (qmail 59616 invoked by uid 99); 6 Apr 2015 18:54:04 -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 18:54:04 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id D83D3E1789; Mon, 6 Apr 2015 18:54:03 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: agoncharuk@apache.org To: commits@ignite.incubator.apache.org Date: Mon, 06 Apr 2015 18:54:08 -0000 Message-Id: <21572f6ce83943debdf61929c409114d@git.apache.org> In-Reply-To: <91d966c211f74c76b512d2fe8e0b6c96@git.apache.org> References: <91d966c211f74c76b512d2fe8e0b6c96@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [06/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-477 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); }