Login | Register
My pages Projects Community openCollabNet

Axion: Features

Some Background

Despite its beta state, Axion is not a toy database. It has been (and continues to be) used in commercial products containing millions of rows and gigabytes of data, and has been shown to readily process thousands of transactions a second (on mediocre desktop hardware).

These early applications had somewhat peculiar needs--a high performance, small footprint but fairly large, primarily write-once, in-process database. Hence most of the initial development has focused on these features. Yet the Axion team aims to provide a complete engine as well, and we believe we are well on our way to that goal.


Supported Features

DDL
  • ALTER TABLE [DROP|ADD] CONSTRAINT

  • CREATE TABLE [IF NOT EXISTS]

  • CREATE [UNIQUE] INDEX [IF NOT EXISTS]

  • CREATE SEQUENCE [IF NOT EXISTS] ... [ STARTS WITH ...]

  • CREATE VIEW

  • DROP TABLE [IF EXISTS] ...

  • DROP SEQUENCE [IF EXISTS] ...

  • DROP INDEX [IF EXISTS] ...

  • DROP VIEW

  • DEFAULT expression (in column definitions)

DML
  • DELETE

  • INSERT

  • INSERT INTO ... SELECT ..

  • UPDATE

  • TRUNCATE TABLE

DQL
  • SELECT [ALL|DISTINCT] ... [FROM ...] [WHERE ...] [ORDER BY ...] [LIMIT expression] [OFFSET expression]

  • CASE (WHEN ... THEN)+

  • LEFT and RIGHT OUTER joins, INNER joins, cross joins

  • LIMIT (SELECT ... LIMIT n)

  • OFFSET (SELECT ... [LIMIT n] OFFSET m)

  • ORDER BY (including functions, non-selected columns, etc.)

  • GROUP BY

WHERE
  • <, <=, =, >, >=, !=, <>

  • IS [NOT] NULL

  • IN (literal1, literal2, ...)

  • AND, NOT, OR

  • LIKE

JDBC
  • BLOBs (including compressed BLOBs)

  • CLOBs (including compressed CLOBs)

  • Driver

  • DataSource

  • most (relevant) JDBC meta-data

Miscellaneous
  • aggregate functions (operating on multiple rows, like COUNT or MAX)

  • auto-number columns (via sequences and column defaults)

  • configurable data type and function names

  • pluggable data types

  • pluggable functions

  • pluggable index types

  • pluggable table types

  • ROWNUM and SYSDATE (like Oracle's pseudo-columns)

  • scalar functions (operating on a single row, like UPPER/UCASE or CONCAT)

  • sequences (including NEXTVAL and CURRVAL)

  • transactions (snapshot isolation, stronger than TRANSACTION_SERIALIZABLE, with no locking)

  • sub-selects

See Axion's test suite for examples of these features in action. See the tidbits page for some additional features.


Not (Yet) Supported Features

  • HAVING

  • client/server mode

  • stored procedures

  • triggers (note that default column values are supported)

  • user-level security

Many of these features aren't that far away, we simply haven't had significant need for them just yet. If there are missing features that are critical to you, let us know, we may be able to provide them sooner than you think. (Of course, you're welcome to join us as well.)



Axion - Open Source Java Database Engine
$Id: features.html,v 1.58 2007/11/15 15:09:27 rwald Exp $
Published 15 Nov 2007 at 3:07 PM GMT.