You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2017/07/03 08:24:26 UTC

svn commit: r1800602 - in /jackrabbit/oak/branches/1.2/oak-core/src: main/java/org/apache/jackrabbit/oak/query/ main/java/org/apache/jackrabbit/oak/query/xpath/ test/resources/org/apache/jackrabbit/oak/query/

Author: thomasm
Date: Mon Jul  3 08:24:26 2017
New Revision: 1800602

URL: http://svn.apache.org/viewvc?rev=1800602&view=rev
Log:
OAK-5949 XPath: string literals parsed as identifiers

Modified:
    jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
    jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/xpath/XPathToSQL2Converter.java
    jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2_measure.txt
    jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/xpath.txt

Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java?rev=1800602&r1=1800601&r2=1800602&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java Mon Jul  3 08:24:26 2017
@@ -1212,14 +1212,17 @@ public class SQL2Parser {
             readDecimal(i - 1, i);
             return;
         case CHAR_BRACKETED:
+            currentTokenQuoted = true;
             readString(i, ']');
             currentTokenType = IDENTIFIER;
             currentToken = currentValue.getValue(Type.STRING);
             return;
         case CHAR_STRING:
+            currentTokenQuoted = true;
             readString(i, '\'');
             return;
         case CHAR_QUOTED:
+            currentTokenQuoted = true;
             readString(i, '\"');
             if (supportSQL1) {
                 // for SQL-2, this is a literal, as defined in

Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/xpath/XPathToSQL2Converter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/xpath/XPathToSQL2Converter.java?rev=1800602&r1=1800601&r2=1800602&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/xpath/XPathToSQL2Converter.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/query/xpath/XPathToSQL2Converter.java Mon Jul  3 08:24:26 2017
@@ -914,6 +914,7 @@ public class XPathToSQL2Converter {
             readDecimal(i - 1, i);
             return;
         case CHAR_STRING:
+            currentTokenQuoted = true;
             if (chars[i - 1] == '\'') {
                 readString(i, '\'');
             } else {

Modified: jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2_measure.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2_measure.txt?rev=1800602&r1=1800601&r2=1800602&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2_measure.txt (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2_measure.txt Mon Jul  3 08:24:26 2017
@@ -24,6 +24,10 @@
 # * new tests are typically be added on top, after the syntax docs
 # * use ascii character only
 
+# OAK-5949
+explain [SELECT] * from [nt:base]
+java.text.ParseException: Query: explain [SELECT](*)* from [nt:base]; expected: SELECT
+
 commit / + "testRoot": { }
 commit /testRoot + "parents": { "p0": {"id": "0"}, "p1": {"id": "1"}, "p2": {"id": "2"}}
 commit /testRoot + "children": { "c1": {"p": "1"}, "c2": {"p": "1"}, "c3": {"p": "2"}, "c4": {"p": "3"}}

Modified: jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/xpath.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/xpath.txt?rev=1800602&r1=1800601&r2=1800602&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/xpath.txt (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/xpath.txt Mon Jul  3 08:24:26 2017
@@ -24,6 +24,15 @@
 # * new tests are typically be added on top, after the syntax docs
 # * use ascii character only
 
+# OAK-5949
+
+xpath2sql /jcr:root/home//element(*,rep:Authorizable)[jcr:like(@rep:authorizableId,'@')]
+select [jcr:path], [jcr:score], *
+  from [rep:Authorizable] as a
+  where [rep:authorizableId] like '@'
+  and isdescendantnode(a, '/home')
+  /* xpath ... */
+
 # OAK-4387
 xpath2sql /jcr:root/content/text/element/rep:excerpt/jcr:content//element(*,nt:unstructured)
 select [jcr:path], [jcr:score], *