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());
+ }
}