jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Kuleshov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (JCR-3413) Query with CONTAINS OR LIKE expression returns malformed result
Date Mon, 20 Aug 2012 09:57:38 GMT

     [ https://issues.apache.org/jira/browse/JCR-3413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dmitry Kuleshov updated JCR-3413:
---------------------------------

    Description: 
Seems that JCR-SQL queries with CONTAINS OR LIKE expressions return malformed results. 
The behavior is like AND operator is used to evaluate the results, though OR operator is mentioned
in the query.

To simplify The following test is failing:

   public void testLikeOrContainsClauses() throws Exception
   {
      Node foo = testRootNode.addNode("foo");
      foo.setProperty("mytext", new String[]{"the quick brown fox jumps over the lazy dog."});

      Node foo2 = testRootNode.addNode("foo2");
      foo2.setProperty("mytext", new String[]{"the quick brown dinosaur jumps over the lazy
dog."});

      testRootNode.save();

      String sql =
         "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "AND jcr:path LIKE '"
+ testRoot + "/foo2'";
      Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      QueryResult result = q.execute();
      checkResult(result, 0);

      sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') ";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 1);

      sql = "SELECT * FROM nt:unstructured WHERE jcr:path LIKE '" + testRoot + "/foo2'";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 1);

      sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "OR jcr:path LIKE
'" + testRoot + "/foo2'";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 2);
   }


  was:
Seems that JCR-SQL queries with {{CONTAINS OR LIKE}} expressions return malformed results.

The behavior is like {{AND}} operator is used to evaluate the results, though {{OR}} operator
is mentioned in the query.

To simplify The following test is failing:

   public void testLikeOrContainsClauses() throws Exception
   {
      Node foo = testRootNode.addNode("foo");
      foo.setProperty("mytext", new String[]{"the quick brown fox jumps over the lazy dog."});

      Node foo2 = testRootNode.addNode("foo2");
      foo2.setProperty("mytext", new String[]{"the quick brown dinosaur jumps over the lazy
dog."});

      testRootNode.save();

      String sql =
         "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "AND jcr:path LIKE '"
+ testRoot + "/foo2'";
      Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      QueryResult result = q.execute();
      checkResult(result, 0);

      sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') ";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 1);

      sql = "SELECT * FROM nt:unstructured WHERE jcr:path LIKE '" + testRoot + "/foo2'";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 1);

      sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "OR jcr:path LIKE
'" + testRoot + "/foo2'";
      q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
      result = q.execute();
      checkResult(result, 2);
   }


    
> Query with CONTAINS OR LIKE expression returns malformed result
> ---------------------------------------------------------------
>
>                 Key: JCR-3413
>                 URL: https://issues.apache.org/jira/browse/JCR-3413
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>            Reporter: Dmitry Kuleshov
>
> Seems that JCR-SQL queries with CONTAINS OR LIKE expressions return malformed results.

> The behavior is like AND operator is used to evaluate the results, though OR operator
is mentioned in the query.
> To simplify The following test is failing:
>    public void testLikeOrContainsClauses() throws Exception
>    {
>       Node foo = testRootNode.addNode("foo");
>       foo.setProperty("mytext", new String[]{"the quick brown fox jumps over the lazy
dog."});
>       Node foo2 = testRootNode.addNode("foo2");
>       foo2.setProperty("mytext", new String[]{"the quick brown dinosaur jumps over the
lazy dog."});
>       testRootNode.save();
>       String sql =
>          "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "AND jcr:path LIKE
'" + testRoot + "/foo2'";
>       Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
>       QueryResult result = q.execute();
>       checkResult(result, 0);
>       sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') ";
>       q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
>       result = q.execute();
>       checkResult(result, 1);
>       sql = "SELECT * FROM nt:unstructured WHERE jcr:path LIKE '" + testRoot + "/foo2'";
>       q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
>       result = q.execute();
>       checkResult(result, 1);
>       sql = "SELECT * FROM nt:unstructured WHERE contains(., 'fox') " + "OR jcr:path
LIKE '" + testRoot + "/foo2'";
>       q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
>       result = q.execute();
>       checkResult(result, 2);
>    }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message