This document describes the changes that have been made between the Milestone 1 and Milestone 2 releases of Axion.
A bug which prevented the creation of indexes containing non-Comparable data types was addressed. See http://axion.tigris.org/issues/show_bug.cgi?id=5.
In M1, the ORDER BY clause was being applied after any LIMIT or OFFSET clause, leading to unexpected results. This has been corrected.
Clob encoding made explicitly UTF8, used to use default platform encoding. This meant databases weren't always portable across platforms.
Transactional behavior of LOBs improved.
Added support for functions that take more than zero arguments to INSERT statements. Previously only no-argument functions were allowed.
Added support for addBatch, clearBatch and executeBatch to both Statement and PreparedStatement.
Added support for now()
and SYSDATE
pseudo-column.
Added support for ResultSet.first and ResultSet.beforeFirst.
Added support for DROP TABLE tablename IF EXISTS
.
(See [PATCH] CASE EXPRESSION AND DROP TABLE IF EXISTS.)
Added COALESCE
function.
(See [PATCH] CASE EXPRESSION AND DROP TABLE IF EXISTS.)
Added IFTHEN
function.
(See [PATCH] CASE EXPRESSION AND DROP TABLE IF EXISTS.)
Added support for CASE
expressions. For example:
select case when a = 1 then 'X' when a = 2 then 'Y' else 'Z' from [...]
(See [PATCH] CASE EXPRESSION AND DROP TABLE IF EXISTS.)
Added support for LIKE
clauses.
(See LIKE functionality implemented.)
LOB conversion made more flexible and robust. CLOBs can now be set as Strings or Clobs as well as via the I/O methods. LOBs can now be set as byte arrays or Blobs as well as via the I/O methods.
Added BASE64ENCODE
and BASE64DECODE
functions.
Added "run on startup" database initialization script support.
BTree index performance significantly improved. (See btree index performance improved by ~100x.)
Disk DML operation performance significantly improved by batching up all the changes within a single transaction for a single "apply". (See Re: Performance of Axion inserts.)
Added arbitrarily-sized NUMBER type added (backed by BigDecimal).
Added support for LEFT
and RIGHT
OUTER
joins, as well as true INNER
join syntax.
SELECTs like the following are now supported (in addition to the "cross join" and Oracle-style outer join syntax supported in previous releases):
SELECT * FROM t1 INNER JOIN t2 ON (t1.c1 = t2.c2) SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.c1 = t2.c2) SELECT * FROM t1 RIGHT OUTER JOIN t2 ON (t1.c1 = t2.c2) SELECT * FROM t1 JOIN t2 ON (t1.c1 = t2.c2) /* implicit inner join */ SELECT * FROM t1, t2 /* cross join */ SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2 /* cross join with where */
Added base JDK 1.4/JDBC 3 support. Axion now (minimally) supports JDBC 3 and JDK 1.4. Axion will run under JDK 1.3 and 1.2 JVMs, but will only compile under JDK 1.4.