Reference



|
History
- 2.4, 26th July 1999
- Default recovery behaviour is now to not perform an automatic recovery.
Database property recoveryPolicy added to change default behaviour.
- Recognises noBanner environment variable in order to suppress the
opening copyright message.
- Now allows subselects in the FROM clause of SELECT statements.
- MAX (string column) was failing. Fixed.
- Extensive reorganisation of web site and documenation.
- 2.35, 19th July 1999
- If a column uses a DATE format that does not include hours, then the column will now
store only the date, not the date and time as it did previously. This enables
the NOW keyword to be used to create date only entries and to query such columns
using date only values or the NOW keyword.
- Facilities to specify usernames and passwords while importing from external
data sources have been added.
- Expressions involving currency columns can now handle more natural decimal usage.
- Queries involving EXISTS did not always provide correct results. Fixed.
- Many sub-selects and correlated sub-selects did not produce the correct results. Fixed.
- NULL values were not properly handled in summary queries. Fixed.
- 2.34, 12th July 1999
- Substantial performance improvements to GROUP BY.
- TEXT and LONGCHAR types now assume that only text is included, i.e.
they do not attempt to interpret numbers or filenames.
- The fastUpdate property now applies to BLOB files as well as main
table files.
- ResultsSets being closed by the finalizer thread was still causing
lockups. Made even more resistant to this problem from this release.
- 2.33, 6th July 1999
- ResultSets which were closed by the finalizer thread would sometimes
lock up. This release attempts to make InstantDB less sensitive to this
problem.
- Connections in the READ_UNCOMMITTED transaction mode did not lock
access to the disk read ahead buffer during object instantiation. The
result was an unpredictable series of IO problems. Fixed.
- Index files are now closed while not in use. This can substantially
reduce the number of file handles required to access a database. This
should help users experiencing difficulties where they must operate in
an environment where the number of file handles is limited.
- 2.32, 27th June 1999
- Temporary tables are now allocated in a thread safe manner.
- idbConnection.setTableEncryption and BlobColumn.blobToString had been accidentally
obfuscated. Fixed.
- Various case errors in the documentation fixed.
- ORDER BY tree rebalancing was actually slowing down many queries. Improved.
- New property, ignoreKeywords, has been added. This allows elected InstantDB
reserved words to be "un-reserved" so that they can be used as table or column names.
- 2.31, 30th May 1999
- LIKE expressions can now be used with any data type, not just strings.
- Since the introducution of temporary tables, InstantDB has been creating
all tables with 100% caching. This could lead to memory problems. Fixed.
- A new database property, altStringHashing has been introduced. This allows
the change in String hashing from JDK 1.1 TO 1.2 to be overcome. See
FAQ for details.
- DatabaseMetaData.getTables() now creates temporary tables in a thread safe
manner.
- Subselects in UPDATE calls were not parsed correctly. Fixed.
- 2.3, 24th May 1999
- SQLBuilder query window made larger by default. Commented alternative import
lines in code.
- The BTree sort used during ORDER BY now attempts regular tree rebalancing. Should
help when the data is partially ordered.
- idbTrigger.getConnection(), idbTrigger.preUpdate() and
idbConnection.getProperties() added.
- New SQL command: SHUTDOWN [NOWAIT] added.
- InstantSQL and ObjectToRdbms removed.
- JDBCmain now takes an optional URL as a parameter at startup.
- JDBCAppl now loads the Rmi and bridge drivers as well as idbDriver.
- Implements own String hashing to get around the 1.1/1.2 String hash problem (see
FAQ for details).
- SET EXPORT "null" now shuts down the previous export file allowing it to
be manipulated by other processes.
- INSERT and UPDATE didn't accept table.col style column references. Fixed.
- CSVDELIMITED exports space padded the final field. Fixed.
- EXPORT command now has an optional QUOTE <string expr> clause.
The QUOTE clause allows each field output to be quoted using the given
character. e.g. SET EXPORT "mylog.txt" CSVDELIMITED QUOTE "\"", would
put double quotes around each field as was output.
- New database property: likeIgnoreCase. Setting this to 1 (one) causes all
LIKE string comparsions to be case insensitive.
- 2.2, 1st May 1999
- UPDATEs on AUTO INCREMENT columns after an ALTER TABLE caused values to
accidentally increment. Fixed.
- Bug in DBSimpleInterface.java. Fixed.
- Doing a buffered import from an empty source would cause an IO exception. Fixed.
- LONGVARBINARY data type caused an exception. Fixed.
- ResultSet.getBinaryStream() caused an exception when an empty results set was
returned. Fixed.
- Some database controls supplied with certain IDEs would call ResultSet.close()
on an already closed ResultSet. InstantDB threw an exception on this, which is correct.
Nevertheless, it still prevented InstantDB being used with those controls. InstantDB
now silently ignores multiple close calls on the same ResultSet.
- 2.1, 11th April 1999
- SMALLINT and TINYINT pseudonyms added for INTEGER and BYTE respectively.
- Accepts an optional length parameter on binary fields. This is for
compatability with other SQL implementations only and is currently ignored.
- Uses a Date column's own date format when parsing dates. Only if this fails
will alternative date formats be tried.
- Now accepts date/time escape sequences in UPDATE statements.
- Negative values could not be read into currency columns. Fixed.
- A single character question mark when used as a string literal (i.e. "?")
was being misinterpreted as a parameter in prepared statements. Fixed.
- 2.00, 28th March 1999
- Added support for multiple simultaneous database access for the first time.
- Optimisation of integer equality testing.
- GROUP BY ... HAVING added.
- Support for database encryption added.
- Results sets now held in memory by default. resultOnDisk property
added to overide this default behaviour.
- Many new DatabaseMetaData calls added. This should ease compatability
with many common IDE database controls.
- CREATE INDEX on an unknown table caused a NullPointerException. Fixed.
- Updated RmiJdbc installation instructions.
- Can create temporary tables using CREATE TEMPORARY TABLE.
- Added new statement: SET table AUTO INCREMENT {ON|OFF}.
- Removed the sqlsyntax.txt file.
- 1.91, 1st January 1999
- Added support for imports from other JDBC data sources.
- Class files now run under the released Java 2 (formerly 1.2) JVM.
- DatabaseMetaData.getTables() now distinguishes between system
and user tables.
- Buffered IMPORTs speeded up to make use of the write buffer for
row lookahead during index construction.
- Table locking was not always properly ordered in auto-commit
statements. This could lead to deadlocks. Fixed.
- 1.9, 20th December 1998
- ALTER TABLE support added.
- The Sample scripting program now has some limited looping support.
- Defaults for types other than Char types now work correctly.
- Testing for NULL on a UNIQUE column would fail. Fixed.
- Circular references amongst joins would lead to infinite recursion. Fixed.
- Expressions which evaluated to a series of constants would fail. Fixed.
- Looking up a double column using a float value was subject to float roundoffs. Fixed.
- If there was only a single deleted row, and the row counts were out of sync,it
was possible for a valid row to be marked deleted. Fixed.
- Calling ResultSet.close() on an already closed results set caused a NullPointerException. Fixed.
- NOT LIKE clauses gave incorrect results. Fixed.
- 1.87, 5th November 1998
- Various INDEX bugs sorted. Users who frequently UPDATE or DELETE rows in a table are
advised to DROP and then re-create any indexes on such tables.
- Some performance improvements in ORDER BY.
- Would somtimes fail to find the indexes table when absolute paths were used. Fixed.
- Expressions - certain String null values would cause an exception. Fixed.
- Function evaluation where row selection included multiple conditions from the same table
could generate an exception. Fixed.
- 1.86, 11th October 1998
- PreparedStatement.clearParameters() caused an exception on the next execute if the
prepared statement did not have any parameters. Fixed.
- If a results set had column names of the form: "table.column", then doing a getXXX
with just the column name would fail to match. Fixed.
- All path names now converted to the correct path separator character, regardless of
the values supplied in the URL or in the properties file.
- SELECT COUNT(*) FROM table WHERE expression would return an empty result set if no
rows matched. Now returns a single row result set with the value 0. Similar problems
with SUM have also been fixed.
- A SELECT with an ORDER BY clause, when used on a readonly database would lead to a
nullPointerException. Fixed.
- Changes to SQLBuilder to avoid some bugs and add layout managers to the main panels.
Curtesy of Mark Ford.
- 1.85, 27th September 1998
- An attempt to optimise row lookahead in 1.82 actually had the opposite affect.
Modified in this release.
- PreparedStatement.setXXX(), where XXX was any numeric type would fail on execution. Fixed.
- InstantDB was hanging on to Transaction objects and Thread names long after the
objects had ceased to be useful. This lead to a slow, but steady growth in the memory
footprint for users who frequently re-connected or frequently created new threads. Fixed.
- 1.84, 19th August 1998
- Prepared statements did not respond correctly to strict literal usage. Fixed.
- Auto-increment columns could be accidentally incremented during a recovery. Fixed.
- ORDER BY on results sets which included binary data could generate an internal error. Fixed.
- With the strict literals off option, any string off the form "aaaa.bbbb" would be interpreted
as "table.column". This is no longer the case.
- 1.83, 10th August 1998
- Patch to Table.class to fix a disk read ahead overflow error introduced in 1.82.
- 1.82, 9th August 1998
- 1.81, 28th July 1998
- Instead of sync()ing after every database write, sync()s were restricted
to transaction completion. Helps improve performance.
- 1.8, 26th July 1998
- Removed all calls to deprecated APIs. Database engine now 1.1 compliant.
- Move to 1.1 enabled use of java.io.FileDescriptor.sync() method. Should greatly
increase the reliability of the database in the event of unexpected program termination.
- Expressions of the form SELECT value FROM table WHERE value LIKE "" (empty LIKE clause)
would fail. Fixed.
- Expressions inside numeric reporting functions, e.g. SUM (a+b), were not evaluated
correctly. Only the first term in the expression was included. Fixed.
- Insert statements that included a sub-select which included a date would fail. Fixed.
- 1.7, 31 May 1998
- Major re-write of prepared statement handling. Prepared statements now execute
up to 30% faster.
- Support for PreparedStatement.setBytes() and setObject() added.
- Examples modified to use Class.forname("idbDriver").newInstance(). Class.forName()
by itself was insufficient for some JVMs.
- JBuilder can generate clauses of the form WHERE "numcolumn" = "123". InstantDB
previously interpreted all quoted strings as string literals. Quoted column names
are now recognised and quoted integers are interpreted as numbers where necessary.
- Now generates an exception for unimplemented JDBC methods.
- Expressions of the form ((col1+col2)+col3) were incorrectly evaluated. Fixed.
- Can now recover from inconsistent deleted row counts.
Earlier history information is available upon request.
|