Allow dialects to add their own storage clauses to CREATE TABLE

Some databases permit custom clauses to be inserted after the
closing parenthesis of the CREATE TABLE statement, specifically
to alter how the server stores the data in that table.  As the
syntax is almost always server specific the dialect must have
full control over what is placed here, if anything.

Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/src/main/java/com/google/gwtorm/schema/RelationModel.java b/src/main/java/com/google/gwtorm/schema/RelationModel.java
index ac0ba62..06edd1d 100644
--- a/src/main/java/com/google/gwtorm/schema/RelationModel.java
+++ b/src/main/java/com/google/gwtorm/schema/RelationModel.java
@@ -242,6 +242,7 @@
     }
 
     r.append(")");
+    dialect.appendCreateTableStorage(r, this);
     return r.toString();
   }
 
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 5aa2e13..aad86f0 100644
--- a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
+++ b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
@@ -17,6 +17,7 @@
 import com.google.gwtorm.client.OrmException;
 import com.google.gwtorm.client.Sequence;
 import com.google.gwtorm.schema.ColumnModel;
+import com.google.gwtorm.schema.RelationModel;
 import com.google.gwtorm.schema.SequenceModel;
 
 import java.sql.Connection;
@@ -131,5 +132,16 @@
     return r.toString();
   }
 
+  /**
+   * Append driver specific storage parameters to a CREATE TABLE statement.
+   * 
+   * @param sqlBuffer buffer holding the CREATE TABLE, just after the closing
+   *        parenthesis after the column list.
+   * @param relationModel the model of the table being generated.
+   */
+  public void appendCreateTableStorage(final StringBuilder sqlBuffer,
+      final RelationModel relationModel) {
+  }
+
   public abstract String getNextSequenceValueSql(String seqname);
 }