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 2020/04/26 07:41:06 UTC
svn commit: r1877009 - in /jackrabbit/oak/branches/1.8: ./
oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
Author: reschke
Date: Sun Apr 26 07:41:06 2020
New Revision: 1877009
URL: http://svn.apache.org/viewvc?rev=1877009&view=rev
Log:
OAK-8882: RDBBlobStore: dump table structure on startup (merged r1873308, 1874097, and 1874246 into 1.8)
Modified:
jackrabbit/oak/branches/1.8/ (props changed)
jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
Propchange: jackrabbit/oak/branches/1.8/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1873308,1874097,1874246
Modified: jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1877009&r1=1877008&r2=1877009&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java (original)
+++ jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java Sun Apr 26 07:41:06 2020
@@ -32,10 +32,12 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -180,6 +182,7 @@ public class RDBBlobStore extends Cachin
List<String> tablesCreated = new ArrayList<String>();
List<String> tablesPresent = new ArrayList<String>();
+ Map<String, String> tableInfo = new HashMap<>();
Statement createStatement = null;
@@ -189,13 +192,18 @@ public class RDBBlobStore extends Cachin
try {
// avoid PreparedStatement due to weird DB2 behavior (OAK-6237)
checkStatement = con.createStatement();
- checkStatement.executeQuery("select ID from " + tableName + " where ID = '0'").close();
- checkStatement.close();
- checkStatement = null;
+ ResultSet checkResultSet = checkStatement.executeQuery("select * from " + tableName + " where ID = '0'");
+
+ // try to discover metadata
+ tableInfo.put(tableName, RDBJDBCTools.dumpResultSetMeta(checkResultSet.getMetaData()));
+
+ closeResultSet(checkResultSet);
+ checkStatement = closeStatement(checkStatement);
con.commit();
+
tablesPresent.add(tableName);
} catch (SQLException ex) {
- closeStatement(checkStatement);
+ checkStatement = closeStatement(checkStatement);
// table does not appear to exist
con.rollback();
@@ -215,6 +223,17 @@ public class RDBBlobStore extends Cachin
con.commit();
+ ResultSet checkResultSet = null;
+ try {
+ checkStatement = con.createStatement();
+ checkResultSet = checkStatement.executeQuery("select * from " + tableName + " where ID = '0'");
+ tableInfo.put(tableName, RDBJDBCTools.dumpResultSetMeta(checkResultSet.getMetaData()));
+ con.commit();
+ } finally {
+ closeResultSet(checkResultSet);
+ closeStatement(checkStatement);
+ }
+
tablesCreated.add(tableName);
}
}
@@ -224,7 +243,8 @@ public class RDBBlobStore extends Cachin
}
LOG.info("RDBBlobStore (" + getModuleVersion() + ") instantiated for database " + dbDesc + ", using driver: "
- + driverDesc + ", connecting to: " + dbUrl + ", transaction isolation level: " + isolationDiags);
+ + driverDesc + ", connecting to: " + dbUrl + ", transaction isolation level: " + isolationDiags + ", "
+ + tableInfo);
if (!tablesPresent.isEmpty()) {
LOG.info("Tables present upon startup: " + tablesPresent);
}