You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2011/10/18 05:06:03 UTC

svn commit: r1185462 - in /oodt/trunk: CHANGES.txt xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java

Author: mattmann
Date: Tue Oct 18 03:06:03 2011
New Revision: 1185462

URL: http://svn.apache.org/viewvc?rev=1185462&view=rev
Log:
- fix for OODT-333 XMLPS query doesn't quote literal string 

Modified:
    oodt/trunk/CHANGES.txt
    oodt/trunk/xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java
    oodt/trunk/xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java

Modified: oodt/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1185462&r1=1185461&r2=1185462&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Tue Oct 18 03:06:03 2011
@@ -4,6 +4,9 @@ Apache OODT Change Log
 Release 0.4: Current Development
 --------------------------------------------
 
+* OODT-333 XMLPS query doesn't quote literal string 
+  (Ricky Nguyen, mattmann, Sheryl John)
+
 * OODT-323 Add new command line option in Workflow manager 
   client to get Workflow Instance Metadata (Sheryl John via mattmann)
 

Modified: oodt/trunk/xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java
URL: http://svn.apache.org/viewvc/oodt/trunk/xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java?rev=1185462&r1=1185461&r2=1185462&view=diff
==============================================================================
--- oodt/trunk/xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java (original)
+++ oodt/trunk/xmlps/src/main/java/org/apache/oodt/xmlps/queryparser/HandlerQueryParser.java Tue Oct 18 03:06:03 2011
@@ -67,9 +67,9 @@ public class HandlerQueryParser implemen
 
       String logOpType = qe.getValue();
       if (logOpType.equalsIgnoreCase(XMLQUERY_AND)) {
-        return new AndExpression(parse(queryStack), parse(queryStack, map));
+        return new AndExpression(parse(queryStack, map), parse(queryStack, map));
       } else if (logOpType.equalsIgnoreCase(XMLQUERY_OR)) {
-        return new OrExpression(parse(queryStack), parse(queryStack, map));
+        return new OrExpression(parse(queryStack, map), parse(queryStack, map));
       } else
         return null;
 

Modified: oodt/trunk/xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java
URL: http://svn.apache.org/viewvc/oodt/trunk/xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java?rev=1185462&r1=1185461&r2=1185462&view=diff
==============================================================================
--- oodt/trunk/xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java (original)
+++ oodt/trunk/xmlps/src/test/java/org/apache/oodt/xmlps/queryparser/TestHandlerQueryParser.java Tue Oct 18 03:06:03 2011
@@ -27,6 +27,7 @@ import org.apache.oodt.xmlquery.QueryEle
 import org.apache.oodt.xmlquery.XMLQuery;
 
 //JDK imports
+import java.util.List;
 import java.util.Stack;
 
 //Junit imports
@@ -73,5 +74,38 @@ public class TestHandlerQueryParser exte
     assertNotNull(parsedQuery);
     assertEquals(expected, parsedQuery.evaluate());    
   }
+  
+  private Mapping createFooBarMapping() {
+    Mapping m = new Mapping();
+    MappingField foof = new MappingField();
+    foof.setName("foo");
+    foof.setDbName("foo");
+    foof.setString(true);
+    MappingField barf = new MappingField();
+    barf.setName("bar");
+    barf.setDbName("bar");
+    barf.setString(true);
+    m.addField("foo", foof);
+    m.addField("bar", barf);
+    return m;
+  }
+
+  public void testParseLiteralQuotesWithParen() {
+    Mapping m = createFooBarMapping();
+
+    String q = "(foo = 'yes' OR bar = 'no') AND RETURN = foo AND RETURN = bar";
+    String expected = "(bar = 'no' OR foo = 'yes')";
+
+    XMLQuery query = XMLQueryHelper.getDefaultQueryFromQueryString(q);
+    assertNotNull(query);
+    Stack<QueryElement> where = HandlerQueryParser.createQueryStack(query.getWhereElementSet());
+    assertNotNull(where);
+    List<QueryElement> select = query.getSelectElementSet();
+    assertNotNull(select);
+
+    Expression parsed = HandlerQueryParser.parse(where, m);
+    assertNotNull(parsed);
+    assertEquals(expected, parsed.evaluate());
+  }
 
 }