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;
}
Show replies by date