diff --git a/src/main/java/com/google/gwtorm/jdbc/Database.java b/src/main/java/com/google/gwtorm/jdbc/Database.java
index 0b9a39f..753ea15 100644
--- a/src/main/java/com/google/gwtorm/jdbc/Database.java
+++ b/src/main/java/com/google/gwtorm/jdbc/Database.java
@@ -76,11 +76,22 @@
       throws OrmException {
     dataSource = ds;
 
-    final String url;
+    SqlDialect dialect;
     try {
       final Connection c = ds.getConnection();
       try {
-        url = c.getMetaData().getURL();
+        final String url = c.getMetaData().getURL();
+        if (url.startsWith("jdbc:postgresql:")) {
+          dialect = new DialectPostgreSQL();
+
+        } else if (url.startsWith("jdbc:h2:")) {
+          dialect = new DialectH2();
+
+        } else {
+          throw new OrmException("No dialect known for " + url);
+        }
+
+        dialect = dialect.refine(c);
       } finally {
         c.close();
       }
@@ -88,15 +99,6 @@
       throw new OrmException("Unable to determine driver URL", e);
     }
 
-    final SqlDialect dialect;
-    if (url.startsWith("jdbc:postgresql:")) {
-      dialect = new DialectPostgreSQL();
-    } else if (url.startsWith("jdbc:h2:")) {
-      dialect = new DialectH2();
-    } else {
-      throw new OrmException("No dialect known for " + url);
-    }
-
     schemaModel = new JavaSchemaModel(schema);
     final GeneratedClassLoader loader = newLoader(schema);
     final String cachedName = schemaFactoryNames.get(schema);
diff --git a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
index 2565513..5aa2e13 100644
--- a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
+++ b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
@@ -19,6 +19,7 @@
 import com.google.gwtorm.schema.ColumnModel;
 import com.google.gwtorm.schema.SequenceModel;
 
+import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Types;
 import java.util.HashMap;
@@ -50,6 +51,11 @@
     typeNames.put(Types.TIMESTAMP, "TIMESTAMP");
   }
 
+  /** Select a better dialect definition for this connection */
+  public SqlDialect refine(final Connection c) throws SQLException {
+    return this;
+  }
+
   public String getSqlTypeName(final int typeCode) {
     final String r = typeNames.get(typeCode);
     return r != null ? r : "UNKNOWNTYPE";
