Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-11-16 09:08:39 +0000
committerEike Stepper2012-11-16 09:08:39 +0000
commit84b363ec6029e3a657bd961197d538338da56d27 (patch)
treeaec9075ad7093f819dee75aeb946e64d6ebc2895
parentc734ed318fff4aa6530e84530bb528010eae562f (diff)
downloadcdo-84b363ec6029e3a657bd961197d538338da56d27.tar.gz
cdo-84b363ec6029e3a657bd961197d538338da56d27.tar.xz
cdo-84b363ec6029e3a657bd961197d538338da56d27.zip
[394213] [DB] Postgres fails to create table when the database starts
empty https://bugs.eclipse.org/bugs/show_bug.cgi?id=394213
-rw-r--r--plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java28
-rw-r--r--plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java50
2 files changed, 26 insertions, 52 deletions
diff --git a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
index 43614e8225..846fc50f95 100644
--- a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
+++ b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
@@ -16,8 +16,6 @@ package org.eclipse.net4j.db.postgresql;
import org.eclipse.net4j.db.DBType;
import org.eclipse.net4j.db.IDBAdapter;
import org.eclipse.net4j.db.ddl.IDBField;
-import org.eclipse.net4j.db.ddl.IDBTable;
-import org.eclipse.net4j.db.internal.postgresql.bundle.OM;
import org.eclipse.net4j.spi.db.DBAdapter;
import org.postgresql.ds.PGSimpleDataSource;
@@ -26,8 +24,6 @@ import javax.sql.DataSource;
import java.sql.Driver;
import java.sql.SQLException;
-import java.sql.Savepoint;
-import java.sql.Statement;
/**
* A {@link IDBAdapter DB adapter} for <a href="http://www.postgresql.org/">PostgreSQL</a> databases.
@@ -146,30 +142,6 @@ public class PostgreSQLAdapter extends DBAdapter
}
@Override
- protected void doCreateTable(IDBTable table, Statement statement) throws SQLException
- {
- Savepoint savepoint = statement.getConnection().setSavepoint();
-
- try
- {
- super.doCreateTable(table, statement);
- }
- catch (SQLException ex)
- {
- try
- {
- statement.getConnection().rollback(savepoint);
- }
- catch (SQLException ex1)
- {
- OM.LOG.error(ex1);
- }
-
- throw ex;
- }
- }
-
- @Override
public DBType adaptType(DBType type)
{
switch (type)
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
index 9892e0fbd6..420e86cfca 100644
--- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
+++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java
@@ -102,26 +102,27 @@ public abstract class DBAdapter implements IDBAdapter
public Set<IDBTable> createTables(Iterable<? extends IDBTable> tables, Connection connection) throws DBException
{
Set<IDBTable> createdTables = new HashSet<IDBTable>();
- Statement statement = null;
- try
+ for (IDBTable table : tables)
{
- statement = connection.createStatement();
- for (IDBTable table : tables)
+ Statement statement = null;
+
+ try
{
+ statement = connection.createStatement();
if (createTable(table, statement))
{
createdTables.add(table);
}
}
- }
- catch (SQLException ex)
- {
- throw new DBException(ex);
- }
- finally
- {
- DBUtil.close(statement);
+ catch (SQLException ex)
+ {
+ throw new DBException(ex);
+ }
+ finally
+ {
+ DBUtil.close(statement);
+ }
}
return createdTables;
@@ -151,26 +152,27 @@ public abstract class DBAdapter implements IDBAdapter
public Collection<IDBTable> dropTables(Iterable<? extends IDBTable> tables, Connection connection) throws DBException
{
List<IDBTable> droppedTables = new ArrayList<IDBTable>();
- Statement statement = null;
- try
+ for (IDBTable table : tables)
{
- statement = connection.createStatement();
- for (IDBTable table : tables)
+ Statement statement = null;
+
+ try
{
+ statement = connection.createStatement();
if (dropTable(table, statement))
{
droppedTables.add(table);
}
}
- }
- catch (SQLException ex)
- {
- OM.LOG.error(ex);
- }
- finally
- {
- DBUtil.close(statement);
+ catch (SQLException ex)
+ {
+ OM.LOG.error(ex);
+ }
+ finally
+ {
+ DBUtil.close(statement);
+ }
}
return droppedTables;

Back to the top