[teiid-commits] teiid SVN: r1301 - in trunk: common-core/src/main/java/com/metamatrix/common/types/basic and 5 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Sep 1 13:58:00 EDT 2009


Author: shawkins
Date: 2009-09-01 13:58:00 -0400 (Tue, 01 Sep 2009)
New Revision: 1301

Modified:
   trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigDecimalToBigIntegerTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToStringTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigIntegerTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToBooleanTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToByteTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToDoubleTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToFloatTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToIntegerTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToLongTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToShortTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ObjectToAnyTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToStringTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigDecimalTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigIntegerTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBooleanTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToByteTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToCharacterTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDateTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDoubleTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToFloatTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToIntegerTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToLongTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToSQLXMLTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToShortTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimeTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimestampTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToDateTransform.java
   trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToTimeTransform.java
   trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java
   trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
   trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
   trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
   trunk/engine/src/test/java/com/metamatrix/query/processor/TestInsertProcessing.java
Log:
TEIID-744 simplifying inNarrowing call to be isExplicit, also correcting int to float conversion as explicit since it can loose precision

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -33,7 +33,7 @@
 import com.metamatrix.core.jdbc.SQLXML; 
 ## JDBC3.0-JDK1.5-end ##*/
 import java.sql.Timestamp;
-import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -162,24 +162,10 @@
 	/** Base data type names and classes, Type class --> Type name */
 	private static Map<Class, String> dataTypeClasses = new LinkedHashMap<Class, String>();
 
-	private static Set<String> DATA_TYPE_NAMES = Collections
-			.unmodifiableSet(dataTypeNames.keySet());
+	private static Set<String> DATA_TYPE_NAMES = Collections.unmodifiableSet(dataTypeNames.keySet());
 
-	private static Set<Class> DATA_TYPE_CLASSES = Collections
-			.unmodifiableSet(dataTypeClasses.keySet());
+	private static Set<Class> DATA_TYPE_CLASSES = Collections.unmodifiableSet(dataTypeClasses.keySet());
 
-	/**
-	 * Map of a type to the list of types that type may be converted to
-	 * implicitly
-	 */
-	private static Map<String, List<String>> implicitConversions = new HashMap<String, List<String>>();
-
-	/**
-	 * Map of a type to the list of types that type may be converted to
-	 * implicitly OR explicitly
-	 */
-	private static Map<String, List<String>> explicitConversions = new HashMap<String, List<String>>();
-	
 	private static Map<Class<?>, SourceTransform> sourceConverters = new HashMap<Class<?>, SourceTransform>();
 
 	// Static initializer - loads basic transforms types
@@ -189,12 +175,6 @@
 
 		// Load default transforms
 		loadBasicTransforms();
-
-		// Load implicit conversions
-		loadImplicitConversions();
-
-		// Load allowed conversions
-		loadExplicitConversions();
 		
 		loadSourceConversions();
 	}
@@ -385,34 +365,32 @@
 		innerMap.put(targetName, transform);
 	}
 
-	static void setImplicitConversions(String type, List<String> conversions) {
-		implicitConversions.put(type, conversions);
-	}
-
 	public static List<String> getImplicitConversions(String type) {
-		return implicitConversions.get(type);
+		Map<String, Transform> innerMap = transforms.get(type);
+		if (innerMap != null) {
+			List<String> result = new ArrayList<String>(innerMap.size());
+			for (Map.Entry<String, Transform> entry : innerMap.entrySet()) {
+				if (!entry.getValue().isExplicit()) {
+					result.add(entry.getKey());
+				}
+			}
+			return result;
+		}
+		return Collections.emptyList();
 	}
 
 	public static boolean isImplicitConversion(String srcType, String tgtType) {
-		List<String> conversions = implicitConversions.get(srcType);
-		if (conversions != null) {
-			return conversions.contains(tgtType);
+		Transform t = getTransform(srcType, tgtType);
+		if (t != null) {
+			return !t.isExplicit();
 		}
 		return false;
 	}
 
-	static void setExplicitConversions(String type, List<String> conversions) {
-		explicitConversions.put(type, conversions);
-	}
-
-	public static List<String> getExplicitConversions(String type) {
-		return explicitConversions.get(type);
-	}
-
 	public static boolean isExplicitConversion(String srcType, String tgtType) {
-		List<String> conversions = explicitConversions.get(srcType);
-		if (conversions != null) {
-			return conversions.contains(tgtType);
+		Transform t = getTransform(srcType, tgtType);
+		if (t != null) {
+			return t.isExplicit();
 		}
 		return false;
 	}
@@ -439,44 +417,25 @@
 	 * Load default data types.
 	 */
 	static void loadDataTypes() {
-		DataTypeManager.addDataType(DefaultDataTypes.BOOLEAN,
-				DefaultDataClasses.BOOLEAN);
-		DataTypeManager.addDataType(DefaultDataTypes.BYTE,
-				DefaultDataClasses.BYTE);
-		DataTypeManager.addDataType(DefaultDataTypes.SHORT,
-				DefaultDataClasses.SHORT);
-		DataTypeManager.addDataType(DefaultDataTypes.CHAR,
-				DefaultDataClasses.CHAR);
-		DataTypeManager.addDataType(DefaultDataTypes.INTEGER,
-				DefaultDataClasses.INTEGER);
-		DataTypeManager.addDataType(DefaultDataTypes.LONG,
-				DefaultDataClasses.LONG);
-		DataTypeManager.addDataType(DefaultDataTypes.BIG_INTEGER,
-				DefaultDataClasses.BIG_INTEGER);
-		DataTypeManager.addDataType(DefaultDataTypes.FLOAT,
-				DefaultDataClasses.FLOAT);
-		DataTypeManager.addDataType(DefaultDataTypes.DOUBLE,
-				DefaultDataClasses.DOUBLE);
-		DataTypeManager.addDataType(DefaultDataTypes.BIG_DECIMAL,
-				DefaultDataClasses.BIG_DECIMAL);
-		DataTypeManager.addDataType(DefaultDataTypes.DATE,
-				DefaultDataClasses.DATE);
-		DataTypeManager.addDataType(DefaultDataTypes.TIME,
-				DefaultDataClasses.TIME);
-		DataTypeManager.addDataType(DefaultDataTypes.TIMESTAMP,
-				DefaultDataClasses.TIMESTAMP);
-		DataTypeManager.addDataType(DefaultDataTypes.STRING,
-				DefaultDataClasses.STRING);
-		DataTypeManager.addDataType(DefaultDataTypes.CLOB,
-				DefaultDataClasses.CLOB);
-		DataTypeManager.addDataType(DefaultDataTypes.XML,
-				DefaultDataClasses.XML);
-		DataTypeManager.addDataType(DefaultDataTypes.OBJECT,
-				DefaultDataClasses.OBJECT);
-		DataTypeManager.addDataType(DefaultDataTypes.NULL,
-				DefaultDataClasses.NULL);
-		DataTypeManager.addDataType(DefaultDataTypes.BLOB,
-				DefaultDataClasses.BLOB);
+		DataTypeManager.addDataType(DefaultDataTypes.BOOLEAN, DefaultDataClasses.BOOLEAN);
+		DataTypeManager.addDataType(DefaultDataTypes.BYTE, DefaultDataClasses.BYTE);
+		DataTypeManager.addDataType(DefaultDataTypes.SHORT,	DefaultDataClasses.SHORT);
+		DataTypeManager.addDataType(DefaultDataTypes.CHAR, DefaultDataClasses.CHAR);
+		DataTypeManager.addDataType(DefaultDataTypes.INTEGER, DefaultDataClasses.INTEGER);
+		DataTypeManager.addDataType(DefaultDataTypes.LONG, DefaultDataClasses.LONG);
+		DataTypeManager.addDataType(DefaultDataTypes.BIG_INTEGER, DefaultDataClasses.BIG_INTEGER);
+		DataTypeManager.addDataType(DefaultDataTypes.FLOAT, DefaultDataClasses.FLOAT);
+		DataTypeManager.addDataType(DefaultDataTypes.DOUBLE, DefaultDataClasses.DOUBLE);
+		DataTypeManager.addDataType(DefaultDataTypes.BIG_DECIMAL, DefaultDataClasses.BIG_DECIMAL);
+		DataTypeManager.addDataType(DefaultDataTypes.DATE, DefaultDataClasses.DATE);
+		DataTypeManager.addDataType(DefaultDataTypes.TIME, DefaultDataClasses.TIME);
+		DataTypeManager.addDataType(DefaultDataTypes.TIMESTAMP, DefaultDataClasses.TIMESTAMP);
+		DataTypeManager.addDataType(DefaultDataTypes.STRING, DefaultDataClasses.STRING);
+		DataTypeManager.addDataType(DefaultDataTypes.CLOB, DefaultDataClasses.CLOB);
+		DataTypeManager.addDataType(DefaultDataTypes.XML, DefaultDataClasses.XML);
+		DataTypeManager.addDataType(DefaultDataTypes.OBJECT, DefaultDataClasses.OBJECT);
+		DataTypeManager.addDataType(DefaultDataTypes.NULL, DefaultDataClasses.NULL);
+		DataTypeManager.addDataType(DefaultDataTypes.BLOB, DefaultDataClasses.BLOB);
 	}
 
 	/**
@@ -484,199 +443,126 @@
 	 * set is always installed but may be overridden.
 	 */
 	static void loadBasicTransforms() {
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.BigDecimalToBigIntegerTransform());
 		DataTypeManager.addTransform(new NumberToBooleanTransform(BigDecimal.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.BIG_DECIMAL));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.BIG_DECIMAL, true, false));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.BIG_DECIMAL, true, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.BIG_DECIMAL, true));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.BIG_DECIMAL, true, false));
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.BIG_DECIMAL, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_DECIMAL));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_DECIMAL, true));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_DECIMAL, true));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.BigDecimalToBigIntegerTransform());
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_DECIMAL));
 		
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.BigIntegerToBigDecimalTransform());
 		DataTypeManager.addTransform(new NumberToBooleanTransform(BigInteger.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.BIG_INTEGER));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.BIG_INTEGER, true, false));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.BIG_INTEGER, true, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.BIG_INTEGER, true));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.BIG_INTEGER, true, false));
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.BIG_INTEGER, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_INTEGER));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_INTEGER, true));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_INTEGER, true));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.BigIntegerToBigDecimalTransform());
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_INTEGER));
 
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(BigDecimal.valueOf(1), BigDecimal.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(BigInteger.valueOf(1), BigInteger.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Double.valueOf(1), Double.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Float.valueOf(1), Float.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Long.valueOf(1), Long.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Integer.valueOf(1), Integer.valueOf(0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Short.valueOf((short)1), Short.valueOf((short)0)));
-		DataTypeManager
-				.addTransform(new BooleanToNumberTransform(Byte.valueOf((byte)1), Byte.valueOf((byte)0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Byte.valueOf((byte)1), Byte.valueOf((byte)0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Short.valueOf((short)1), Short.valueOf((short)0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Integer.valueOf(1), Integer.valueOf(0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Long.valueOf(1), Long.valueOf(0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(BigInteger.valueOf(1), BigInteger.valueOf(0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Float.valueOf(1), Float.valueOf(0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(Double.valueOf(1), Double.valueOf(0)));
+		DataTypeManager.addTransform(new BooleanToNumberTransform(BigDecimal.valueOf(1), BigDecimal.valueOf(0)));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BOOLEAN));
 
-		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.BYTE));
-		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.BYTE));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Byte.valueOf((byte)0)));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.BYTE, false, false));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.BYTE, false, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.BYTE, false));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.BYTE, false, false));
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.BYTE, false));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BYTE, false));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BYTE, false));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BYTE, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.BYTE));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BYTE, false, false));
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BYTE, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.BYTE));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BYTE));
 
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.CHAR));
 
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.ClobToStringTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.ClobToStringTransform());
 
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.DateToTimestampTransform());
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DATE));
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.DateToTimestampTransform());
 
-		DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.DOUBLE));
-		DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.DOUBLE));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Double.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.DOUBLE));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.DOUBLE, true, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.DOUBLE, true));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.DOUBLE, false, true)); //lossy, but not narrowing
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.DOUBLE, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.DOUBLE));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.DOUBLE, true));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.DOUBLE, true));
+		DataTypeManager.addTransform(new NumberToLongTransform(	DefaultDataClasses.DOUBLE, false, true)); //lossy, but not narrowing
+		DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.DOUBLE));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.DOUBLE, true, false));
+		DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.DOUBLE));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DOUBLE));
 
-		DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.FLOAT));
-		DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.FLOAT));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Float.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.FLOAT));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.FLOAT, false, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.FLOAT, true));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.FLOAT, false, true)); //lossy, but not narrowing
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.FLOAT, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.FLOAT));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.FLOAT, true));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.FLOAT, true));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.FLOAT, false, true)); //lossy, but not narrowing
+		DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.FLOAT));
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.FLOAT, false, false));
+		DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.FLOAT));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.FLOAT));
 
-		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.INTEGER));
-		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.INTEGER));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Integer.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.INTEGER));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.INTEGER, false, false));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.INTEGER, false, true)); //lossy, but not narrowing
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.INTEGER, false, false));
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.INTEGER, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.INTEGER));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.INTEGER, true));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.INTEGER, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.INTEGER));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.INTEGER, false, true)); //lossy, but not narrowing
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.INTEGER, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.INTEGER));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.INTEGER));
 
-		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.LONG));
-		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.LONG));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Long.valueOf(0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.LONG));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.LONG, true));
-		DataTypeManager.addTransform(new NumberToShortTransform(
-				DefaultDataClasses.LONG, true));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.LONG));
+		DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.LONG, true));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.LONG, true));
+		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.LONG));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
+		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.LONG));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.LONG));
 				
-		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.SHORT));
-		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.SHORT));
 		DataTypeManager.addTransform(new NumberToBooleanTransform(Short.valueOf((short)0)));
-		DataTypeManager.addTransform(new NumberToByteTransform(
-				DefaultDataClasses.SHORT));
-		DataTypeManager.addTransform(new NumberToDoubleTransform(
-				DefaultDataClasses.SHORT, false, false));
-		DataTypeManager.addTransform(new NumberToFloatTransform(
-				DefaultDataClasses.SHORT, false, false));
-		DataTypeManager.addTransform(new NumberToIntegerTransform(
-				DefaultDataClasses.SHORT, false));
-		DataTypeManager.addTransform(new NumberToLongTransform(
-				DefaultDataClasses.SHORT, false, false));
+		DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.SHORT));
+		DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.SHORT, false));
+		DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.SHORT, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.SHORT));
+		DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.SHORT, false, false));
+		DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.SHORT, false, false));
+		DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.SHORT));
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.SHORT));
 
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToBigDecimalTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToBigIntegerTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToBooleanTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToByteTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToCharacterTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToClobTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToDateTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToDoubleTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToFloatTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToIntegerTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToLongTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToShortTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToTimestampTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToTimeTransform());
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.StringToSQLXMLTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBooleanTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToByteTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToShortTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToIntegerTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToLongTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBigIntegerTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToFloatTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToDoubleTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBigDecimalTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToTimeTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToDateTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToTimestampTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToCharacterTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToClobTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToSQLXMLTransform());
 		
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.SQLXMLToStringTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.SQLXMLToStringTransform());
 
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.TimestampToDateTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimestampToTimeTransform());
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimestampToDateTransform());
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIMESTAMP));
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.TimestampToTimeTransform());
-
-		DataTypeManager
-				.addTransform(new com.metamatrix.common.types.basic.TimeToTimestampTransform());
+		
+		DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimeToTimestampTransform());
 		DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIME));
 		
 		for (Class<?> type : getAllDataTypeClasses()) {
@@ -691,176 +577,6 @@
 
 	}
 
-	static void loadImplicitConversions() {
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.STRING, Arrays
-				.asList(new String[] { DefaultDataTypes.CLOB,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.CHAR, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.BOOLEAN, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.FLOAT,
-						DefaultDataTypes.DOUBLE, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.BYTE,
-				Arrays
-						.asList(new String[] { DefaultDataTypes.STRING,
-								DefaultDataTypes.SHORT,
-								DefaultDataTypes.INTEGER,
-								DefaultDataTypes.LONG,
-								DefaultDataTypes.BIG_INTEGER,
-								DefaultDataTypes.FLOAT,
-								DefaultDataTypes.DOUBLE,
-								DefaultDataTypes.BIG_DECIMAL,
-								DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.SHORT, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.FLOAT,
-						DefaultDataTypes.DOUBLE, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.INTEGER,
-				Arrays
-						.asList(new String[] { DefaultDataTypes.STRING,
-								DefaultDataTypes.LONG,
-								DefaultDataTypes.BIG_INTEGER,
-								DefaultDataTypes.FLOAT,
-								DefaultDataTypes.DOUBLE,
-								DefaultDataTypes.BIG_DECIMAL,
-								DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.LONG, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.BIG_INTEGER,
-				Arrays
-						.asList(new String[] { DefaultDataTypes.STRING,
-								DefaultDataTypes.BIG_DECIMAL,
-								DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.FLOAT, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.DOUBLE, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.DOUBLE,
-				Arrays
-						.asList(new String[] { DefaultDataTypes.STRING,
-								DefaultDataTypes.BIG_DECIMAL,
-								DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.BIG_DECIMAL,
-				Arrays.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.DATE, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.TIMESTAMP, DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.TIME, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.TIMESTAMP,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.TIMESTAMP,
-				Arrays.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.OBJECT, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.NULL, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.CHAR, DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.FLOAT,
-						DefaultDataTypes.DOUBLE, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.DATE, DefaultDataTypes.TIME,
-						DefaultDataTypes.TIMESTAMP, DefaultDataTypes.OBJECT,
-						DefaultDataTypes.BLOB, DefaultDataTypes.CLOB,
-						DefaultDataTypes.XML }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.BLOB, Arrays
-				.asList(new String[] { DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.CLOB, Arrays
-				.asList(new String[] { DefaultDataTypes.OBJECT }));
-		DataTypeManager.setImplicitConversions(DefaultDataTypes.XML, Arrays
-				.asList(new String[] { DefaultDataTypes.OBJECT }));
-	}
-
-	static void loadExplicitConversions() {
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.STRING, Arrays
-				.asList(new String[] { DefaultDataTypes.CHAR,
-						DefaultDataTypes.BOOLEAN, DefaultDataTypes.BYTE,
-						DefaultDataTypes.SHORT, DefaultDataTypes.INTEGER,
-						DefaultDataTypes.LONG, DefaultDataTypes.BIG_INTEGER,
-						DefaultDataTypes.FLOAT, DefaultDataTypes.DOUBLE,
-						DefaultDataTypes.BIG_DECIMAL, DefaultDataTypes.DATE,
-						DefaultDataTypes.TIME, DefaultDataTypes.TIMESTAMP,
-						DefaultDataTypes.XML }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.CHAR, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.BOOLEAN, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.BYTE, Arrays
-				.asList(new String[] { DefaultDataTypes.BOOLEAN }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.SHORT, Arrays
-				.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.INTEGER, Arrays
-				.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.LONG, Arrays
-				.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.FLOAT, 
-						DefaultDataTypes.DOUBLE}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.BIG_INTEGER,
-				Arrays.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.FLOAT, DefaultDataTypes.DOUBLE }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.FLOAT, Arrays
-				.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER }));
-		DataTypeManager
-				.setExplicitConversions(DefaultDataTypes.DOUBLE, Arrays
-						.asList(new String[] { DefaultDataTypes.BOOLEAN,
-								DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-								DefaultDataTypes.INTEGER,
-								DefaultDataTypes.LONG,
-								DefaultDataTypes.BIG_INTEGER,
-								DefaultDataTypes.FLOAT }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.BIG_DECIMAL,
-				Arrays.asList(new String[] { DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.FLOAT,
-						DefaultDataTypes.DOUBLE }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.DATE, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.TIME, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.TIMESTAMP,
-				Arrays.asList(new String[] { DefaultDataTypes.DATE,
-						DefaultDataTypes.TIME }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.OBJECT, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING,
-						DefaultDataTypes.CHAR, DefaultDataTypes.BOOLEAN,
-						DefaultDataTypes.BYTE, DefaultDataTypes.SHORT,
-						DefaultDataTypes.INTEGER, DefaultDataTypes.LONG,
-						DefaultDataTypes.BIG_INTEGER, DefaultDataTypes.FLOAT,
-						DefaultDataTypes.DOUBLE, DefaultDataTypes.BIG_DECIMAL,
-						DefaultDataTypes.DATE, DefaultDataTypes.TIME,
-						DefaultDataTypes.TIMESTAMP, DefaultDataTypes.BLOB,
-						DefaultDataTypes.CLOB, DefaultDataTypes.XML }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.NULL, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.BLOB, Arrays
-				.asList(new String[] {}));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.CLOB, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING }));
-		DataTypeManager.setExplicitConversions(DefaultDataTypes.XML, Arrays
-				.asList(new String[] { DefaultDataTypes.STRING }));
-	}
-	
 	static void loadSourceConversions() {
 		sourceConverters.put(Clob.class, new SourceTransform<Clob, ClobType>() {
 			//## JDBC4.0-begin ##

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -95,21 +95,10 @@
 		return getDisplayName();
 	}
 
-	/**
-	 * Flag if the transformation from source to target is
-	 * a narrowing transformation that may lose information.
-	 * This class returns false by default.  This method should
-	 * be overridden if the transform is a narrowing transform.
-	 * @return False unless overridden.
-	 */
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return false;
 	}
 	
-	public boolean isLossy() {
-		return isNarrowing();
-	}
-
 	/**
 	 * Override Object.toString() to do getDisplayName() version.
 	 * @return String representation of object

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigDecimalToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigDecimalToBigIntegerTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigDecimalToBigIntegerTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -58,12 +58,7 @@
 		return BigInteger.class;
 	}
 
-	/**
-	 * Flag if the transformation from source to target is 
-	 * a narrowing transformation that may lose information.
-	 * @return True - this transformation is narrowing
-	 */
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToStringTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToStringTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToStringTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -69,9 +69,9 @@
     }
 
     /** 
-     * @see com.metamatrix.common.types.Transform#isNarrowing()
+     * @see com.metamatrix.common.types.Transform#isExplicit()
      */
-    public boolean isNarrowing() {
+    public boolean isExplicit() {
         return true;
     }
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigIntegerTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigIntegerTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -65,7 +65,7 @@
 	}
 
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToBooleanTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToBooleanTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToBooleanTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -55,7 +55,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToByteTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToByteTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToByteTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -59,5 +59,10 @@
 	public Class<?> getTargetType() {
 		return DataTypeManager.DefaultDataClasses.BYTE;
 	}
-		
+	
+	@Override
+	public boolean isExplicit() {
+		return true;
+	}
+	
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToDoubleTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToDoubleTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToDoubleTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -67,13 +67,8 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
-		return isNarrowing;
+	public boolean isExplicit() {
+		return isNarrowing || isLossy;
 	}
 	
-	@Override
-	public boolean isLossy() {
-		return isLossy;
-	}
-	
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToFloatTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToFloatTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToFloatTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -67,13 +67,8 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
-		return isNarrowing;
+	public boolean isExplicit() {
+		return isNarrowing || isLossy;
 	}
 	
-	@Override
-	public boolean isLossy() {
-		return isLossy;
-	}
-	
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToIntegerTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToIntegerTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -65,7 +65,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return isNarrowing;
 	}
 	

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToLongTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToLongTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToLongTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -67,13 +67,8 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
-		return isNarrowing;
+	public boolean isExplicit() {
+		return isNarrowing || isLossy;
 	}
 	
-	@Override
-	public boolean isLossy() {
-		return isLossy;
-	}
-	
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToShortTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToShortTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToShortTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -65,7 +65,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return isNarrowing;
 	}
 	

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ObjectToAnyTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ObjectToAnyTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ObjectToAnyTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -68,9 +68,9 @@
     }
     
     /** 
-     * @see com.metamatrix.common.types.Transform#isNarrowing()
+     * @see com.metamatrix.common.types.Transform#isExplicit()
      */
-    public boolean isNarrowing() {
+    public boolean isExplicit() {
         return true;
     }
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToStringTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToStringTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToStringTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -60,9 +60,9 @@
     }
 
     /** 
-     * @see com.metamatrix.common.types.Transform#isNarrowing()
+     * @see com.metamatrix.common.types.Transform#isExplicit()
      */
-    public boolean isNarrowing() {
+    public boolean isExplicit() {
         return true;
     }
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigDecimalTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigDecimalTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigDecimalTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -64,7 +64,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 	

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigIntegerTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigIntegerTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -64,7 +64,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBooleanTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBooleanTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBooleanTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -70,7 +70,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 	

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToByteTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToByteTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToByteTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToCharacterTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToCharacterTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToCharacterTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDateTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDateTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDateTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -70,7 +70,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDoubleTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDoubleTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDoubleTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 	

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToFloatTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToFloatTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToFloatTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToIntegerTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToIntegerTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToLongTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToLongTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToLongTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToSQLXMLTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToSQLXMLTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToSQLXMLTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -76,4 +76,9 @@
 		return XMLType.class;
 	}
 	
+	@Override
+	public boolean isExplicit() {
+		return true;
+	}
+	
 }

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToShortTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToShortTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToShortTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -62,7 +62,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimeTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimeTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimeTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -70,7 +70,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimestampTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimestampTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimestampTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -71,7 +71,7 @@
 	}
 	
 	@Override
-	public boolean isNarrowing() {
+	public boolean isExplicit() {
 		return true;
 	}
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToDateTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToDateTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToDateTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -60,9 +60,9 @@
 	}
     
     /** 
-     * @see com.metamatrix.common.types.Transform#isNarrowing()
+     * @see com.metamatrix.common.types.Transform#isExplicit()
      */
-    public boolean isNarrowing() {
+    public boolean isExplicit() {
         return true;
     }
 

Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToTimeTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToTimeTransform.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToTimeTransform.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -59,9 +59,9 @@
 	}
     
     /** 
-     * @see com.metamatrix.common.types.Transform#isNarrowing()
+     * @see com.metamatrix.common.types.Transform#isExplicit()
      */
-    public boolean isNarrowing() {
+    public boolean isExplicit() {
         return true;
     }
 

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-09-01 04:26:32 UTC (rev 1300)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -70,7 +70,7 @@
         /*bool*/        {   'I','N','O','I','I','I','I','I','I','I','I','N','N','N','I','N','N','N'     },
         /*byte*/        {   'I','N','C','O','I','I','I','I','I','I','I','N','N','N','I','N','N','N'     },
         /*short*/       {   'I','N','C','C','O','I','I','I','I','I','I','N','N','N','I','N','N','N'     },
-        /*int*/         {   'I','N','C','C','C','O','I','I','I','I','I','N','N','N','I','N','N','N'     },
+        /*int*/         {   'I','N','C','C','C','O','I','I','C','I','I','N','N','N','I','N','N','N'     },
         /*long*/        {   'I','N','C','C','C','C','O','I','C','C','I','N','N','N','I','N','N','N'     },
         /*bigint*/      {   'I','N','C','C','C','C','C','O','C','C','I','N','N','N','I','N','N','N'     },
         /*float*/       {   'I','N','C','C','C','C','C','C','O','I','I','N','N','N','I','N','N','N'     },

Modified: trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml	2009-09-01 17:58:00 UTC (rev 1301)
@@ -293,9 +293,9 @@
           </row>
           <row>
             <entry>integer</entry>
-            <entry>string, long, biginteger, float, double,
+            <entry>string, long, biginteger, double,
               bigdecimal</entry>
-            <entry>boolean, byte, short</entry>
+            <entry>boolean, byte, short, float</entry>
           </row>
           <row>
             <entry>long</entry>

Modified: trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -54,7 +54,6 @@
 import com.metamatrix.api.exception.query.QueryValidatorException;
 import com.metamatrix.common.buffer.BlockedException;
 import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
 import com.metamatrix.common.util.TimestampWithTimezone;
 import com.metamatrix.core.MetaMatrixRuntimeException;
 import com.metamatrix.core.util.Assertion;
@@ -1482,10 +1481,7 @@
     private Criteria simplifyConvertFunction(CompareCriteria crit) throws QueryValidatorException {
         Function leftFunction = (Function) crit.getLeftExpression();
         Expression leftExpr = leftFunction.getArgs()[0];
-        if (leftExpr.getType() == crit.getRightExpression().getType()) {
-        	crit.setLeftExpression(leftExpr);
-        	return crit;
-        }
+        
         if(!(crit.getRightExpression() instanceof Constant) 
         		//TODO: this can be relaxed for order preserving operations
         		|| !(crit.getOperator() == CompareCriteria.EQ || crit.getOperator() == CompareCriteria.NE)) { 
@@ -1507,9 +1503,7 @@
         	return getSimpliedCriteria(crit, leftExpr, crit.getOperator() != CompareCriteria.EQ, true);
         }
         
-        Transform transform = DataTypeManager.getTransform(leftExpr.getType(), crit.getRightExpression().getType());
-        
-        if (transform.isLossy()) {
+        if (!DataTypeManager.isImplicitConversion(leftExprTypeName, DataTypeManager.getDataTypeName(rightConstant.getType()))) {
         	return crit;
         }
                 

Modified: trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -368,14 +368,14 @@
 			"+", new Class[] { T_INTEGER, T_FLOAT }, //$NON-NLS-1$
 			new FunctionDescriptor[] { 
                 helpCreateDescriptor(FunctionLibrary.CONVERT, new Class[] { T_INTEGER, T_STRING }), 
-				null } );
+                helpCreateDescriptor(FunctionLibrary.CONVERT, new Class[] { T_FLOAT, T_STRING }) } );
 	}
 
 	@Test public void testFind2ArgConversion3() { 	
 		helpFindConversions(
 			"+", new Class[] { T_FLOAT, T_INTEGER }, //$NON-NLS-1$
 			new FunctionDescriptor[] { 
-			    null, 
+				helpCreateDescriptor(FunctionLibrary.CONVERT, new Class[] { T_FLOAT, T_STRING }), 
                 helpCreateDescriptor(FunctionLibrary.CONVERT, new Class[] { T_INTEGER, T_STRING }) } );
 	}
 

Modified: trunk/engine/src/test/java/com/metamatrix/query/processor/TestInsertProcessing.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestInsertProcessing.java	2009-09-01 04:26:32 UTC (rev 1300)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestInsertProcessing.java	2009-09-01 17:58:00 UTC (rev 1301)
@@ -49,7 +49,7 @@
         dataManager.addData("BatchedUpdate{I}",  //$NON-NLS-1$ 
                             new List[] { Arrays.asList(new Object[] { new Integer(1) })}); 
         
-        String sql = "SELECT 1, 1, 1 INTO pm1.g1"; //$NON-NLS-1$
+        String sql = "SELECT 1, convert(1, float), convert(1, float) INTO pm1.g1"; //$NON-NLS-1$
         
         Command command = helpParse(sql); 
         ProcessorPlan plan = helpGetPlan(command, metadata, capFinder); 
@@ -173,7 +173,7 @@
         dataManager.addData("INSERT INTO pm1.g1 (pm1.g1.e1, pm1.g1.e2) VALUES (?, ?)",  //$NON-NLS-1$ 
                             new List[] { Arrays.asList(new Object[] { new Integer(1) })}); 
         
-        String sql = "SELECT 1, 1 INTO pm1.g1"; //$NON-NLS-1$
+        String sql = "SELECT 1, convert(1, float) INTO pm1.g1"; //$NON-NLS-1$
         
         Command command = helpParse(sql); 
         ProcessorPlan plan = helpGetPlan(command, metadata, capFinder); 
@@ -213,7 +213,7 @@
         dataManager.addData("INSERT INTO pm1.g1 (pm1.g1.e1, pm1.g1.e2) VALUES (1, 1.0)",  //$NON-NLS-1$ 
                             new List[] { Arrays.asList(new Object[] { new Integer(1) })}); 
         
-        String sql = "SELECT 1, 1 INTO pm1.g1"; //$NON-NLS-1$
+        String sql = "SELECT 1, convert(1, float) INTO pm1.g1"; //$NON-NLS-1$
         
         Command command = helpParse(sql); 
         ProcessorPlan plan = helpGetPlan(command, metadata, capFinder); 



More information about the teiid-commits mailing list