List:Internals« Previous MessageNext Message »
From:mmatthews Date:October 25 2005 3:45pm
Subject:Connector/J commit: r4447 - in branches/branch_5_0/connector-j/src: com/mysql/jdbc testsuite/regression
View as plain text  
Modified:
   branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java
   branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java
   branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlDefs.java
   branches/branch_5_0/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
Log:
Fixes for working w/ INFORMATION_SCHEMA.

Modified: branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java
===================================================================
--- branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java	2005-10-25 14:36:38 UTC (rev 4446)
+++ branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java	2005-10-25 15:45:26 UTC (rev 4447)
@@ -6318,7 +6318,7 @@
 	 *             DOCUMENT ME!
 	 */
 	public boolean storesLowerCaseIdentifiers() throws SQLException {
-		return true;
+		return this.conn.lowerCaseTableNames();
 	}
 
 	/**
@@ -6330,7 +6330,7 @@
 	 *             DOCUMENT ME!
 	 */
 	public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
-		return true;
+		return !this.conn.lowerCaseTableNames();
 	}
 
 	/**
@@ -6366,7 +6366,7 @@
 	 *             DOCUMENT ME!
 	 */
 	public boolean storesUpperCaseIdentifiers() throws SQLException {
-		return !this.conn.lowerCaseTableNames();
+		return false;
 	}
 
 	/**

Modified: branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java
===================================================================
--- branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java	2005-10-25 14:36:38 UTC (rev 4446)
+++ branches/branch_5_0/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java	2005-10-25 15:45:26 UTC (rev 4447)
@@ -212,9 +212,9 @@
 		sqlBuf.append(" AS DATA_TYPE, ");
 
 		if (conn.getCapitalizeTypeNames()) {
-			sqlBuf.append("UPPER(DATA_TYPE) AS TYPE_NAME,");
+			sqlBuf.append("UPPER(CASE WHEN LOCATE('unsigned', COLUMN_TYPE) != 0 AND LOCATE('unsigned', DATA_TYPE) = 0 THEN CONCAT(DATA_TYPE, ' unsigned') ELSE DATA_TYPE END) AS TYPE_NAME,");
 		} else {
-			sqlBuf.append("DATA_TYPE AS TYPE_NAME,");
+			sqlBuf.append("CASE WHEN LOCATE('unsigned', COLUMN_TYPE) != 0 AND LOCATE('unsigned', DATA_TYPE) = 0 THEN CONCAT(DATA_TYPE, ' unsigned') ELSE DATA_TYPE END AS TYPE_NAME,");
 		}
 
 		sqlBuf

Modified: branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlDefs.java
===================================================================
--- branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlDefs.java	2005-10-25 14:36:38 UTC (rev 4446)
+++ branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlDefs.java	2005-10-25 15:45:26 UTC (rev 4447)
@@ -568,6 +568,18 @@
 			buf.append(mysqlTypeName);
 			buf.append("' THEN ");
 			buf.append(typesMap.get(mysqlTypeName));
+			
+			if (mysqlTypeName.equalsIgnoreCase("DOUBLE") ||
+					mysqlTypeName.equalsIgnoreCase("FLOAT") ||
+					mysqlTypeName.equalsIgnoreCase("DECIMAL") ||
+					mysqlTypeName.equalsIgnoreCase("NUMERIC")) {
+				buf.append(" WHEN ");
+				buf.append(mysqlTypeColumnName);
+				buf.append("='");
+				buf.append(mysqlTypeName);
+				buf.append(" unsigned' THEN ");
+				buf.append(typesMap.get(mysqlTypeName));	
+			}	
 		}
 		
 		buf.append(" ELSE ");

Modified: branches/branch_5_0/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
===================================================================
--- branches/branch_5_0/connector-j/src/testsuite/regression/MetaDataRegressionTest.java	2005-10-25 14:36:38 UTC (rev 4446)
+++ branches/branch_5_0/connector-j/src/testsuite/regression/MetaDataRegressionTest.java	2005-10-25 15:45:26 UTC (rev 4447)
@@ -1171,11 +1171,11 @@
 			assertEquals(false, dbmd.storesUpperCaseIdentifiers());
 			assertEquals(false, dbmd.storesUpperCaseQuotedIdentifiers());
 		} else {
-			assertEquals(true, dbmd.storesLowerCaseIdentifiers());
+			assertEquals(false, dbmd.storesLowerCaseIdentifiers());
 			assertEquals(true, dbmd.storesLowerCaseQuotedIdentifiers());
 			assertEquals(true, dbmd.storesMixedCaseIdentifiers());
 			assertEquals(true, dbmd.storesMixedCaseQuotedIdentifiers());
-			assertEquals(true, dbmd.storesUpperCaseIdentifiers());
+			assertEquals(false, dbmd.storesUpperCaseIdentifiers());
 			assertEquals(true, dbmd.storesUpperCaseQuotedIdentifiers());
 		}
 	}
@@ -1231,10 +1231,22 @@
 						null, tableName, "%");
 				assertTrue(this.rs.next());
 				assertEquals(Types.BINARY, this.rs.getInt("DATA_TYPE"));
-				assertEquals(32, this.rs.getInt("COLUMN_SIZE"));
+				
+				if (!((com.mysql.jdbc.Connection)this.conn).getUseInformationSchema() ||
+					(((com.mysql.jdbc.Connection)this.conn).getUseInformationSchema()) &&
+					   versionMeetsMinimum(5, 0, 18)) {
+					assertEquals(32, this.rs.getInt("COLUMN_SIZE"));
+				}
+					   
 				assertTrue(this.rs.next());
 				assertEquals(Types.VARBINARY, this.rs.getInt("DATA_TYPE"));
-				assertEquals(64, this.rs.getInt("COLUMN_SIZE"));
+				
+				if (!((com.mysql.jdbc.Connection)this.conn).getUseInformationSchema() ||
+						(((com.mysql.jdbc.Connection)this.conn).getUseInformationSchema()) &&
+						   versionMeetsMinimum(5, 0, 18)) {
+					assertEquals(64, this.rs.getInt("COLUMN_SIZE"));
+				}
+				
 				this.rs.close();
 				
 				this.rs = this.stmt.executeQuery("SELECT binary_field, varbinary_field FROM " 

Thread
Connector/J commit: r4447 - in branches/branch_5_0/connector-j/src: com/mysql/jdbc testsuite/regressionmmatthews25 Oct