summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorJames Moger <james.moger@gmail.com>2011-08-15 16:44:14 -0400
committerJames Moger <james.moger@gmail.com>2011-08-15 16:44:14 -0400
commit66e810aaf212c5e37b0a1702b6c33480595408ce (patch)
tree2babeea368dec0023b9a2add5b3ddc2c1aaaeea8 /docs
parent3622ae0026718ac8466e13e8011f8db309d89106 (diff)
downloadiciql-66e810aaf212c5e37b0a1702b6c33480595408ce.tar.gz
iciql-66e810aaf212c5e37b0a1702b6c33480595408ce.zip
Added Derby dialect. Finished HSQL dialect. Documentation.
* Improved DEFAULT value specifications. * Fixed bug in buildObjects where the ResultSet could be closed by the automatic create table attempt. * DbInspector now uses the dialect's reported DATETIME class preference. * Improved IciqlException SQLState code checks. * Integrated LIMIT and OFFSET expression appending in dialects. * Updated to H2 1.3.159 * Allow reopening of a memory database in the test suite.
Diffstat (limited to 'docs')
-rw-r--r--docs/00_index.mkd12
-rw-r--r--docs/02_usage.mkd24
-rw-r--r--docs/03_natural_syntax.mkd23
-rw-r--r--docs/03_performance.mkd16
-rw-r--r--docs/05_building.mkd1
-rw-r--r--docs/05_releases.mkd11
6 files changed, 58 insertions, 29 deletions
diff --git a/docs/00_index.mkd b/docs/00_index.mkd
index f86e396..b3e8cbf 100644
--- a/docs/00_index.mkd
+++ b/docs/00_index.mkd
@@ -5,7 +5,7 @@ iciql **is**...
- a model-based, database access wrapper for JDBC
- for modest database schemas and basic statement generation
- for those who want to write code, instead of SQL, using IDE completion and compile-time type-safety
-- small (120KB) with no runtime dependencies
+- small (125KB) with no runtime dependencies
- pronounced *icicle* (although it could be French: *ici ql* - here query language)
- a friendly fork of the H2 [JaQu][jaqu] project
@@ -35,9 +35,13 @@ select * from products
</tr>
</table>
-### Supported Databases
-- [H2 1.3](http://h2database.com)
-- [HSQLDB 2.2](http://hsqldb.org)
+### Supported Databases (Unit-Tested)
+- [H2](http://h2database.com) 1.3.159
+- [HSQLDB](http://hsqldb.org) 2.2.4
+- [Derby](http://db.apache.org/derby) 10.7.1.1 & 10.8.1.2
+
+### Partially Supported Databases (not Unit-Tested)
+- [MySQL](http://mysql.com)
Support for others is planned and may only require creating a simple "dialect" class.
diff --git a/docs/02_usage.mkd b/docs/02_usage.mkd
index 2659e86..fe4801b 100644
--- a/docs/02_usage.mkd
+++ b/docs/02_usage.mkd
@@ -65,6 +65,30 @@ List&lt;Product&gt; allProducts = db.buildObjects(Product.class, rs);
JdbcUtils.closeSilently(rs, true);
%ENDCODE%
+### Natural Syntax
+
+**work-in-progress**
+
+The original JaQu source offers partial support for Java expressions in *where* clauses.
+
+This works by decompiling a Java expression, at runtime, to an SQL condition. The expression is written as an anonymous inner class implementation of the `com.iciql.Filter` interface.
+A proof-of-concept decompiler is included, but is incomplete.
+
+The proposed syntax is:
+%BEGINCODE%
+long count = db.from(co).
+ where(new Filter() { public boolean where() {
+ return co.id == x
+ &amp;&amp; co.name.equals(name)
+ &amp;&amp; co.value == new BigDecimal("1")
+ &amp;&amp; co.amount == 1L
+ &amp;&amp; co.birthday.before(new java.util.Date())
+ &amp;&amp; co.created.before(java.sql.Timestamp.valueOf("2005-05-05 05:05:05"))
+ &amp;&amp; co.time.before(java.sql.Time.valueOf("23:23:23"));
+ }
+ }).selectCount();
+%ENDCODE%
+
### JDBC Statements, ResultSets, and Exception Handling
Iciql opens and closes all JDBC objects automatically. SQLExceptions thrown during execution of a statement (except for *close()* calls), will be caught, wrapped, and rethrown as an `IciqlException`, which is a RuntimeException.
diff --git a/docs/03_natural_syntax.mkd b/docs/03_natural_syntax.mkd
deleted file mode 100644
index a91c5b8..0000000
--- a/docs/03_natural_syntax.mkd
+++ /dev/null
@@ -1,23 +0,0 @@
-## Natural Syntax
-
-**work-in-progress**
-
-The original JaQu source offers partial support for Java expressions in *where* clauses.
-
-This works by decompiling a Java expression, at runtime, to an SQL condition. The expression is written as an anonymous inner class implementation of the `com.iciql.Filter` interface.
-A proof-of-concept decompiler is included, but is incomplete.
-
-The proposed syntax is:
-%BEGINCODE%
-long count = db.from(co).
- where(new Filter() { public boolean where() {
- return co.id == x
- &amp;&amp; co.name.equals(name)
- &amp;&amp; co.value == new BigDecimal("1")
- &amp;&amp; co.amount == 1L
- &amp;&amp; co.birthday.before(new java.util.Date())
- &amp;&amp; co.created.before(java.sql.Timestamp.valueOf("2005-05-05 05:05:05"))
- &amp;&amp; co.time.before(java.sql.Time.valueOf("23:23:23"));
- }
- }).selectCount();
-%ENDCODE% \ No newline at end of file
diff --git a/docs/03_performance.mkd b/docs/03_performance.mkd
new file mode 100644
index 0000000..1996dc2
--- /dev/null
+++ b/docs/03_performance.mkd
@@ -0,0 +1,16 @@
+
+## Performance
+
+The information provided here may be based on flawed test procedures. You have to be the judge of what is performant and non-performant.
+
+### iciql statement generation
+
+Performance of iciql statement generation is not currently benchmarked but that is planned.
+
+### iciql+database performance comparison
+
+The following data was generated by running the iciql test suite. The suite is almost completely single-threaded. All databases are run in embedded *memory-only* mode through a JDBC connection. Since the suite is running in memory-only mode, disk IO bottlenecks should be removed from the equation and the results should be measuring raw statement processing.
+
+<pre>
+%DBPERFORMANCE%
+</pre> \ No newline at end of file
diff --git a/docs/05_building.mkd b/docs/05_building.mkd
index 6e6196a..8a4f45b 100644
--- a/docs/05_building.mkd
+++ b/docs/05_building.mkd
@@ -10,6 +10,7 @@ Additionally, [eclipse-cs](http://eclipse-cs.sourceforge.net), [FindBugs](http:/
### Build Dependencies (downloaded during build)
- [H2 Database](http://h2database.com) (Eclipse Public License 1.0)
- [HSQL Database Engine](http://hsqldb.org) (BSD)
+- [Apache Derby Database](http://db.apache.org/derby) (Apache 2.0)
- [JUnit](http://junit.org) (Common Public License)
- [commons-net](http://commons.apache.org/net) (Apache 2.0)
- [ant-googlecode](http://code.google.com/p/ant-googlecode) (New BSD)
diff --git a/docs/05_releases.mkd b/docs/05_releases.mkd
index c6d84e1..91ef18f 100644
--- a/docs/05_releases.mkd
+++ b/docs/05_releases.mkd
@@ -6,10 +6,17 @@
**%VERSION%** ([zip](http://code.google.com/p/iciql/downloads/detail?name=%ZIP%)|[jar](http://code.google.com/p/iciql/downloads/detail?name=%JAR%)) &nbsp; *released %BUILDDATE%*
-- fixed failure of db.delete(PrimitiveModel) and db.update(PrimitiveModel)
+- Disabled 2 concurrency unit tests since I believe they are flawed and do not yield reproducible results
+- Added Derby database dialect. Derby 10.7.1.1 and 10.8.1.2 pass 100% of tests.
+- Implemented HSQL MERGE syntax. HSQL 2.2.4 fails 1 test which is a known [bug in HSQL](https://sourceforge.net/tracker/?func=detail&aid=3390047&group_id=23316&atid=378131)
+- Updated to H2 1.3.159
### Older Releases
+**0.6.5** &nbsp; *released 2011-08-12*
+
+- fixed failure of db.delete(PrimitiveModel) and db.update(PrimitiveModel)
+
**0.6.4** &nbsp; *released 2011-08-12*
- api change release (API v4)
@@ -28,7 +35,7 @@
- added HSQL dialect. HSQL fails 4 out of 50 unit tests.
- 2 failures are unimplemented merge
- 1 has been filed and accepted as a [bug in HSQL](https://sourceforge.net/tracker/?func=detail&aid=3390047&group_id=23316&atid=378131)
- - 1 is a concurrency issue, but the test may not be flawed
+ - 1 is a concurrency issue, but the test may be flawed
- added untested MySQL dialect
- renamed <b>_ iq_versions</b> table to *iq_versions* since leading _ character is troublesome for some databases.
- @IQColumn(allowNull=true) -> @IQColumn(nullable=true)