You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2010/08/19 22:09:46 UTC
svn commit: r987289 - in /openjpa/trunk/openjpa-jdbc/src/main:
java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java
resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml
Author: faywang
Date: Thu Aug 19 20:09:45 2010
New Revision: 987289
URL: http://svn.apache.org/viewvc?rev=987289&view=rev
Log:
OPENJPA-735: OpenJPA support for SolidDB
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java
openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java?rev=987289&r1=987288&r2=987289&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SolidDBDictionary.java Thu Aug 19 20:09:45 2010
@@ -20,6 +20,7 @@ package org.apache.openjpa.jdbc.sql;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.MessageFormat;
import java.util.ArrayList;
@@ -31,6 +32,7 @@ import org.apache.openjpa.jdbc.identifie
import org.apache.openjpa.jdbc.kernel.exps.FilterValue;
import org.apache.openjpa.jdbc.kernel.exps.Lit;
import org.apache.openjpa.jdbc.schema.Column;
+import org.apache.openjpa.jdbc.schema.ForeignKey;
import org.apache.openjpa.jdbc.schema.Index;
import org.apache.openjpa.jdbc.schema.PrimaryKey;
import org.apache.openjpa.jdbc.schema.Schema;
@@ -41,6 +43,7 @@ import org.apache.openjpa.jdbc.schema.Un
import org.apache.openjpa.kernel.exps.Literal;
import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.meta.JavaTypes;
+import org.apache.openjpa.util.StoreException;
import org.apache.openjpa.util.UserException;
/**
@@ -524,4 +527,24 @@ public class SolidDBDictionary
selectSQL.append(")");
}
}
+
+ /**
+ * Solid does no support deferred referential integrity checking.
+ */
+ @Override
+ protected ForeignKey newForeignKey(ResultSet fkMeta)
+ throws SQLException {
+ ForeignKey fk = super.newForeignKey(fkMeta);
+ fk.setDeferred(false);
+ return fk;
+ }
+
+ @Override
+ public boolean isFatalException(int subtype, SQLException ex) {
+ String errorState = ex.getSQLState();
+ int errorCode = ex.getErrorCode();
+ if (subtype == StoreException.LOCK && errorCode == 14529 && "HY000".equals(errorState))
+ return false;
+ return super.isFatalException(subtype, ex);
+ }
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml?rev=987289&r1=987288&r2=987289&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/sql/sql-error-state-codes.xml Thu Aug 19 20:09:45 2010
@@ -191,7 +191,7 @@
</dictionary>
<dictionary class="org.apache.openjpa.jdbc.sql.SolidDBDictionary">
- <lock></lock>
+ <lock>HY000</lock>
<referential-integrity></referential-integrity>
<object-exists>23000</object-exists>
<object-not-found></object-not-found>