InstantDB - What's included and excluded


Home Top Next Prev

Please email any bug reports, comments or suggestions to:

peter.hearty@ceasar.demon.co.uk


InstantDB supports all of the the following features.

However, there are several - no make that a lot - of important omissions:

I intend to include many of the above features in later releases. If users have any particular preferences for the order in which these should be implemented then please feel free to say so.

InstantDB databases should only ever be accessed by a single Java Virtual Machine at any one time. Attempting to access an InstantDB database simultaneously from multiple virtual machines will corrupt the database without warning.

Joins are currently only supported in the WHERE clause, e.g WHERE table1.col = table2.col. Joins are not currently supported via the ANSI standard NATURAL JOIN or INNER JOIN phrases in the FROM clause. InstantDB accepts such statements as syntactically correct, but currently ignores them.

The "limited use of indexes" deserves a bit more explanation as well. In the current release, the only time an index gets used is when it is an index on a single column and the expression involving that column is of the form: column=column, or column=constant. Attempt anything more complex and the index is simply ignored. In practise, I'm hoping that this will cover most common requests.

Any use of the keyword OR, will cause all expressions in the tables in the OR clause to be run unoptimised. Trying to optimise OR has turned out to be a major headache which simply lead to a whole succession of bugs.

There is also a limitation on the use of the UNIQUE keyword when use in a CREATE TABLE statment. If several columns are included in a UNIQUE clause, then InstantDB ensures that each column is individually unique. This deviates from the ANSI SQL specification where the columns should be collectively unique. This will be fixed in a future release. For safetys sake, it is recommended that only a single column be used in each UNIQUE clause. Collective uniqueness across multiple columns can be enforced using the CREATE UNIQUE INDEX statement.

Java Compatability

All the classes were compiled using the 1.1 JDK. I've continued to use deprecated methods so that there is at least a chance of it running on older 1.02 virtual machines. Although this is a configuration which is not supported by Sun, it seemed to work OK on the Linux 1.02 VM.

Please note - I intend to move fully to JDK 1.1 shortly, as there are now an increasing number of 1.1 compliant virtual machines available.

I can't claim the 100% pure java badge (that costs money!). However, it does get through the JavaPureCheck test, which should be good enough to be getting on with.


Home Top Next Prev