Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrescobar2011-07-22 18:10:47 +0000
committerRyan D. Brooks2011-07-22 18:10:47 +0000
commitcd99d08062843397efa1690f4d7769d4bc4acb7f (patch)
tree5313cf7f45fc2dffb8efa36e5cef45fd73f20791 /plugins/org.eclipse.osee.framework.branch.management/src
parentfc8c3c9888711db33d6eb20e55549312e3a579d3 (diff)
downloadorg.eclipse.osee-cd99d08062843397efa1690f4d7769d4bc4acb7f.tar.gz
org.eclipse.osee-cd99d08062843397efa1690f4d7769d4bc4acb7f.tar.xz
org.eclipse.osee-cd99d08062843397efa1690f4d7769d4bc4acb7f.zip
refinement[ats_LCBBP]: Use truncate sql cmd for table cleanup
Diffstat (limited to 'plugins/org.eclipse.osee.framework.branch.management/src')
-rw-r--r--plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java47
1 files changed, 45 insertions, 2 deletions
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
index e4779f3eee9..0cb6147022f 100644
--- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
+++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/exchange/handler/BaseDbSaxHandler.java
@@ -10,12 +10,19 @@
*******************************************************************************/
package org.eclipse.osee.framework.branch.management.exchange.handler;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
+import java.util.logging.Level;
import org.eclipse.osee.framework.branch.management.exchange.TranslationManager;
+import org.eclipse.osee.framework.branch.management.internal.Activator;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.database.IOseeDatabaseService;
import org.eclipse.osee.framework.database.core.OseeConnection;
+import org.eclipse.osee.framework.database.core.SupportedDatabase;
+import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.resource.management.Options;
/**
@@ -84,7 +91,7 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
}
public boolean isStorageNeeded() {
- return this.isCacheAll != true && this.data.size() > this.cacheLimit;
+ return !isCacheAll && data.size() > cacheLimit;
}
protected void addData(Object[] objects) {
@@ -98,8 +105,44 @@ public abstract class BaseDbSaxHandler extends BaseExportImportSaxHandler {
}
}
+ private boolean isTruncateSupported() throws OseeCoreException {
+ boolean isTruncateSupported = false;
+ DatabaseMetaData metaData = connection.getMetaData();
+ if (!SupportedDatabase.isDatabaseType(metaData, SupportedDatabase.derby)) {
+ ResultSet resultSet = null;
+ try {
+ resultSet = metaData.getTablePrivileges(null, null, getMetaData().getTableName().toUpperCase());
+ while (resultSet.next()) {
+ String value = resultSet.getString("PRIVILEGE");
+ if ("TRUNCATE".equalsIgnoreCase(value)) {
+ isTruncateSupported = true;
+ break;
+ }
+ }
+ } catch (SQLException ex1) {
+ OseeLog.log(Activator.class, Level.INFO, ex1);
+ } finally {
+ if (resultSet != null) {
+ try {
+ resultSet.close();
+ } catch (SQLException ex) {
+ // Do Nothing
+ }
+ }
+ }
+ }
+ return isTruncateSupported;
+ }
+
public void clearDataTable() throws OseeCoreException {
- getDatabaseService().runPreparedUpdate(connection, String.format("DELETE FROM %s", getMetaData().getTableName()));
+ String cmd = isTruncateSupported() ? "TRUNCATE TABLE" : "DELETE FROM";
+ String deleteSql = String.format("%s %s", cmd, getMetaData().getTableName());
+ try {
+ getDatabaseService().runPreparedUpdate(connection, deleteSql);
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.INFO, ex, "Error clearing: %s", deleteSql);
+ throw ex;
+ }
}
protected IOseeDatabaseService getDatabaseService() {

Back to the top