Return-Path: Delivered-To: apmail-incubator-empire-db-commits-archive@locus.apache.org Received: (qmail 18378 invoked from network); 2 Sep 2008 17:56:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Sep 2008 17:56:18 -0000 Received: (qmail 80139 invoked by uid 500); 2 Sep 2008 17:56:17 -0000 Delivered-To: apmail-incubator-empire-db-commits-archive@incubator.apache.org Received: (qmail 80125 invoked by uid 500); 2 Sep 2008 17:56:17 -0000 Mailing-List: contact empire-db-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: empire-db-dev@incubator.apache.org Delivered-To: mailing list empire-db-commits@incubator.apache.org Received: (qmail 80114 invoked by uid 99); 2 Sep 2008 17:56:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Sep 2008 10:56:17 -0700 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; Tue, 02 Sep 2008 17:55:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 291D523889BB; Tue, 2 Sep 2008 10:55:28 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r691328 - in /incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db: DBDatabaseDriver.java hsql/DBDatabaseDriverHSql.java Date: Tue, 02 Sep 2008 17:55:27 -0000 To: empire-db-commits@incubator.apache.org From: doebele@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080902175528.291D523889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: doebele Date: Tue Sep 2 10:55:27 2008 New Revision: 691328 URL: http://svn.apache.org/viewvc?rev=691328&view=rev Log: (empty) Modified: incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/DBDatabaseDriver.java incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java Modified: incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/DBDatabaseDriver.java URL: http://svn.apache.org/viewvc/incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/DBDatabaseDriver.java?rev=691328&r1=691327&r2=691328&view=diff ============================================================================== --- incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/DBDatabaseDriver.java (original) +++ incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/DBDatabaseDriver.java Tue Sep 2 10:55:27 2008 @@ -27,6 +27,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashSet; +import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -101,8 +103,19 @@ // Logger protected static Log log = LogFactory.getLog(DBDatabaseDriver.class); - // Flag wether or not to set column defaults when crating dll statements + // Flag whether or not to set column defaults when crating DDL statements protected boolean ddlColumnDefaults = false; + + // Illegal Name Chars and Reserved SQL Keywords + private static final char[] illegalNameChars = new char[] { '@', '?', '>', '=', '<', ';', ':', + '/', '.', '-', ',', '+', '*', ')', '(', + '\'', '&', '%', '!' + }; + private static final String[] generalSQLKeywords = new String[] { "count", "user", "on", "off", + "table", "column", "view", "index", "constraint", + "select", "udpate", "insert", "alter", "delete" }; + protected final Set reservedSQLKeywords; + // DBSeqTable public static class DBSeqTable extends DBTable @@ -194,6 +207,17 @@ } } } + + /** + * Constructor + */ + public DBDatabaseDriver() + { + // Initialize List of reserved Keywords + reservedSQLKeywords = new HashSet(generalSQLKeywords.length); + for (int i=0; i - * By default names containing a "-", "+" or " " require quoting.
+ * By default all reserved SQL keywords as well as names + * containing a "-", "/", "+" or " " require quoting.
* Overrides this function to add database specific keywords like "user" or "count" */ protected boolean quoteElementName(String name) { - // Check for any of the characters - + and space - return (name.indexOf(' ')>0) - || (name.indexOf('-')>0) - || (name.indexOf('+')>0); + // Check for reserved names + if (reservedSQLKeywords.contains(name.toLowerCase())) + return true; + // Check for illegalNameChars + int len = name.length(); + for (int i=0; iic) + break; + if (c==ic) + return true; + } + } + // Quoting not necessary + return false; } /** Modified: incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java URL: http://svn.apache.org/viewvc/incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java?rev=691328&r1=691327&r2=691328&view=diff ============================================================================== --- incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java (original) +++ incubator/empire-db/trunk/core/Empire-db/src/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java Tue Sep 2 10:55:27 2008 @@ -68,7 +68,8 @@ */ public DBDatabaseDriverHSql() { - // Default Constructor + // Add "count" to list of reserved Keywords + reservedSQLKeywords.add("count"); } /** @@ -693,17 +694,6 @@ // done return script.addStmt(sql.toString()); } - - /** - * Checks wether a table or column name needs to be quoted or not
- * By default names containing a "-", "+" or " " require quoting.
- * Overrides this function to add database specific keywords like "user" or "count" - */ - @Override - protected boolean quoteElementName(String name) - { - return (name.toUpperCase().equals("COUNT") || super.quoteElementName(name)); - } /** * Returns true if the object has been dropped successfully.