[teiid-commits] teiid SVN: r3326 - in branches/7.4.x: client/src/main/java/org/teiid/jdbc and 4 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Jul 22 11:32:57 EDT 2011


Author: shawkins
Date: 2011-07-22 11:32:56 -0400 (Fri, 22 Jul 2011)
New Revision: 3326

Added:
   branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testColumnMetadataWithAlias.expected
Modified:
   branches/7.4.x/build/kits/jboss-container/teiid-releasenotes.html
   branches/7.4.x/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java
   branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
   branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml
   branches/7.4.x/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java
   branches/7.4.x/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java
   branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPk.expected
   branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPkPrepared.expected
Log:
TEIID-1651 hopefully the final touches to jdbc/odbc metadata related to column name/label

Modified: branches/7.4.x/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- branches/7.4.x/build/kits/jboss-container/teiid-releasenotes.html	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/build/kits/jboss-container/teiid-releasenotes.html	2011-07-22 15:32:56 UTC (rev 3326)
@@ -75,6 +75,7 @@
 <h4>from 7.4</h4>
 <ul>
   <li>ColumnReference.getName will always return just the element name.  Previously it inconsistently returned the qualified and unqualified form depending upon where the ColumnReference appeared.
+  <li>As per JDBC4, ResultSetMetadata.getColumnName will return the unaliased column name if available rather than return the alias.  Set useJDBC4ColumnNameAndLabelSemantics to false to use the alias name as the column name.
 </ul>
 
 <h4>from 7.3</h4>

Modified: branches/7.4.x/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java
===================================================================
--- branches/7.4.x/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java	2011-07-22 15:32:56 UTC (rev 3326)
@@ -35,11 +35,13 @@
 
     private MetadataProvider provider;
 
-    private boolean useJDBC4ColumnNameAndLabelSemantics = false;
+    private boolean useJDBC4ColumnNameAndLabelSemantics = true;
     
     public ResultSetMetaDataImpl(MetadataProvider provider, String supportBackwardsCompatibility) {
     	this.provider = provider;
-    	this.useJDBC4ColumnNameAndLabelSemantics = (supportBackwardsCompatibility != null && supportBackwardsCompatibility.equalsIgnoreCase("false") ? false : true);
+    	if (supportBackwardsCompatibility != null) {
+    		this.useJDBC4ColumnNameAndLabelSemantics = Boolean.parseBoolean(supportBackwardsCompatibility);
+    	}
     }    
     
     /**

Modified: branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
===================================================================
--- branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml	2011-07-22 15:32:56 UTC (rev 3326)
@@ -250,10 +250,9 @@
                             <code>boolean</code>
                         </entry>						
                         <entry>
-                            <para>A change was made in JDBC4 so that when an 'Alias' is used it will
-							now be returned as the label.   Prior to this, it was returned as
-							the name.   Setting this property to false will enable
-							backwards compatibility when JDBC3 and older support is still required.
+                            <para>A change was made in JDBC4 to return unaliased column names as the ResultSetMetadata column name. 
+                            Prior to this, if a column alias were used it was returned as the column name.   Setting this property to false will enable
+							backwards compatibility when JDBC3 and older support is still required.  Defaults to true.
 							</para>
                         </entry>
                     </row>						

Modified: branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml
===================================================================
--- branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml	2011-07-22 15:32:56 UTC (rev 3326)
@@ -175,11 +175,7 @@
                             <code>JDBC4COLUMNNAMEANDLABELSEMANTICS / useJDBC4ColumnNameAndLabelSemantics</code>
                         </entry>
                         <entry>
-                            <para>A change was made in JDBC4 so that when an 'Alias' is used it will.
-							now be returned as the label.   Prior to this, it was returned as
-							the name.   Setting this property to false will enable
-							backwards compatibility when JDBC3 and older support is still required.
-							</para>
+                            <para>Same as the connection property.</para>
                         </entry>
                     </row>				
                  </tbody>

Modified: branches/7.4.x/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java
===================================================================
--- branches/7.4.x/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java	2011-07-22 15:32:56 UTC (rev 3326)
@@ -966,7 +966,7 @@
 		final ArrayList<PgColInfo> result = new ArrayList<PgColInfo>(columns);
 		for (int i = 1; i < columns + 1; i++) {
 			final PgColInfo info = new PgColInfo();
-			info.name = meta.getColumnName(i).toLowerCase();
+			info.name = meta.getColumnLabel(i).toLowerCase();
 			info.type = meta.getColumnType(i);
 			info.type = convertType(info.type);
 			info.precision = meta.getColumnDisplaySize(i);

Modified: branches/7.4.x/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java
===================================================================
--- branches/7.4.x/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java	2011-07-22 15:32:56 UTC (rev 3326)
@@ -222,6 +222,12 @@
 		TestMMDatabaseMetaData.compareResultSet(rs);
 	}	
 	
+	@Test public void testColumnMetadataWithAlias() throws Exception {
+		PreparedStatement stmt = conn.prepareStatement("select ta.attname as x from pg_catalog.pg_attribute ta limit 1");
+		ResultSet rs = stmt.executeQuery();
+		TestMMDatabaseMetaData.compareResultSet(rs);
+	}	
+	
 	@Test public void testPreparedError() throws Exception {
 		PreparedStatement stmt = conn.prepareStatement("select cast(? as integer)");
 		stmt.setString(1, "a");

Added: branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testColumnMetadataWithAlias.expected
===================================================================
--- branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testColumnMetadataWithAlias.expected	                        (rev 0)
+++ branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testColumnMetadataWithAlias.expected	2011-07-22 15:32:56 UTC (rev 3326)
@@ -0,0 +1,6 @@
+varchar                                                          
+x                                                                
+PART_ID                                                          
+Row Count : 1
+getColumnName  getColumnType  getCatalogName  getColumnClassName  getColumnLabel  getColumnTypeName  getSchemaName  getTableName  getColumnDisplaySize  getPrecision  getScale  isAutoIncrement  isCaseSensitive  isCurrency  isDefinitelyWritable  isNullable  isReadOnly  isSearchable  isSigned  isWritable  
+x              12                             java.lang.String    x               varchar                                         2147483647            0             0         false            true             false       false                 1           false       true          false     true        

Modified: branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPk.expected
===================================================================
--- branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPk.expected	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPk.expected	2011-07-22 15:32:56 UTC (rev 3326)
@@ -1,10 +1,10 @@
 varchar                                                            int2    varchar                                                            varchar                                                            varchar                                                          
-name                                                               attnum  tablename                                                          schemaname                                                         tablename                                                        
+attname                                                            attnum  relname                                                            nspname                                                            relname                                                          
 oid                                                                1       pg_attribute                                                       pg_catalog                                                         pg_attribute                                                     
 Row Count : 1
 getColumnName  getColumnType  getCatalogName  getColumnClassName  getColumnLabel  getColumnTypeName  getSchemaName  getTableName  getColumnDisplaySize  getPrecision  getScale  isAutoIncrement  isCaseSensitive  isCurrency  isDefinitelyWritable  isNullable  isReadOnly  isSearchable  isSigned  isWritable  
-name           12                             java.lang.String    name            varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+attname        12                             java.lang.String    attname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
 attnum         5                              java.lang.Integer   attnum          int2                                            6                     5             0         false            false            false       false                 2           false       true          true      true        
-tablename      12                             java.lang.String    tablename       varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
-schemaname     12                             java.lang.String    schemaname      varchar                                         2147483647            0             0         false            true             false       false                 1           false       true          false     true        
-tablename      12                             java.lang.String    tablename       varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+relname        12                             java.lang.String    relname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+nspname        12                             java.lang.String    nspname         varchar                                         2147483647            0             0         false            true             false       false                 1           false       true          false     true        
+relname        12                             java.lang.String    relname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        

Modified: branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPkPrepared.expected
===================================================================
--- branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPkPrepared.expected	2011-07-22 10:33:31 UTC (rev 3325)
+++ branches/7.4.x/test-integration/common/src/test/resources/TestODBCSocketTransport/testPkPrepared.expected	2011-07-22 15:32:56 UTC (rev 3326)
@@ -1,10 +1,10 @@
 varchar                                                            int2    varchar                                                            varchar                                                            varchar                                                          
-name                                                               attnum  tablename                                                          schemaname                                                         tablename                                                        
+attname                                                            attnum  relname                                                            nspname                                                            relname                                                          
 oid                                                                1       pg_attribute                                                       pg_catalog                                                         pg_attribute                                                     
 Row Count : 1
 getColumnName  getColumnType  getCatalogName  getColumnClassName  getColumnLabel  getColumnTypeName  getSchemaName  getTableName  getColumnDisplaySize  getPrecision  getScale  isAutoIncrement  isCaseSensitive  isCurrency  isDefinitelyWritable  isNullable  isReadOnly  isSearchable  isSigned  isWritable  
-name           12                             java.lang.String    name            varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+attname        12                             java.lang.String    attname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
 attnum         5                              java.lang.Integer   attnum          int2                                            6                     5             0         false            false            false       false                 2           false       true          true      true        
-tablename      12                             java.lang.String    tablename       varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
-schemaname     12                             java.lang.String    schemaname      varchar                                         2147483647            0             0         false            true             false       false                 1           false       true          false     true        
-tablename      12                             java.lang.String    tablename       varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+relname        12                             java.lang.String    relname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        
+nspname        12                             java.lang.String    nspname         varchar                                         2147483647            0             0         false            true             false       false                 1           false       true          false     true        
+relname        12                             java.lang.String    relname         varchar                                         2147483647            0             0         false            true             false       false                 0           false       true          false     true        



More information about the teiid-commits mailing list