openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From curti...@apache.org
Subject svn commit: r1342639 - /openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
Date Fri, 25 May 2012 14:30:48 GMT
Author: curtisr7
Date: Fri May 25 14:30:48 2012
New Revision: 1342639

URL: http://svn.apache.org/viewvc?rev=1342639&view=rev
Log:
OPENJPA-2162: Allow the setting of the DBDictionary property supportsDelimitedIdentifiers
to false to skip the extra overhead of processing delimited identifiers when they will not
exist for a given application or usage. 

Modified:
    openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java

Modified: openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=1342639&r1=1342638&r2=1342639&view=diff
==============================================================================
--- openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
(original)
+++ openjpa/branches/2.2.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
Fri May 25 14:30:48 2012
@@ -394,7 +394,7 @@ public class DBDictionary
 
     // NamingConfiguration properties
     private boolean delimitIdentifiers = false;
-    public boolean supportsDelimitedIdentifiers = true;
+    public Boolean supportsDelimitedIdentifiers = null;
     public String leadingDelimiter = "\"";
     public String trailingDelimiter = "\"";
     public String nameConcatenator = "_";
@@ -476,7 +476,8 @@ public class DBDictionary
             }
             
             // Configure the naming utility
-            configureNamingUtil(metaData);
+            if (supportsDelimitedIdentifiers == null) // not explicitly set
+                configureNamingUtil(metaData);
 
             // Auto-detect generated keys retrieval support
             // unless user specified it.
@@ -5396,20 +5397,27 @@ public class DBDictionary
      * @return the supportsDelimitedIds
      */
     public boolean getSupportsDelimitedIdentifiers() {
-        return supportsDelimitedIdentifiers;
+        return (supportsDelimitedIdentifiers == null ? false : supportsDelimitedIdentifiers);
     }
-
+    
     /**
      * @param supportsDelimitedIds the supportsDelimitedIds to set
      */
-    public void setSupportsDelimitedIdentifiers(DatabaseMetaData metaData) {
+    public void setSupportsDelimitedIdentifiers(boolean supportsDelimitedIds) {
+        supportsDelimitedIdentifiers = Boolean.valueOf(supportsDelimitedIds);
+    }
+
+    /**
+     * @param metadata the DatabaseMetaData to use to determine whether delimiters can be
supported
+     */
+    private void setSupportsDelimitedIdentifiers(DatabaseMetaData metaData) {
         try {
-            supportsDelimitedIdentifiers = 
+            supportsDelimitedIdentifiers = Boolean.valueOf(
                 metaData.supportsMixedCaseQuotedIdentifiers() ||
                 metaData.storesLowerCaseQuotedIdentifiers() ||
-                metaData.storesUpperCaseQuotedIdentifiers();
+                metaData.storesUpperCaseQuotedIdentifiers());
         } catch (SQLException e) {
-            supportsDelimitedIdentifiers = false;
+            supportsDelimitedIdentifiers = Boolean.valueOf(false);
             getLog().warn(_loc.get("unknown-delim-support", e));
         }
     }
@@ -5524,11 +5532,17 @@ public class DBDictionary
     }
 
     public String toDBName(DBIdentifier name) {
-        return getNamingUtil().toDBName(name);
+        if (!getSupportsDelimitedIdentifiers())
+            return name.getName();
+        else
+            return getNamingUtil().toDBName(name);
     }
 
     public String toDBName(DBIdentifier name, boolean delimit) {
-        return getNamingUtil().toDBName(name, delimit);
+        if (!getSupportsDelimitedIdentifiers())
+            return name.getName();
+        else
+            return getNamingUtil().toDBName(name, delimit);
     }
 
     public DBIdentifier fromDBName(String name, DBIdentifierType id) {



Mime
View raw message