Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-11-06 07:51:42 +0000
committerEike Stepper2012-11-06 07:51:42 +0000
commitaa797f40e69af58abc6740706486290514e19de0 (patch)
treecebea7daf61be578624b3ae6709c1d5b6dc8257c /plugins/org.eclipse.net4j.db
parent16b7f6ba4c45b827bfffc9c86f70ea71dce61d8e (diff)
downloadcdo-aa797f40e69af58abc6740706486290514e19de0.tar.gz
cdo-aa797f40e69af58abc6740706486290514e19de0.tar.xz
cdo-aa797f40e69af58abc6740706486290514e19de0.zip
[364809] DBStore with Postgres fail to recover from crash
https://bugs.eclipse.org/bugs/show_bug.cgi?id=364809
Diffstat (limited to 'plugins/org.eclipse.net4j.db')
-rw-r--r--plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java10
-rw-r--r--plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java17
2 files changed, 26 insertions, 1 deletions
diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java
index 5d73ba2e2a..3aaa5a6fcc 100644
--- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java
+++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java
@@ -103,5 +103,15 @@ public interface IDBAdapter
/**
* @since 4.2
*/
+ public boolean isTableNotFoundException(SQLException ex);
+
+ /**
+ * @since 4.2
+ */
+ public boolean isColumnNotFoundException(SQLException ex);
+
+ /**
+ * @since 4.2
+ */
public String sqlRenameField(IDBField field, String oldName);
}
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 e1405f1bca..9892e0fbd6 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
@@ -557,13 +557,28 @@ public abstract class DBAdapter implements IDBAdapter
*/
public boolean isDuplicateKeyException(SQLException ex)
{
- /* SQL code for duplicate keys is 23001 */
return "23001".equals(ex.getSQLState());
}
/**
* @since 4.2
*/
+ public boolean isTableNotFoundException(SQLException ex)
+ {
+ return "42S02".equals(ex.getSQLState());
+ }
+
+ /**
+ * @since 4.2
+ */
+ public boolean isColumnNotFoundException(SQLException ex)
+ {
+ return "42S22".equals(ex.getSQLState());
+ }
+
+ /**
+ * @since 4.2
+ */
public String sqlRenameField(IDBField field, String oldName)
{
return "ALTER TABLE " + field.getTable() + " RENAME COLUMN " + oldName + " TO " + field;

Back to the top