\r
Supported Databases\r
-------\r
-- [H2 1.3+](http://h2database.com)\r
-- [HSQLDB 2.2+](http://hsqldb.org)\r
-- Support for others is planned and should only require creating a simple "dialect" class.\r
+- [H2 1.3](http://h2database.com)\r
+- [HSQLDB 2.2](http://hsqldb.org)\r
+- Support for others is planned and may only require creating a simple "dialect" class.\r
\r
License\r
-------\r
</table>\r
\r
### Supported Databases\r
-[H2 1.3+](http://h2database.com), [HSQLDB 2.2+](http://hsqldb.org)\r
+- [H2 1.3](http://h2database.com)\r
+- [HSQLDB 2.2](http://hsqldb.org)\r
\r
-Support for others is planned and should only require creating a simple "dialect" class.\r
+Support for others is planned and may only require creating a simple "dialect" class.\r
\r
### Java Runtime Requirement\r
\r
### Fully Supported Data Types\r
The following data types can be used for all iciql expressions.\r
<table>\r
-<tr><th colspan="2">All Databases</th></tr>\r
+<tr><th colspan="2">Standard SQL Types</th></tr>\r
<tr><td>java.lang.String</td>\r
<td>VARCHAR *(length > 0)* or CLOB *(length == 0)*</td></tr>\r
\r
<tr><td>java.lang.Enum implements<br/>*com.iciql.Iciql.EnumId.enumId()*</td>\r
<td>INT<br/>*EnumType.ENUMID*</td></tr>\r
\r
-<tr><th colspan="2">H2 Databases</th></tr>\r
+<tr><th colspan="2">H2 Database Types</th></tr>\r
<tr><td>java.util.UUID</td>\r
<td>UUID</td><tr/>\r
\r
Please consult the `com.iciql.ModelUtils` class for details. \r
\r
### Partially Supported Data Types\r
-The following data types can be mapped to columns for all general statements <u>BUT</u> these field types may **not** be used to specify **compile-time** *clauses or constraints*.\r
+The following data types can be mapped to columns for all general statements <u>BUT</u> these field types may **not** be used to specify **compile-time** clauses or constraints.\r
\r
<table>\r
<tr><td>byte []</td>\r
\r
### Build Dependencies (downloaded during build)\r
- [H2 Database](http://h2database.com) (Eclipse Public License 1.0)\r
+- [HSQL Database Engine](http://hsqldb.org) (BSD)\r
- [JUnit](http://junit.org) (Common Public License)\r
- [commons-net](http://commons.apache.org/net) (Apache 2.0)\r
- [ant-googlecode](http://code.google.com/p/ant-googlecode) (New BSD)\r
- moved dialects back to main package\r
- improved automatic dialect determination on pooled connections\r
- moved create table and create index statement generation into dialects\r
-- added HSQL dialect. HSQL fails 4 unit tests, 2 of which are unimplemented merge, 1 has been filed as a bug in HSQL.\r
-- added MySQL dialect. Untested.\r
+- added HSQL dialect. HSQL fails 4 out of 49 unit tests: 2 failures are unimplemented merge, 1 has been filed as a bug in HSQL.\r
+- added MySQL dialect. untested.\r
- renamed <b>_ iq_versions</b> table to *iq_versions* since leading _ character is troublesome for some databases.\r
- @IQColumn(allowNull=true) -> @IQColumn(nullable=true)\r
- All columns are assumed NULLABLE unless explicitly set *@IQColumn(nullable = false)*\r
public static final int CODE_TABLE_NOT_FOUND = 3;\r
public static final int CODE_INDEX_ALREADY_EXISTS = 4;\r
\r
- private static final String TOKEN_UNMAPPED_FIELD = "\\? (=|\\>|\\<|!=|\\>=|\\<=|LIKE|BETWEEN) \\?"; \r
+ private static final String TOKEN_UNMAPPED_FIELD = "\\? (=|\\>|\\<|\\<\\>|!=|\\>=|\\<=|LIKE|BETWEEN) \\?"; \r
\r
private static final long serialVersionUID = 1L;\r
\r
buff.appendExceptFirst(", ");\r
buff.append(prepareColumnName(field.columnName)).append(' ');\r
String dataType = field.dataType;\r
- if (dataType.equals("VARCHAR")) { \r
+ if (dataType.equals("VARCHAR")) {\r
// check to see if we should use VARCHAR or CLOB\r
if (field.length <= 0) {\r
dataType = "CLOB";\r
}\r
} else if (dataType.equals("DECIMAL")) {\r
// DECIMAL(precision,scale)\r
- buff.append(convertSqlType(dataType)); \r
+ buff.append(convertSqlType(dataType));\r
if (field.length > 0) {\r
buff.append('(').append(field.length);\r
if (field.scale > 0) {\r
@Override\r
public void prepareCreateIndex(SQLStatement stat, String schemaName, String tableName,\r
IndexDefinition index) {\r
- throw new IciqlException("Dialect does not support index creation!");\r
+ throw new IciqlException("{0} does not support index creation!", getClass().getSimpleName());\r
}\r
\r
@Override\r
public <T> void prepareMerge(SQLStatement stat, String schemaName, String tableName,\r
TableDefinition<T> def, Object obj) {\r
- throw new IciqlException("Dialect does not support merge statements!");\r
+ throw new IciqlException("{0} does not support merge statements!", getClass().getSimpleName());\r
}\r
\r
@Override\r