List:Commits« Previous MessageNext Message »
From:mmatthews Date:September 4 2007 8:40pm
Subject:Connector/J commit: r6552 - in branches/branch_5_1: . connector-j connector-j/src/com/mysql/jdbc connector-j/src/testsuite/regression
View as plain text  
Modified:
   branches/branch_5_1/
   branches/branch_5_1/connector-j/CHANGES
   branches/branch_5_1/connector-j/src/com/mysql/jdbc/ConnectionImpl.java
   branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java
   branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java
   branches/branch_5_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
Log:
Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6540,6543-6545,6547-6551
via svnmerge from 
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk

...............
  r6548 | mmatthews | 2007-09-04 12:41:10 -0500 (Tue, 04 Sep 2007) | 9 lines
  
  Merged revisions 6544 via svnmerge from 
 
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
  
  ........
    r6544 | mcbrown | 2007-08-31 01:14:57 -0500 (Fri, 31 Aug 2007) | 3 lines
    
    Updating the XSL transform for the errors table
  ........
...............
  r6551 | mmatthews | 2007-09-04 13:36:20 -0500 (Tue, 04 Sep 2007) | 17 lines
  
  Merged revisions 6541-6544,6546-6550 via svnmerge from 
 
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
  
  ........
    r6549 | mmatthews | 2007-09-04 12:48:14 -0500 (Tue, 04 Sep 2007) | 2 lines
    
    Fixed BUG#27182 - Connection.getServerCharacterEncoding() doesn't work
    
          for servers with version >= 4.1.
  ........
    r6550 | mmatthews | 2007-09-04 13:28:45 -0500 (Tue, 04 Sep 2007) | 2 lines
    
     Fixed BUG#27915 - DatabaseMetaData.getColumns() doesn't
    
          contain SCOPE_* or IS_AUTOINCREMENT columns.
  ........
...............



Property changes on: branches/branch_5_1
___________________________________________________________________
Name: svnmerge-integrated
   -
/trunk:1-6396,6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6546
   +
/trunk:1-6396,6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6551

Modified: branches/branch_5_1/connector-j/CHANGES
===================================================================
--- branches/branch_5_1/connector-j/CHANGES	2007-09-04 18:36:20 UTC (rev 6551)
+++ branches/branch_5_1/connector-j/CHANGES	2007-09-04 18:40:35 UTC (rev 6552)
@@ -223,7 +223,13 @@
       that the driver will now report all paramters as "IN" paramters
       but allow callers to call registerOutParameter() on them without throwing
       an exception.
+      
+    - Fixed BUG#27182 - Connection.getServerCharacterEncoding() doesn't work
+      for servers with version >= 4.1.
 
+    - Fixed BUG#27915 - DatabaseMetaData.getColumns() doesn't
+      contain SCOPE_* or IS_AUTOINCREMENT columns.
+
 07-19-07 - Version 5.0.7
 
     - Setting the configuration parameter "useCursorFetch" to "true" for

Modified: branches/branch_5_1/connector-j/src/com/mysql/jdbc/ConnectionImpl.java
===================================================================
--- branches/branch_5_1/connector-j/src/com/mysql/jdbc/ConnectionImpl.java	2007-09-04
18:36:20 UTC (rev 6551)
+++ branches/branch_5_1/connector-j/src/com/mysql/jdbc/ConnectionImpl.java	2007-09-04
18:40:35 UTC (rev 6552)
@@ -2997,7 +2997,11 @@
 	 * @return the server's character set.
 	 */
 	public String getServerCharacterEncoding() {
-		return (String) this.serverVariables.get("character_set");
+		if (this.io.versionMeetsMinimum(4, 1, 0)) {
+			return (String) this.serverVariables.get("character_set_server");
+		} else {
+			return (String) this.serverVariables.get("character_set");
+		}
 	}
 
 	int getServerMajorVersion() {

Modified: branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java
===================================================================
--- branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java	2007-09-04
18:36:20 UTC (rev 6551)
+++ branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java	2007-09-04
18:40:35 UTC (rev 6552)
@@ -2312,7 +2312,7 @@
 
 		final String colPattern = columnNamePattern;
 
-		Field[] fields = new Field[18];
+		Field[] fields = new Field[23];
 		fields[0] = new Field("", "TABLE_CAT", Types.CHAR, 255);
 		fields[1] = new Field("", "TABLE_SCHEM", Types.CHAR, 0);
 		fields[2] = new Field("", "TABLE_NAME", Types.CHAR, 255);
@@ -2333,6 +2333,11 @@
 				.toString(Integer.MAX_VALUE).length());
 		fields[16] = new Field("", "ORDINAL_POSITION", Types.INTEGER, 10);
 		fields[17] = new Field("", "IS_NULLABLE", Types.CHAR, 3);
+		fields[18] = new Field("", "SCOPE_CATALOG", Types.CHAR, 255);
+		fields[19] = new Field("", "SCOPE_SCHEMA", Types.CHAR, 255);
+		fields[20] = new Field("", "SCOPE_TABLE", Types.CHAR, 255);
+		fields[21] = new Field("", "SOURCE_DATA_TYPE", Types.SMALLINT, 10);
+		fields[22] = new Field("", "IS_AUTOINCREMENT", Types.CHAR, 3);
 
 		final ArrayList rows = new ArrayList();
 		final Statement stmt = this.conn.getMetadataSafeStatement();
@@ -2470,7 +2475,7 @@
 							int ordPos = 1;
 
 							while (results.next()) {
-								byte[][] rowVal = new byte[18][];
+								byte[][] rowVal = new byte[23][];
 								rowVal[0] = s2b(catalog); // TABLE_CAT
 								rowVal[1] = null; // TABLE_SCHEM (No schemas
 								// in MySQL)
@@ -2550,7 +2555,24 @@
 								}
 
 								rowVal[17] = s2b(typeDesc.isNullable);
-
+								
+								// We don't support REF or DISTINCT types
+								rowVal[18] = null;
+								rowVal[19] = null;
+								rowVal[20] = null;
+								rowVal[21] = null;
+								
+								rowVal[22] = s2b("");
+								
+								String extra = results.getString("Extra");
+								
+								if (extra != null) {
+									rowVal[22] = s2b(StringUtils
+											.indexOfIgnoreCase(extra,
+													"auto_increment") != -1 ? "YES"
+											: "NO");
+								}
+								
 								rows.add(new ByteArrayRow(rowVal));
 							}
 						} finally {

Modified:
branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java
===================================================================
---
branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java	2007-09-04
18:36:20 UTC (rev 6551)
+++
branches/branch_5_1/connector-j/src/com/mysql/jdbc/DatabaseMetaDataUsingInfoSchema.java	2007-09-04
18:40:35 UTC (rev 6552)
@@ -236,7 +236,12 @@
 						+ "0 AS SQL_DATETIME_SUB,"
 						+ "CASE WHEN CHARACTER_OCTET_LENGTH > " + Integer.MAX_VALUE + " THEN " +
Integer.MAX_VALUE + " ELSE CHARACTER_OCTET_LENGTH END AS CHAR_OCTET_LENGTH,"
 						+ "ORDINAL_POSITION,"
-						+ "IS_NULLABLE "
+						+ "IS_NULLABLE,"
+						+ "NULL AS SCOPE_CATALOG,"
+						+ "NULL AS SCOPE_SCHEMA,"
+						+ "NULL AS SCOPE_TABLE,"
+						+ "NULL AS SOURCE_DATA_TYPE,"
+						+ "IF (EXTRA LIKE '%auto_increment%','YES','NO') AS IS_AUTOINCREMENT "
 						+ "FROM INFORMATION_SCHEMA.COLUMNS WHERE "
 						+ "TABLE_SCHEMA LIKE ? AND "
 						+ "TABLE_NAME LIKE ? AND COLUMN_NAME LIKE ? "
@@ -278,8 +283,12 @@
 					new Field("", "CHAR_OCTET_LENGTH", Types.INTEGER, Integer
 							.toString(Integer.MAX_VALUE).length()),
 					new Field("", "ORDINAL_POSITION", Types.INTEGER, 10),
-					new Field("", "IS_NULLABLE", Types.CHAR, 3) });
-
+					new Field("", "IS_NULLABLE", Types.CHAR, 3),
+					new Field("", "SCOPE_CATALOG", Types.CHAR, 255),
+					new Field("", "SCOPE_SCHEMA", Types.CHAR, 255),
+					new Field("", "SCOPE_TABLE", Types.CHAR, 255),
+					new Field("", "SOURCE_DATA_TYPE", Types.SMALLINT, 10),
+					new Field("", "IS_AUTOINCREMENT", Types.CHAR, 3) });
 			return rs;
 		} finally {
 			if (pStmt != null) {

Modified:
branches/branch_5_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
===================================================================
---
branches/branch_5_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java	2007-09-04
18:36:20 UTC (rev 6551)
+++
branches/branch_5_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java	2007-09-04
18:40:35 UTC (rev 6552)
@@ -39,6 +39,7 @@
 import testsuite.BaseTestCase;
 
 import com.mysql.jdbc.Driver;
+import com.mysql.jdbc.Field;
 import com.mysql.jdbc.NonRegisteringDriver;
 import com.mysql.jdbc.SQLError;
 
@@ -1976,4 +1977,51 @@
 			closeMemberJDBCResources();
 		}
 	}
+	
+	/**
+	 * Fixed BUG#27915 - DatabaseMetaData.getColumns() doesn't
+	 * contain SCOPE_* or IS_AUTOINCREMENT columns.
+	 * 
+	 * @throws Exception
+	 */
+	public void testBug27915() throws Exception {
+		createTable("testBug27915",
+				"(field1 int not null primary key auto_increment, field2 int)");
+		DatabaseMetaData dbmd = this.conn.getMetaData();
+
+		try {
+			this.rs = dbmd.getColumns(this.conn.getCatalog(), null,
+					"testBug27915", "%");
+			this.rs.next();
+
+			checkBug27915();
+
+			if (versionMeetsMinimum(5, 0)) {
+				this.rs = getConnectionWithProps("useInformationSchema=true")
+						.getMetaData().getColumns(this.conn.getCatalog(), null,
+								"testBug27915", "%");
+				this.rs.next();
+
+				checkBug27915();
+			}
+		} finally {
+			closeMemberJDBCResources();
+		}
+	}
+
+	private void checkBug27915() throws SQLException {
+		assertNull(this.rs.getString("SCOPE_CATALOG"));
+		assertNull(this.rs.getString("SCOPE_SCHEMA"));
+		assertNull(this.rs.getString("SCOPE_TABLE"));
+		assertNull(this.rs.getString("SOURCE_DATA_TYPE"));
+		assertEquals("YES", this.rs.getString("IS_AUTOINCREMENT"));
+
+		this.rs.next();
+		
+		assertNull(this.rs.getString("SCOPE_CATALOG"));
+		assertNull(this.rs.getString("SCOPE_SCHEMA"));
+		assertNull(this.rs.getString("SCOPE_TABLE"));
+		assertNull(this.rs.getString("SOURCE_DATA_TYPE"));
+		assertEquals("NO", this.rs.getString("IS_AUTOINCREMENT"));
+	}
 }

Thread
Connector/J commit: r6552 - in branches/branch_5_1: . connector-j connector-j/src/com/mysql/jdbc connector-j/src/testsuite/regressionmmatthews4 Sep