[teiid-commits] teiid SVN: r1173 - in trunk: common-core/src/test/java/com/metamatrix/common/types and 1 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Jul 22 18:30:58 EDT 2009


Author: shawkins
Date: 2009-07-22 18:30:58 -0400 (Wed, 22 Jul 2009)
New Revision: 1173

Modified:
   trunk/common-core/src/main/java/com/metamatrix/common/types/MMJDBCSQLTypeInfo.java
   trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java
   trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
Log:
TEIID-736 fixing type mappings

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/MMJDBCSQLTypeInfo.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/MMJDBCSQLTypeInfo.java	2009-07-22 17:08:37 UTC (rev 1172)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/MMJDBCSQLTypeInfo.java	2009-07-22 22:30:58 UTC (rev 1173)
@@ -99,30 +99,25 @@
     private static Map<String, String> CLASSNAME_TO_NAME = new HashMap<String, String>();
     
     static {
-        addTypeMapping(STRING, STRING_CLASS, Types.VARCHAR);
-        TYPE_TO_NAME_MAP.put(Types.LONGVARCHAR, STRING);
+        addTypeMapping(STRING, STRING_CLASS, Types.VARCHAR, Types.LONGVARCHAR, Types.CHAR);
+        addTypeMapping(CHAR, CHAR_CLASS, Types.CHAR, false);
         addTypeMapping(BOOLEAN, BOOLEAN_CLASS, Types.BIT);
         addTypeMapping(TIME, TIME_CLASS, Types.TIME);
         addTypeMapping(DATE, DATE_CLASS, Types.DATE);
         addTypeMapping(TIMESTAMP, TIMESTAMP_CLASS, Types.TIMESTAMP);
         addTypeMapping(INTEGER, INTEGER_CLASS, Types.INTEGER);
         addTypeMapping(FLOAT, FLOAT_CLASS, Types.REAL);
-        addTypeMapping(DOUBLE, DOUBLE_CLASS, Types.DOUBLE);
-        TYPE_TO_NAME_MAP.put(Types.FLOAT, DOUBLE);
-        addTypeMapping(BIGDECIMAL, BIGDECIMAL_CLASS, Types.NUMERIC);
-        TYPE_TO_NAME_MAP.put(Types.DECIMAL, BIGDECIMAL);
-        NAME_TO_CLASSNAME.put(BIGINTEGER, BIGINTEGER_CLASS);
-        CLASSNAME_TO_NAME.put(BIGINTEGER_CLASS, BIGINTEGER);
-        NAME_TO_TYPE_MAP.put(BIGINTEGER, Types.NUMERIC);
+        addTypeMapping(DOUBLE, DOUBLE_CLASS, Types.DOUBLE, Types.FLOAT);
+        addTypeMapping(BIGDECIMAL, BIGDECIMAL_CLASS, Types.NUMERIC, Types.DECIMAL);
+        addTypeMapping(BIGINTEGER, BIGINTEGER_CLASS, Types.NUMERIC, false);
         addTypeMapping(BYTE, BYTE_CLASS, Types.TINYINT);
         addTypeMapping(SHORT, SHORT_CLASS, Types.SMALLINT);
         addTypeMapping(LONG, LONG_CLASS, Types.BIGINT);
-        addTypeMapping(CHAR, CHAR_CLASS, Types.CHAR);
         addTypeMapping(OBJECT, OBJECT_CLASS, Types.JAVA_OBJECT);
         addTypeMapping(CLOB, CLOB_CLASS, Types.CLOB);
-        addTypeMapping(BLOB, BLOB_CLASS, Types.BLOB);
+        addTypeMapping(BLOB, BLOB_CLASS, Types.BLOB, Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY);
         
-        addTypeMapping(NULL, null, Types.NUMERIC);
+        addTypeMapping(NULL, null, Types.NULL);
         
         //## JDBC4.0-begin ##
         addTypeMapping(XML, XML_CLASS, Types.SQLXML);
@@ -137,9 +132,18 @@
 	    ## JDBC3.0-JDK1.5-end ##*/
     }
 
-	private static void addTypeMapping(String typeName, String javaClass, int sqlType) {
+	private static void addTypeMapping(String typeName, String javaClass, int sqlType, int ... secondaryTypes) {
+		addTypeMapping(typeName, javaClass, sqlType, true);
+		for (int type : secondaryTypes) {
+			TYPE_TO_NAME_MAP.put(type, typeName);
+		}
+	}
+
+	private static void addTypeMapping(String typeName, String javaClass, int sqlType, boolean preferedType) {
 		NAME_TO_TYPE_MAP.put(typeName, sqlType);
-		TYPE_TO_NAME_MAP.put(sqlType, typeName);
+		if (preferedType) {
+			TYPE_TO_NAME_MAP.put(sqlType, typeName);
+		}
 		if (javaClass != null) {
 			NAME_TO_CLASSNAME.put(typeName, javaClass);
 			CLASSNAME_TO_NAME.put(javaClass, typeName);

Modified: trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java	2009-07-22 17:08:37 UTC (rev 1172)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java	2009-07-22 22:30:58 UTC (rev 1173)
@@ -185,8 +185,12 @@
             }
         }
         
-        assertEquals(MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.TIMESTAMP), Types.TIMESTAMP);
-        assertEquals(MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.XML), Types.SQLXML);
+        assertEquals(Types.TIMESTAMP, MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.TIMESTAMP));
+        //## JDBC4.0-begin ##
+        assertEquals(Types.SQLXML, MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.XML));
+        //## JDBC4.0-end ##
+        assertEquals(DataTypeManager.DefaultDataTypes.STRING, MMJDBCSQLTypeInfo.getTypeName(Types.CHAR));
+        assertEquals(Types.CHAR, MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.CHAR));
     }
     
     public void testRuntimeTypeConversion() throws Exception {

Modified: trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java	2009-07-22 17:08:37 UTC (rev 1172)
+++ trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java	2009-07-22 22:30:58 UTC (rev 1173)
@@ -52,7 +52,7 @@
     @Test public void testIntegrationExecution() {
     	getConnection(VDB, DQP_PROP_FILE);
     	executeAndAssertResults("select * from Example, Smalla where notional = intkey", new String[] { //$NON-NLS-1$
-    			"TRADEID[string]    NOTIONAL[integer]    INTKEY[integer]    STRINGKEY[string]    INTNUM[integer]    STRINGNUM[string]    FLOATNUM[float]    LONGNUM[long]    DOUBLENUM[double]    BYTENUM[short]    DATEVALUE[date]    TIMEVALUE[time]    TIMESTAMPVALUE[timestamp]    BOOLEANVALUE[short]    CHARVALUE[char]    SHORTVALUE[short]    BIGINTEGERVALUE[long]    BIGDECIMALVALUE[bigdecimal]    OBJECTVALUE[string]", //$NON-NLS-1$
+    			"TRADEID[string]    NOTIONAL[integer]    INTKEY[integer]    STRINGKEY[string]    INTNUM[integer]    STRINGNUM[string]    FLOATNUM[float]    LONGNUM[long]    DOUBLENUM[double]    BYTENUM[short]    DATEVALUE[date]    TIMEVALUE[time]    TIMESTAMPVALUE[timestamp]    BOOLEANVALUE[short]    CHARVALUE[string]    SHORTVALUE[short]    BIGINTEGERVALUE[long]    BIGDECIMALVALUE[bigdecimal]    OBJECTVALUE[string]", //$NON-NLS-1$
                 "x    1    1    1    -23    null    -23.0    -23    -23.0    -127    2000-01-02    01:00:00    2000-01-01 00:00:01.0    1    0    -32767    -23    -23    -23", //$NON-NLS-1$
                 "y    2    2    2    -22    -22    null    -22    -22.0    -126    2000-01-03    02:00:00    2000-01-01 00:00:02.0    0    1    -32766    -22    -22    -22", //$NON-NLS-1$
     	});
@@ -125,7 +125,7 @@
     			"null    VDBLess    Derby.SMALLA    TIMEVALUE    92    time    8    null    0    10    1    null    null    null    null    0    10    NO    null    null    null    null    NO", //$NON-NLS-1$
     			"null    VDBLess    Derby.SMALLA    TIMESTAMPVALUE    93    timestamp    29    null    0    10    1    null    null    null    null    0    11    NO    null    null    null    null    NO", //$NON-NLS-1$
     			"null    VDBLess    Derby.SMALLA    BOOLEANVALUE    5    short    5    null    0    10    1    null    null    null    null    0    12    NO    null    null    null    null    NO", //$NON-NLS-1$
-    			"null    VDBLess    Derby.SMALLA    CHARVALUE    1    char    1    null    0    0    1    null    null    null    null    2    13    NO    null    null    null    null    NO", //$NON-NLS-1$
+    			"null    VDBLess    Derby.SMALLA    CHARVALUE    12    string    4000    null    0    0    1    null    null    null    null    2    13    NO    null    null    null    null    NO", //$NON-NLS-1$
     			"null    VDBLess    Derby.SMALLA    SHORTVALUE    5    short    5    null    0    10    1    null    null    null    null    0    14    NO    null    null    null    null    NO", //$NON-NLS-1$
     			"null    VDBLess    Derby.SMALLA    BIGINTEGERVALUE    -5    long    19    null    0    10    1    null    null    null    null    0    15    NO    null    null    null    null    NO", //$NON-NLS-1$
     			"null    VDBLess    Derby.SMALLA    BIGDECIMALVALUE    2    bigdecimal    20    null    0    10    1    null    null    null    null    0    16    NO    null    null    null    null    NO", //$NON-NLS-1$



More information about the teiid-commits mailing list