You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2011/03/21 10:55:33 UTC
svn commit: r1083722 - in /jackrabbit/trunk/jackrabbit-spi-commons/src/test:
java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java
resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt
Author: thomasm
Date: Mon Mar 21 09:55:33 2011
New Revision: 1083722
URL: http://svn.apache.org/viewvc?rev=1083722&view=rev
Log:
JCR-2923 SQL2 parser: improved error message for ambiguous properties in joins
Modified:
jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java
jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java?rev=1083722&r1=1083721&r2=1083722&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/query/sql2/ParserTest.java Mon Mar 21 09:55:33 2011
@@ -41,6 +41,7 @@ import javax.jcr.query.qom.QueryObjectMo
import javax.jcr.query.qom.Source;
import javax.jcr.version.VersionException;
import junit.framework.TestCase;
+import org.apache.jackrabbit.commons.query.sql2.Parser;
import org.apache.jackrabbit.commons.query.sql2.QOMFormatter;
import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
import org.apache.jackrabbit.spi.commons.conversion.DummyNamespaceResolver;
@@ -55,7 +56,7 @@ import org.apache.jackrabbit.spi.commons
*/
public class ParserTest extends TestCase {
- protected Parser parser;
+ protected org.apache.jackrabbit.commons.query.sql2.Parser parser;
protected Random random = new Random();
@@ -84,6 +85,7 @@ public class ParserTest extends TestCase
}
public void bindValue(String varName, Value value) throws IllegalArgumentException, RepositoryException {
+ // ignore
}
public QueryResult execute() throws InvalidQueryException, RepositoryException {
@@ -107,9 +109,11 @@ public class ParserTest extends TestCase
}
public void setLimit(long limit) {
+ // ignore
}
public void setOffset(long offset) {
+ // ignore
}
public Node storeAsNode(String absPath) throws ItemExistsException, PathNotFoundException, VersionException,
@@ -171,11 +175,14 @@ public class ParserTest extends TestCase
fuzz(line);
} catch (Exception e) {
line = reader.readLine();
+ String message = e.getMessage();
+ message = message.replace('\n', ' ');
if (line == null || !line.startsWith("> exception")) {
e.printStackTrace();
assertTrue("Unexpected exception for query " + query + ": "
+ e, false);
}
+ assertEquals("Expected exception message: " + message, "> exception: " + message, line);
}
}
reader.close();
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt?rev=1083722&r1=1083721&r2=1083722&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/org/apache/jackrabbit/spi/commons/query/sql2/test.sql2.txt Mon Mar 21 09:55:33 2011
@@ -221,14 +221,16 @@ select x.*, x.id as i, y.*, y.name from
#errors
select * from parent as p inner join child as c on issamenode(p, c, a/b)
-> exception
+> exception: Query: select * from parent as p inner join child as c on issamenode(p, c, a/(*)b); expected: )
select * from parent as p inner join child as c on issamenode(p, c, d, e)
-> exception
+> exception: Query: select * from parent as p inner join child as c on issamenode(p, c, d,(*)e); expected: )
select * from
-> exception
+> exception: Query: select * fro(*)m; expected: a token
select * from parent as p inner join child as c on ischildnode(p, c, a)
-> exception
+> exception: Query: select * from parent as p inner join child as c on ischildnode(p, c,(*)a); expected: )
select * from parent as p inner join child as c on isdescendantnode(p)
-> exception
+> exception: Query: select * from parent as p inner join child as c on isdescendantnode(p(*)); expected: ,
select * from parent as p inner join child as c on isdescendantnode(a, b, c)
-> exception
+> exception: Query: select * from parent as p inner join child as c on isdescendantnode(a, b,(*)c); expected: )
+select id from parent inner join child on parent.id=child.parentid
+> exception: Query: select id(*)from parent inner join child on parent.id=child.parentid; expected: Need to specify the selector name for "id" because the query contains more than one selector.
\ No newline at end of file