Repository: metamodel
Updated Branches:
  refs/heads/master 53ab860e0 -> a0786cf21


Improved query parser's tolerance for lowercase WHERE clause delims.
Fixes #10

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/a0786cf2
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/a0786cf2
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/a0786cf2

Branch: refs/heads/master
Commit: a0786cf214ee63820cb594f7c5267ed8e29b25c4
Parents: 53ab860
Author: Kasper Sørensen <[email protected]>
Authored: Sat Mar 21 16:32:29 2015 +0100
Committer: Kasper Sørensen <[email protected]>
Committed: Sat Mar 21 16:32:29 2015 +0100

----------------------------------------------------------------------
 .../metamodel/query/parser/QueryPartParser.java    |  2 +-
 .../metamodel/query/parser/QueryParserTest.java    | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/a0786cf2/core/src/main/java/org/apache/metamodel/query/parser/QueryPartParser.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/metamodel/query/parser/QueryPartParser.java 
b/core/src/main/java/org/apache/metamodel/query/parser/QueryPartParser.java
index 1751bbf..c65db94 100644
--- a/core/src/main/java/org/apache/metamodel/query/parser/QueryPartParser.java
+++ b/core/src/main/java/org/apache/metamodel/query/parser/QueryPartParser.java
@@ -103,7 +103,7 @@ public final class QueryPartParser {
         DelimOccurrence result = null;
         for (int i = 0; i < _ItemDelims.length; i++) {
             String delim = _ItemDelims[i];
-            int index = _clause.indexOf(delim, offset);
+            int index = _clause.toUpperCase().indexOf(delim, offset);
             if (index != -1) {
                 if (result == null || index == Math.min(result.index, index)) {
                     result = new DelimOccurrence();

http://git-wip-us.apache.org/repos/asf/metamodel/blob/a0786cf2/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 db377d6..9edf8a2 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
@@ -213,6 +213,23 @@ public class QueryParserTest extends TestCase {
         assertTrue(bazConditions.isCompoundFilter());
     }
 
+    public void testCoumpoundWhereClauseDelimInLoweCase() throws Exception {
+        Query q = MetaModelHelper
+                .parseQuery(dc, "SELECT foo FROM sch.tbl WHERE (bar = 'baz' OR 
(baz > 5 and baz < 7))");
+        assertEquals("SELECT tbl.foo FROM sch.tbl WHERE (tbl.bar = 'baz' OR 
(tbl.baz > 5 AND tbl.baz < 7))", q.toSql());
+
+        FilterClause wc = q.getWhereClause();
+        assertEquals(1, wc.getItemCount());
+        FilterItem item = wc.getItem(0);
+        assertTrue(item.isCompoundFilter());
+
+        FilterItem[] childItems = item.getChildItems();
+        assertEquals(2, childItems.length);
+
+        FilterItem bazConditions = childItems[1];
+        assertTrue(bazConditions.isCompoundFilter());
+    }
+
     public void testWhereSomethingIsNull() throws Exception {
         Query q = MetaModelHelper.parseQuery(dc, "SELECT foo FROM sch.tbl 
WHERE bar IS NULL");
         assertEquals("SELECT tbl.foo FROM sch.tbl WHERE tbl.bar IS NULL", 
q.toSql());

Reply via email to