Repository: metamodel Updated Branches: refs/heads/master 9553357cd -> 9de5b7711
METAMODEL-199: Fixed Fixes #63 Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/9de5b771 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/9de5b771 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/9de5b771 Branch: refs/heads/master Commit: 9de5b7711d36470cd6b88f6d037e0bab46b8147a Parents: 9553357 Author: Kasper Sørensen <[email protected]> Authored: Sun Oct 25 15:57:44 2015 +0100 Committer: Kasper Sørensen <[email protected]> Committed: Sun Oct 25 15:57:44 2015 +0100 ---------------------------------------------------------------------- core/src/main/java/org/apache/metamodel/query/Query.java | 5 +++-- .../org/apache/metamodel/query/parser/QueryParserTest.java | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/9de5b771/core/src/main/java/org/apache/metamodel/query/Query.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/query/Query.java b/core/src/main/java/org/apache/metamodel/query/Query.java index 1fdb6da..209e71f 100644 --- a/core/src/main/java/org/apache/metamodel/query/Query.java +++ b/core/src/main/java/org/apache/metamodel/query/Query.java @@ -294,7 +294,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable { } private FilterItem findFilterItem(String expression) { - String _upperExpression = expression.toUpperCase(); + String upperExpression = expression.toUpperCase(); final QueryPartCollectionProcessor collectionProcessor = new QueryPartCollectionProcessor(); new QueryPartParser(collectionProcessor, expression, " AND ", " OR ").parse(); @@ -303,6 +303,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable { final List<String> delims = collectionProcessor.getDelims(); if (tokens.size() == 1) { expression = tokens.get(0); + upperExpression = expression.toUpperCase(); } else { final LogicalOperator logicalOperator = LogicalOperator.valueOf(delims.get(1).trim()); @@ -328,7 +329,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable { } else { searchStr = operatorCandidate.toSql(); } - final int operatorIndex = _upperExpression.indexOf(searchStr); + final int operatorIndex = upperExpression.indexOf(searchStr); if (operatorIndex > 0) { operator = operatorCandidate; leftSide = expression.substring(0, operatorIndex).trim(); http://git-wip-us.apache.org/repos/asf/metamodel/blob/9de5b771/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java index f83d4ff..d1c198f 100644 --- a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java +++ b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java @@ -51,6 +51,13 @@ public class QueryParserTest extends TestCase { col.setType(ColumnType.INTEGER); }; + public void testQueryWithParenthesisAnd() throws Exception { + Query q = MetaModelHelper.parseQuery(dc, + "select foo from sch.tbl where (foo= 1) and (foo=2)"); + assertEquals("SELECT tbl.foo FROM sch.tbl WHERE tbl.foo = '1' AND tbl.foo = '2'", + q.toSql()); + } + public void testQueryInLowerCase() throws Exception { Query q = MetaModelHelper.parseQuery(dc, "select a.foo as f from sch.tbl a inner join sch.tbl b on a.foo=b.foo order by a.foo asc");
