[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