You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mi...@apache.org on 2009/12/11 20:07:28 UTC

svn commit: r889771 - /openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java

Author: mikedd
Date: Fri Dec 11 19:07:26 2009
New Revision: 889771

URL: http://svn.apache.org/viewvc?rev=889771&view=rev
Log:
OPENJPA-1326:
Set schema names for Sybase when creating new indexes and primary keys.
Submitted By : BJ Reed

Modified:
    openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java

Modified: openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java?rev=889771&r1=889770&r2=889771&view=diff
==============================================================================
--- openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java (original)
+++ openjpa/branches/1.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java Fri Dec 11 19:07:26 2009
@@ -22,6 +22,7 @@
 import java.math.BigInteger;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
 import java.util.Arrays;
@@ -29,6 +30,7 @@
 import org.apache.commons.lang.StringUtils;
 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.Table;
 import org.apache.openjpa.jdbc.schema.Unique;
@@ -300,6 +302,33 @@
     }
 
     /**
+     * Create a new primary key from the information in the schema metadata.
+     */
+    protected PrimaryKey newPrimaryKey(ResultSet pkMeta)
+        throws SQLException {
+        PrimaryKey pk = new PrimaryKey();
+        pk.setSchemaName(pkMeta.getString("table_owner"));
+        pk.setTableName(pkMeta.getString("table_name"));
+        pk.setColumnName(pkMeta.getString("column_name"));
+        pk.setName(pkMeta.getString("index_name"));
+        return pk;
+    }
+
+    /**
+     * Create a new index from the information in the index metadata.
+     */
+    protected Index newIndex(ResultSet idxMeta)
+        throws SQLException {
+        Index idx = new Index();
+        idx.setSchemaName(idxMeta.getString("table_owner"));
+        idx.setTableName(idxMeta.getString("table_name"));
+        idx.setColumnName(idxMeta.getString("column_name"));
+        idx.setName(idxMeta.getString("index_name"));
+        idx.setUnique(!idxMeta.getBoolean("non_unique"));
+        return idx;
+    }
+
+    /**
      * Connection wrapper to cache the {@link Connection#getCatalog} result,
      * which takes a very long time with the Sybase Connection (and
      * which we frequently invoke).