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/06/30 14:41:19 UTC

svn commit: r1606717 - in /jackrabbit/oak/trunk: oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java

Author: reschke
Date: Mon Jun 30 12:41:19 2014
New Revision: 1606717

URL: http://svn.apache.org/r1606717
Log:
OAK-1914: change LEVEL to LVL (LEVEL is reserved in Oracle), create Oracle-specific DDL statements, avoid use of LIMIT (see also OAK-1746)

Modified:
    jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java

Modified: jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java?rev=1606717&r1=1606716&r2=1606717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java Mon Jun 30 12:41:19 2014
@@ -405,7 +405,7 @@ public abstract class AbstractBlobStoreT
             ids.remove(iter.next());
         }
 
-        assertTrue(ids.isEmpty());
+        assertTrue("unexpected ids in store: " + ids, ids.isEmpty());
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1606717&r1=1606716&r2=1606717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java Mon Jun 30 12:41:19 2014
@@ -98,10 +98,13 @@ public class RDBBlobStore extends Cachin
                     if (tableName.equals("DATASTORE_META")) {
                         if ("MySQL".equals(dbtype)) {
                             stmt.execute("create table " + tableName
-                                    + " (ID varchar(767) not null primary key, LEVEL int, LASTMOD bigint)");
+                                    + " (ID varchar(767) not null primary key, LVL int, LASTMOD bigint)");
+                        } else if ("Oracle".equals(dbtype)) {
+                            stmt.execute("create table " + tableName
+                                    + " (ID varchar(1000) not null primary key, LVL number, LASTMOD number)");
                         } else {
                             stmt.execute("create table " + tableName
-                                    + " (ID varchar(1000) not null primary key, LEVEL int, LASTMOD bigint)");
+                                    + " (ID varchar(1000) not null primary key, LVL int, LASTMOD bigint)");
                         }
                     } else {
                         // the code below likely will need to be extended for
@@ -175,7 +178,7 @@ public class RDBBlobStore extends Cachin
                     throw new RuntimeException(message, ex);
                 }
                 try {
-                    prep = con.prepareStatement("insert into datastore_meta(id, level, lastMod) values(?, ?, ?)");
+                    prep = con.prepareStatement("insert into datastore_meta(id, lvl, lastMod) values(?, ?, ?)");
                     try {
                         prep.setString(1, id);
                         prep.setInt(2, level);
@@ -403,7 +406,7 @@ public class RDBBlobStore extends Cachin
 
         private long maxLastModifiedTime;
         private DataSource ds;
-        private static int BATCHSIZE = 1024 * 256;
+        private static int BATCHSIZE = 1024 * 64;
         private List<String> results = new LinkedList<String>();
         private String lastId = null;
 
@@ -439,7 +442,7 @@ public class RDBBlobStore extends Cachin
                     query.append(" where id > ?");
                 }
             }
-            query.append(" order by id limit " + BATCHSIZE);
+            query.append(" order by id");
 
             Connection connection = null;
             try {
@@ -454,7 +457,7 @@ public class RDBBlobStore extends Cachin
                     if (lastId != null) {
                         prep.setString(idx++, lastId);
                     }
-
+                    prep.setFetchSize(BATCHSIZE);
                     ResultSet rs = prep.executeQuery();
                     while (rs.next()) {
                         lastId = rs.getString(1);
@@ -466,6 +469,7 @@ public class RDBBlobStore extends Cachin
                     connection.close();
                 }
             } catch (SQLException ex) {
+                LOG.debug("error executing ID lookup", ex);
                 try {
                     if (connection != null) {
                         connection.rollback();