[teiid-commits] teiid SVN: r3287 - in branches/7.4.x/connectors/translator-jdbc/src: test/java/org/teiid/translator/jdbc/sqlserver and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Jun 28 16:41:03 EDT 2011


Author: shawkins
Date: 2011-06-28 16:41:02 -0400 (Tue, 28 Jun 2011)
New Revision: 3287

Modified:
   branches/7.4.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
   branches/7.4.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java
Log:
TEIID-1660 fix for date type being used with SQL Server 2005

Modified: branches/7.4.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
===================================================================
--- branches/7.4.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java	2011-06-28 20:18:26 UTC (rev 3286)
+++ branches/7.4.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java	2011-06-28 20:41:02 UTC (rev 3287)
@@ -24,6 +24,8 @@
  */
 package org.teiid.translator.jdbc.sqlserver;
 
+import java.sql.Date;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -203,8 +205,16 @@
     }
     
     @Override
+    public String translateLiteralDate(Date dateValue) {
+    	if (getDatabaseVersion().compareTo(V_2008) >= 0) {
+    		return super.translateLiteralDate(dateValue);
+    	}
+    	return super.translateLiteralTimestamp(new Timestamp(dateValue.getTime()));
+    }
+    
+    @Override
     public boolean hasTimeType() {
-    	return getDatabaseVersion().compareTo(V_2005) >= 0;
+    	return getDatabaseVersion().compareTo(V_2008) >= 0;
     }
     
     @Override

Modified: branches/7.4.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java
===================================================================
--- branches/7.4.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java	2011-06-28 20:18:26 UTC (rev 3286)
+++ branches/7.4.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java	2011-06-28 20:41:02 UTC (rev 3287)
@@ -49,9 +49,13 @@
     private static SQLServerExecutionFactory trans = new SQLServerExecutionFactory();
     
     @BeforeClass
-    public static void setup() throws TranslatorException {
+    public static void oneTimeSetup() throws TranslatorException {
         trans.start();
     }
+    
+    public void setUp() throws Exception {
+    	trans.setDatabaseVersion(SQLServerExecutionFactory.V_2005);
+    }
 
     public String getTestVDB() {
         return TranslationHelper.PARTS_VDB;
@@ -143,6 +147,25 @@
             output);        
     }
     
+    @Test public void testConvertDate() throws Exception {
+        String input = "select stringkey from bqt1.smalla where BQT1.SmallA.DateValue IN (convert('2000-01-12', date), convert('2000-02-02', date))"; //$NON-NLS-1$
+        String output = "SELECT SmallA.StringKey FROM SmallA WHERE SmallA.DateValue IN (CAST('2000-01-12 00:00:00.0' AS DATETIME), CAST('2000-02-02 00:00:00.0' AS DATETIME))"; //$NON-NLS-1$
+               
+        helpTestVisitor(getBQTVDB(),
+            input, 
+            output);        
+    }
+    
+    @Test public void testConvertDate2008() throws Exception {
+    	trans.setDatabaseVersion(SQLServerExecutionFactory.V_2008);
+        String input = "select stringkey from bqt1.smalla where BQT1.SmallA.DateValue IN (convert('2000-01-12', date), convert('2000-02-02', date))"; //$NON-NLS-1$
+        String output = "SELECT SmallA.StringKey FROM SmallA WHERE SmallA.DateValue IN (CAST('2000-01-12' AS DATE), CAST('2000-02-02' AS DATE))"; //$NON-NLS-1$
+               
+        helpTestVisitor(getBQTVDB(),
+            input, 
+            output);        
+    }
+    
     @Test public void testUniqueidentifier() throws Exception {
     	MetadataStore metadataStore = new MetadataStore();
     	Schema foo = RealMetadataFactory.createPhysicalModel("foo", metadataStore); //$NON-NLS-1$



More information about the teiid-commits mailing list