Return-Path: Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: (qmail 48944 invoked from network); 18 Sep 2007 22:36:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 18 Sep 2007 22:36:24 -0000 Received: (qmail 39006 invoked by uid 500); 18 Sep 2007 22:36:16 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 38949 invoked by uid 500); 18 Sep 2007 22:36:15 -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 38940 invoked by uid 99); 18 Sep 2007 22:36:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Sep 2007 15:36:15 -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; Tue, 18 Sep 2007 22:36:23 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E0FB31A9832; Tue, 18 Sep 2007 15:36:02 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r577090 - in /openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql: DBDictionary.java PostgresDictionary.java Date: Tue, 18 Sep 2007 22:35:58 -0000 To: commits@openjpa.apache.org From: mikedd@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20070918223602.E0FB31A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikedd Date: Tue Sep 18 15:35:52 2007 New Revision: 577090 URL: http://svn.apache.org/viewvc?rev=577090&view=rev Log: OPENJPA-282 merging to 1.0.x branch. Modified: openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/PostgresDictionary.java Modified: openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java URL: http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=577090&r1=577089&r2=577090&view=diff ============================================================================== --- openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original) +++ openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Tue Sep 18 15:35:52 2007 @@ -3059,7 +3059,7 @@ return null; if (fk.getDeleteAction() == ForeignKey.ACTION_NONE) return null; - if (fk.isDeferred() && !supportsDeferredConstraints) + if (fk.isDeferred() && !supportsDeferredForeignKeyConstraints()) return null; if (!supportsDeleteAction(fk.getDeleteAction()) || !supportsUpdateAction(fk.getUpdateAction())) @@ -3096,7 +3096,7 @@ buf.append(" ON UPDATE ").append(upAction); if (fk.isDeferred()) buf.append(" INITIALLY DEFERRED"); - if (supportsDeferredConstraints) + if (supportsDeferredForeignKeyConstraints()) buf.append(" DEFERRABLE"); if (fk.getName() != null && CONS_NAME_AFTER.equals(constraintNameMode)) @@ -3105,6 +3105,16 @@ } /** + * Whether or not this dictionary supports deferred foreign key constraints. + * This implementation returns {@link #supportsUniqueConstraints}. + * + * @since 1.1.0 + */ + protected boolean supportsDeferredForeignKeyConstraints() { + return supportsDeferredConstraints; + } + + /** * Return the name of the given foreign key action. */ private String getActionName(int action) { @@ -3172,7 +3182,7 @@ */ protected String getUniqueConstraintSQL(Unique unq) { if (!supportsUniqueConstraints - || (unq.isDeferred() && !supportsDeferredConstraints)) + || (unq.isDeferred() && !supportsDeferredUniqueConstraints())) return null; StringBuffer buf = new StringBuffer(); @@ -3186,12 +3196,22 @@ append(")"); if (unq.isDeferred()) buf.append(" INITIALLY DEFERRED"); - if (supportsDeferredConstraints) + if (supportsDeferredUniqueConstraints()) buf.append(" DEFERRABLE"); if (unq.getName() != null && CONS_NAME_AFTER.equals(constraintNameMode)) buf.append(" CONSTRAINT ").append(unq.getName()); return buf.toString(); + } + + /** + * Whether or not this dictionary supports deferred unique constraints. + * This implementation returns {@link #supportsUniqueConstraints}. + * + * @since 1.1.0 + */ + protected boolean supportsDeferredUniqueConstraints() { + return supportsDeferredConstraints; } ///////////////////// Modified: openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/PostgresDictionary.java URL: http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/PostgresDictionary.java?rev=577090&r1=577089&r2=577090&view=diff ============================================================================== --- openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/PostgresDictionary.java (original) +++ openjpa/branches/1.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/PostgresDictionary.java Tue Sep 18 15:35:52 2007 @@ -94,10 +94,10 @@ // PostgreSQL requires double-escape for strings searchStringEscape = "\\\\"; - maxTableNameLength = 31; - maxColumnNameLength = 31; - maxIndexNameLength = 31; - maxConstraintNameLength = 31; + maxTableNameLength = 63; + maxColumnNameLength = 63; + maxIndexNameLength = 63; + maxConstraintNameLength = 63; schemaCase = SCHEMA_CASE_LOWER; rangePosition = RANGE_POST_LOCK; requiresAliasForSubselect = true; @@ -269,6 +269,11 @@ if (seq.getAllocate() > 1) sql[0] += " CACHE " + seq.getAllocate(); return sql; + } + + protected boolean supportsDeferredUniqueConstraints() { + // Postgres only supports deferred foreign key constraints. + return false; } protected String getSequencesSQL(String schemaName, String sequenceName) {