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;
}