Return-Path: Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: (qmail 97465 invoked from network); 8 May 2009 01:32:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 8 May 2009 01:32:02 -0000 Received: (qmail 33507 invoked by uid 500); 8 May 2009 01:32:02 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 33448 invoked by uid 500); 8 May 2009 01:32:02 -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 33438 invoked by uid 99); 8 May 2009 01:32:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 May 2009 01:32:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 May 2009 01:31:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3B58C2388A46; Fri, 8 May 2009 01:31:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r772828 - in /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql: DBDictionary.java MySQLDictionary.java Date: Fri, 08 May 2009 01:31:37 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090508013138.3B58C2388A46@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Fri May 8 01:31:37 2009 New Revision: 772828 URL: http://svn.apache.org/viewvc?rev=772828&view=rev Log: OPENJA-1070:support for composite foreign keys on MySQL Version >= 5 Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java 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=772828&r1=772827&r2=772828&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 Fri May 8 01:31:37 2009 @@ -181,6 +181,7 @@ public int maxIndexNameLength = 128; public int maxIndexesPerTable = Integer.MAX_VALUE; public boolean supportsForeignKeys = true; + public boolean supportsForeignKeysComposite = true; public boolean supportsUniqueConstraints = true; public boolean supportsDeferredConstraints = true; public boolean supportsRestrictDeleteAction = true; @@ -3381,6 +3382,8 @@ protected String getForeignKeyConstraintSQL(ForeignKey fk) { if (!supportsForeignKeys) return null; + if (fk.getColumns().length > 0 && !supportsForeignKeysComposite) + return null; if (fk.getDeleteAction() == ForeignKey.ACTION_NONE) return null; if (fk.isDeferred() && !supportsDeferredForeignKeyConstraints()) Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java?rev=772828&r1=772827&r2=772828&view=diff ============================================================================== --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java Fri May 8 01:31:37 2009 @@ -141,6 +141,7 @@ if (maj < 4 || (maj == 4 && min < 1)) { supportsSubselect = false; allowsAliasInBulkClause = false; + supportsForeignKeysComposite = false; } if (maj > 5 || (maj == 5 && min >= 1)) supportsXMLColumn = true; @@ -216,13 +217,6 @@ System.arraycopy(sql, 0, ret, cols.length, sql.length); return ret; } - - protected String getForeignKeyConstraintSQL(ForeignKey fk) { - // mysql does not support composite foreign keys - if (fk.getColumns().length > 1) - return null; - return super.getForeignKeyConstraintSQL(fk); - } public String[] getDeleteTableContentsSQL(Table[] tables) { // mysql >= 4 supports more-optimal delete syntax