You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by kw...@apache.org on 2012/03/30 01:06:42 UTC
svn commit: r1307157 -
/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
Author: kwsutter
Date: Thu Mar 29 23:06:42 2012
New Revision: 1307157
URL: http://svn.apache.org/viewvc?rev=1307157&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/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/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=1307157&r1=1307156&r2=1307157&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 Thu Mar 29 23:06:42 2012
@@ -392,7 +392,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 = "_";
@@ -474,7 +474,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.
@@ -5380,20 +5381,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));
}
}
@@ -5508,11 +5516,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) {