|
From: SVN by r. <sv...@ca...> - 2008-05-19 20:28:59
|
Author: roy
Date: 2008-05-19 22:28:44 +0200 (Mon, 19 May 2008)
New Revision: 261
Modified:
src/main/java/nl/improved/sqlclient/DBConnector.java
src/main/java/nl/improved/sqlclient/SQLShell.java
Log:
mysql fixes (table names are case sensitive)
Modified: src/main/java/nl/improved/sqlclient/DBConnector.java
===================================================================
--- src/main/java/nl/improved/sqlclient/DBConnector.java 2008-04-04 18:43:39 UTC (rev 260)
+++ src/main/java/nl/improved/sqlclient/DBConnector.java 2008-05-19 20:28:44 UTC (rev 261)
@@ -22,8 +22,7 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Set;
import java.util.Map;
@@ -50,8 +49,8 @@
private static final String DEFAULT_TIME_PATTERN = "HH:mm:ss";
private static DBConnector instance = null;
- private boolean tableNamesUppercase = false;
+ private Map<String, String> tableNames;
private Map<String, ConnectionSettings> predefinedConnections;
private String defaultConnector;
@@ -100,10 +99,8 @@
if (name == null) {
return null;
}
- if (tableNamesUppercase) {
- return name.toUpperCase();
- }
- return name.toLowerCase();
+ String returnValue = tableNames == null ? null : tableNames.get(name.toLowerCase());
+ return returnValue == null ? name : returnValue;
}
public boolean treatDateAsTimestamp() {
@@ -287,18 +284,14 @@
activeConnection = DriverManager.getConnection(settings.getConnectionURL(), username, password);
activeConnection.setAutoCommit(autoCommit);
// INITIALIZE database settings
+ tableNames = new HashMap<String, String>();
try {
DatabaseMetaData metaData = activeConnection.getMetaData();
ResultSet rs = metaData.getTables(activeConnection.getCatalog(), getSchema()
, null, new String[]{"TABLE"});
while (rs.next()) {
String tableName = rs.getString("TABLE_NAME");
- for (int i = 0; i < tableName.length(); i++) {
- if (Character.isLetter(tableName.charAt(i))) {
- this.tableNamesUppercase = Character.isUpperCase(tableName.charAt(i));
- break;
- }
- }
+ tableNames.put(tableName.toLowerCase(), tableName);
}
rs = metaData.getTypeInfo();
dateIsTimeStamp = true;
@@ -331,6 +324,7 @@
activeConnection = null;
}
queryExecutor = null;
+ tableNames = null;
}
public Connection getConnection() {
Modified: src/main/java/nl/improved/sqlclient/SQLShell.java
===================================================================
--- src/main/java/nl/improved/sqlclient/SQLShell.java 2008-04-04 18:43:39 UTC (rev 260)
+++ src/main/java/nl/improved/sqlclient/SQLShell.java 2008-05-19 20:28:44 UTC (rev 261)
@@ -660,11 +660,12 @@
}
if (match != null) {
if (sub.length() > 0) {
- if (Character.isUpperCase(sub.charAt(0))) {
+ /*if (Character.isUpperCase(sub.charAt(0))) {
match = match.toUpperCase();
} else {
match = match.toLowerCase();
- }
+ }*/
+ match = DBConnector.getInstance().translateDbVar(match);
}
return match.substring(sub.length());
}
|