[teiid-commits] teiid SVN: r486 - in trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc: postgresql and 1 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Feb 24 09:21:50 EST 2009


Author: shawkins
Date: 2009-02-24 09:21:49 -0500 (Tue, 24 Feb 2009)
New Revision: 486

Modified:
   trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLTranslator.java
   trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLTranslator.java
   trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/Translator.java
Log:
TEIID-379 adding a session level set of ansi mode

Modified: trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLTranslator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLTranslator.java	2009-02-23 21:51:59 UTC (rev 485)
+++ trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLTranslator.java	2009-02-24 14:21:49 UTC (rev 486)
@@ -22,7 +22,10 @@
 
 package com.metamatrix.connector.jdbc.mysql;
 
+import java.sql.Connection;
 import java.sql.Date;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Time;
 import java.sql.Timestamp;
 
@@ -64,8 +67,29 @@
 	}
 	
 	@Override
-	public int getTimestampNanoSecondPrecision() {
+	public int getTimestampNanoPrecision() {
 		return 6;
 	}
 	
+	@Override
+	public void afterConnectionCreation(Connection connection) {
+		super.afterConnectionCreation(connection);
+		
+		Statement stmt = null;
+		try {
+			stmt = connection.createStatement();
+			stmt.execute("set SESSION sql-mode = 'ANSI'"); //$NON-NLS-1$
+		} catch (SQLException e) {
+			getEnvironment().getLogger().logError("Error setting ANSI mode", e); //$NON-NLS-1$
+		} finally {
+			if (stmt != null) {
+				try {
+					stmt.close();
+				} catch (SQLException e) {
+					getEnvironment().getLogger().logDetail("Error closing statement", e); //$NON-NLS-1$
+				}
+			}
+		}
+	}
+	
 }

Modified: trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLTranslator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLTranslator.java	2009-02-23 21:51:59 UTC (rev 485)
+++ trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLTranslator.java	2009-02-24 14:21:49 UTC (rev 486)
@@ -102,7 +102,7 @@
     }
     
     @Override
-    public int getTimestampNanoSecondPrecision() {
+    public int getTimestampNanoPrecision() {
     	return 6;
     }
     

Modified: trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/Translator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/Translator.java	2009-02-23 21:51:59 UTC (rev 485)
+++ trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/Translator.java	2009-02-24 14:21:49 UTC (rev 486)
@@ -264,11 +264,11 @@
      * @return Formatted string
      */
     public String formatDateValue(java.util.Date dateObject) {
-        if (dateObject instanceof Timestamp && getTimestampNanoSecondPrecision() < 9) {
+        if (dateObject instanceof Timestamp && getTimestampNanoPrecision() < 9) {
         	Timestamp ts = (Timestamp)dateObject;
         	Timestamp newTs = new Timestamp(ts.getTime());
-        	if (getTimestampNanoSecondPrecision() > 0) {
-	        	int mask = 10^(9-getTimestampNanoSecondPrecision());
+        	if (getTimestampNanoPrecision() > 0) {
+	        	int mask = 10^(9-getTimestampNanoPrecision());
 	        	newTs.setNanos(ts.getNanos()/mask*mask);
         	}
         	dateObject = newTs;
@@ -330,7 +330,7 @@
     	return null;
     }
     
-    public int getTimestampNanoSecondPrecision() {
+    public int getTimestampNanoPrecision() {
     	return 9;
     }
     




More information about the teiid-commits mailing list