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 re...@apache.org on 2014/04/17 19:45:03 UTC

svn commit: r1588317 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java

Author: reschke
Date: Thu Apr 17 17:45:02 2014
New Revision: 1588317

URL: http://svn.apache.org/r1588317
Log:
OAK-1746 - use setFetchLimit(), improve test case

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1588317&r1=1588316&r2=1588317&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Thu Apr 17 17:45:02 2014
@@ -753,10 +753,6 @@ public class RDBDocumentStore implements
             t += " and MODIFIED >= ?";
         }
         t += " order by ID";
-        // TODO: OAK-1746
-        //        if (limit != Integer.MAX_VALUE) {
-        //            t += " limit ?";
-        //        }
         PreparedStatement stmt = connection.prepareStatement(t);
         List<String> result = new ArrayList<String>();
         try {
@@ -766,10 +762,9 @@ public class RDBDocumentStore implements
             if (indexedProperty != null) {
                 stmt.setLong(si++, startValue);
             }
-            // TODO: OAK-1746
-            //            if (limit != Integer.MAX_VALUE) {
-            //                stmt.setInt(si++, limit);
-            //            }
+            if (limit != Integer.MAX_VALUE) {
+                stmt.setFetchSize(limit);
+            }
             ResultSet rs = stmt.executeQuery();
             while (rs.next() && result.size() < limit) {
                 String data = getData(rs, 1, 2);

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java?rev=1588317&r1=1588316&r2=1588317&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BasicDocumentStoreTest.java Thu Apr 17 17:45:02 2014
@@ -17,12 +17,15 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
@@ -164,9 +167,34 @@ public class BasicDocumentStoreTest exte
 
     @Test
     public void testQuery() {
-        // try a nonsense query to verify that the syntax works
-        List<NodeDocument> result = ds.query(Collection.NODES, "a", "z", "_modified", 0, 20);
-        assertEquals(0, result.size());
+        // create ten documents
+        String base = this.getClass().getName() + ".testQuery-";
+        for (int i = 0; i < 10; i++) {
+            String id = base + i;
+            UpdateOp up = new UpdateOp(id, true);
+            up.set("_id", id);
+            boolean success = super.ds.create(Collection.NODES, Collections.singletonList(up));
+            assertTrue("document with " + id + " not created", success);
+            removeMe.add(id);
+        }
+
+        Set<String> result = getKeys(ds.query(Collection.NODES, base, base + "A", 5));
+        assertEquals(5, result.size());
+        assertTrue(result.contains(base + "4"));
+        assertFalse(result.contains(base + "5"));
+
+        result = getKeys(ds.query(Collection.NODES, base, base + "A", 20));
+        assertEquals(10, result.size());
+        assertTrue(result.contains(base + "0"));
+        assertTrue(result.contains(base + "9"));
+    }
+
+    private Set<String> getKeys(List<NodeDocument> docs) {
+        Set<String> result = new HashSet<String>();
+        for (NodeDocument doc : docs) {
+            result.add(doc.getId());
+        }
+        return result;
     }
 
     @Test
@@ -191,7 +219,7 @@ public class BasicDocumentStoreTest exte
             up.set("_id", id);
             up.set("foo", pval);
             boolean success = super.ds.create(Collection.NODES, Collections.singletonList(up));
-            assertTrue("document with " + id + " nit created", success);
+            assertTrue("document with " + id + " not created", success);
             removeMe.add(id);
             cnt += 1;
         }