mirror of https://github.com/apache/openjpa.git
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.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1307157 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
42372cf609
commit
0354b057c9
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue