From commits-return-2490-apmail-openjpa-commits-archive=openjpa.apache.org@openjpa.apache.org Mon Oct 29 18:26:42 2007 Return-Path: Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: (qmail 99849 invoked from network); 29 Oct 2007 18:26:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Oct 2007 18:26:42 -0000 Received: (qmail 51400 invoked by uid 500); 29 Oct 2007 18:26:29 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 51389 invoked by uid 500); 29 Oct 2007 18:26:29 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 51380 invoked by uid 99); 29 Oct 2007 18:26:29 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Oct 2007 11:26:29 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Oct 2007 18:26:49 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 80AF71A9838; Mon, 29 Oct 2007 11:26:18 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r589788 - in /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc: kernel/TableJDBCSeq.java sql/DB2Dictionary.java sql/DBDictionary.java Date: Mon, 29 Oct 2007 18:26:16 -0000 To: commits@openjpa.apache.org From: mikedd@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071029182618.80AF71A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikedd Date: Mon Oct 29 11:26:15 2007 New Revision: 589788 URL: http://svn.apache.org/viewvc?rev=589788&view=rev Log: OPENJPA-399 committing Teresa's patch Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java?rev=589788&r1=589787&r2=589788&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java Mon Oct 29 11:26:15 2007 @@ -235,16 +235,15 @@ schema = group.addSchema(schemaName); schema.importTable(_pkColumn.getTable()); - // build the index for the sequence tables - // the index name will the fully qualified table name +_IDX - Table tab = schema.getTable(_table); - Index idx = tab.addIndex(tab.getFullName()+"_IDX"); - idx.setUnique(true); // we need to reset the table name in the column with the // fully qualified name for matching the table name from the // Column. - _pkColumn.resetTableName(schemaName+"."+_pkColumn.getTableName()); - idx.addColumn(_pkColumn); + _pkColumn.resetTableName(schemaName + "." + + _pkColumn.getTableName()); + // some databases require to create an index for the sequence table + _conf.getDBDictionaryInstance().createIndexIfNecessary(schema, + _table, _pkColumn); + } } Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java?rev=589788&r1=589787&r2=589788&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java Mon Oct 29 11:26:15 2007 @@ -31,12 +31,17 @@ import org.apache.openjpa.jdbc.kernel.exps.Lit; import org.apache.openjpa.jdbc.kernel.exps.Param; import org.apache.openjpa.jdbc.kernel.exps.Val; +import org.apache.openjpa.jdbc.schema.Column; +import org.apache.openjpa.jdbc.schema.Index; +import org.apache.openjpa.jdbc.schema.Schema; import org.apache.openjpa.jdbc.schema.Sequence; +import org.apache.openjpa.jdbc.schema.Table; import org.apache.openjpa.kernel.Filters; import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.meta.JavaTypes; import org.apache.openjpa.util.OpenJPAException; import org.apache.openjpa.util.UnsupportedException; + import serp.util.Strings; /** @@ -769,6 +774,21 @@ buf.replaceSqlString(sqlString.length() - 1, sqlString.length(), str); } + } + } + + /** + * Create an index if necessary for some database tables + */ + public void createIndexIfNecessary(Schema schema, String table, + Column pkColumn) { + if (isDB2ZOSV8xOrLater()) { + // build the index for the sequence tables + // the index name will the fully qualified table name + _IDX + Table tab = schema.getTable(table); + Index idx = tab.addIndex(tab.getFullName() + "_IDX"); + idx.setUnique(true); + idx.addColumn(pkColumn); } } } Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=589788&r1=589787&r2=589788&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Mon Oct 29 11:26:15 2007 @@ -4108,4 +4108,11 @@ public String getCastFunction(Val val, String func) { return func; } + + /** + * Create an index if necessary for some database tables + */ + public void createIndexIfNecessary(Schema schema, String table, + Column pkColumn) { + } }