|
Quadcap Embeddable Database
Quadcap Software
|
Version 3.4, May 17, 2004
- sql: In-memory mode is now fully supported.
- sql.tools:
XmlDump now dumps global index objects.
- sql: Fix bug which caused a case-insensitive compare for a delimited
identifier.
- sql: Implement extension:
ALTER TABLE ... RENAME TO.
- sql: Optimize non-correlated subqueries, so that we only perform
the subquery once, and cache the results in a temporary index
structure.
- sql: Fixed bug in
COUNT(DISTINCT ..) introduced by 3.3
aggregate optimization patches.
- sql.file: Make scratchCacheSize configurable from connection string
- jdbc: Fix bug in
DatabaseMetadata.getColumns() where
default value expressions were getting evaluated instead of being
returned as literal SQL expressions.
- jdbc: Fix precision of float types in
DatabaseMetadata.getTypes() to match Java/IEE754
- sql.tools: Fix bug where running
XmlDump or
XmlLoad multiple times from the same JVM failed due
to overeager caching of jdbc.url and other
connection parameters.
- sql: Fix encryption; broken in version 3.3
- sql: Performance enhancements and optimzations to speed up
evaluation of
IN expressions.
- sql: Fix bug in
LIKE causing StringIndexOutOfBoundsException
with escape sequences and certain string values.
- jdbc: Fix ResultSetMetaData.getColumnDisplaySize -- previously
this returned the max of the actual column data width and the
column name width; now this returns simply the width of the column's
data.
- sql: Fix bug which could cause incorrect BLOB data when recovering
UPDATE operations on database restart.
- sql: Fix parser to support parsing Unicode data. QED always
supported Unicode strings, but the parser was basically limited
to ISO-8859-1.
Version 3.3, December 1, 2003
- jdbc:
ResultSet.moveToInsertRow() should clear the
insert row even if it's already on the insert row.
- sql: Work around for Samba bug 725, thus permitting QED to
be run on Samba shares.
- sql: Fix deadlock situation by eliminating separate 'connLock'
monitor.
- sql: Fix missing exception on
DROP TABLE of bogus
table.
- sql:
DROP TABLE now properly drops secondary indices
on that table created using CREATE INDEX.
- sql: Fix recovery bug caused by stale cache entries. Now revert
the cache immediatley after recovery on restart.
- sql: Add support for
COMMIT, ROLLBACK
statements in the SQL grammar, to allow transaction control directly
from SQL scripts.
- sql: Fixed comparator bug which could cause erroneous seek results
on large datasets with integer keys.
- sql: Fixed some bugs in the 'DataOutputStream' implementation
that could show up in tables with very large rows.
- sql: Optimized implementations of
MIN(column)
and MAX(column) for indexed columns. Also
implemented the COUNT(*) short-cut.
- sql: Initial implementation of in-memory mode, not working yet....
- sql: Cleanup handling of nested exceptions
- sql.file: Fix bug in restart where log maxSize information could
be lost.
- sql.index: Fix bug in
BtreeCusror.afterLast() which
could cause problems in large indexes.
Version 3.2, September 19, 2003
- general: Eliminate some unused imports
- general: Other JMD-inspired cleanups
- sql.file: Clean up 'delete crash' bug (thanks, Bernard)
caused by misuse of recovery rowMap (Delete test)
- sql: Fix null pointer exception in bogus foreign key delete.
(CannotDrop test)
- sql: Fix predicate cursor 'absolute' implementation (Asbolute bug)
- sql: Correct 'Table not found' message in 'ADD COLUMN'
- sql: Change default in DROPs from CASCADE to RESTRICT
(CannotDrop test)
- sql.types: Fix setObject(byte[]) conversion to BLOB
(XMLLoadBinary test)
- sql: Fix pattern (LIKE) bugs (thanks Bernard)
- sql:
SELECT foo.* FROM bar ... now throws the
expected exception if 'foo' isn't valid
- sql:
ALTER TABLE ADD COLUMN now throws the expected
exception if the named column already exists.
- jdbc: Fixed bug with
ResultSet update operations, which
were broken in 3.1
- jdbc: Fixed bug in
ResultSetMetaData.getColumnType
where expressions had type 'OTHER' instead of the actual type.
Version 3.1, June 1, 2003
- sql.file: A more space-efficient serializer was created using
leading zero suppression, yielding a ~20% reduction in datafile
sizes...
- sql.file: Added 'encrypt' option, which uses user+password
to create a Rijndael/AES (128 bit) key. This key is used to
encrypt each block of the file except block zero. The magic
code (first two bytes) for an encrypted file is
0e0c. (normal: 040c)
For an encrypted datafile, the admin/key user+password is
hashed and stored in block zero for authentication of the
initial connection -- subsequent connections are not authenticated.
- sql.file: Change default min/max sync interval to 15-60 seconds
- jdbc.ResultSet now has much more complete support for JDBC 2.0
features. Everything that made sense to implement was done in this
pass:
- Correct handling of 'on insert row' and 'on update row'
states.
cancelRowUpdates() implemented.
refreshRow() implemented.
relative() implemented.
rowDeleted(), rowInserted,
rowUpdated() implemented.
setFetchDirection() "implemented" (as no-op).
- Fixes for
isLast(), absolute(),
etc.
- jdbc.PreparedStatement:
- JDBC escape handling was disabled!
setObject() now supports
java.sql.Blob,
java.sql.Clob types.
- jdbc.ResultSetMetaData: Fix
isAutoIncrement()
- jdbc.MultiDriver: Added a new JDBC driver which uses its own
classloader to load old QED driver versions, to provide access
to old-version QED datafiles.
- SQL: Undo of
DROP COLUMN put the column back in
the wrong position!
- sql.tools: XmlDump now uses
ResultSetMetaData.isAutoIncrement() to
determine presence of WITH IDENTITY
constraints, thus remaining, theoretically,
JDBC-standard-compliant (i.e., you could use XmlDump with
antother JDBC driver to dump a database in XML
format...)
- sql.tools: QED, starting with 3.0, includes the view creation
DDL in the
COMMENTS field of the result set returned
by DatabaseMetadata.getTables().
sql.tools.XmlDump uses this field, but didn't properly
handle the case where this field might be null, as with pre-3.0
QED drivers.
- sql: For
ADD COLUMN WITH IDENTITY,
id values are now built into rows initially, eliminating the
need for an extra pass over the data to add the identity
value.
- sql: For
WITH IDENTITY constraints,
manual insertion of
a key value forces the autonumber identity values to increase to
match. This strategy makes it easy to reload
auto-number-generated databases.
- sql.file: The "scratch" file is now explicitly refcounted,
to protect from purges based on the "transaction table empty"
state..
- sql.types: Remove Type.isAutoIncrement()
- sql: Add Column.isAutoIncrement(), based on
AutoNumberConstraint...
- sql: Constraint: ensure
colNames is never null.
This simplifies life later...
- sql: Constraints: add explicit 'resetColumns' logic for foreign
key constraints.
- sql: Fix bug in rollback of partially completed
ADD CONSTRAINT statements.
- sql:
ADD CONSTRAINT now checks for duplicate
constraints
- sql: Fixes (and complete testing) for bugs relating to
empty authorization string
- sql.tools:
XmlDump fixes for BLOBs.
- sql: Fixes to ensure proper handling of views with (or without)
the
VIEW CHECK OPTION
- sql: Fix bug with delimited identifiers
- sql: Fixes for
DECIMAL types.
- sql: Fixes for bug found in
ALL, ANY
- sql: Ensure that single row sub-selects really select only
a single row.
- sql: Precedence of
UNION should be left to right.
Now it is.
- sql: Improved version of grammar that handles all
JOIN
cases with correct precedence.
- text.sax: Add support for
Locator
Version 3.0, March 13, 2003
- jdbc.DatabaseMetaData: Major improvement in this area, as
several typical "first moves" by various SQL clients turned
out to not work. All of the required metadata is available
now, and the only thing that's really just a stub is the
stuff for
getCatalogs().
- SQL: major rewrite of the logging implementation. First, a
clean API to the logging subsystem was introduced, allowing
pluggable logging implementations. There are two implementations,
one is a no-op logger for applications which don't need rollback
and recovery; the other is a complete implementation using a
RandomAccessFile. The old
log.xxx files are gone,
replaced by a single logfile with a configurable max size.
- SQL: Major overhaul of cursor implementation, including
bidirectional movement and a better implementation with fewer
memory allocations, so less gc thrashing.
- SQL: Streamline common case of
INSERT ... VALUES
- SQL: implemented
ALTER TABLE DROP COLUMN,
and tightened up
the implementation of ADD COLUMN, as well.
- SQL: implemented SQL92
CASE expression.
- SQL: implemented SQL92
UNIQUE (table-expr)
predicate
- SQL: fixed bug with
EXCEPT CORRESPONDING implementation
- SQL: Fixed bug in
COUNT DISTINCT aggregate
evaluation with NULL values.
- SQL: Fixed bug with
DELETE where delete of
more than 1000 rows generated "Bad block" exception.
- all: Reviewed debug code to ensure that it didn't end up
in release builds.
- SQL: Adding a
WITH IDENTITY column should have caused
the newly added column to be numbered also, but this wasn't
happening.
- SQL: fix statement update counting, which had failed to
count anything except inserts!
- SQL: fix several recovery bugs caused by improper database
sync logic; thanks to Jeremy Wechsler for finding this
problem.
- SQL: Fixed implementation of aggregate expressions by separating
the session-specific state from the database-shared portion of
the expression, allowing concurrent access (generally through views)
to the "same" aggregate expression.
- SQL:
WITH IDENTITY now starts counting at one.
- SQL: Fix bug with constraint ordering
- JDBC: Fixed bug with
PreparedStatement.setClob() and
PreparedStatement.setAsciiStream().
- all: Doc comment cleanup.
- webapp/qed: Added more buttons for the newly implemented
DatabaseMetaData calls.
- TEST: Fix 'Fill' test spreading function
- TEST: Add 'jdbc' test suite
- SQL: Fix problem with BLOBs and CLOBs when data is inserted into
a table from a sub-SELECT -- the non-updateable cursor passed into
InsertRow prevented proper type conversion of BLOB values.
- SQL: Handle 'log full' condition by aborting the oldest
transaction.
- SQL: Fix the implementation of
NULLIF, which
was erroneously doing the same thing as IFNULL!
- SQL: Got rid of a few locks (
Btree.activeCursors,
BtreeCursor.staticLock), replacing them with the
global file lock, to eliminate possible deadlock conditions.
- SQL: Fixed blob/clob leak.
- SQL: Fixed several end cases regarding consistency checking
of foreign key constraints, and operation of foreign key constraints
under rollback.
Version 2.2, July 14, 2002
- sql: Streamlined the sync process, eliminating the need to
hold a database lock. This removes the deadlock case that got
introduced in 2.1.
- sql: Removed a potential deadlock in the BLOB logging logic.
- sql: More work on test framework; a killer one-minute
quick-regress, plus more stuff in the large regress than ever.
New tests for various end cases: Connection/Statement/ResultSet
leaks, reuse of close object, etc.
- sql: Added timeout to lock calls, as a first step toward preventing
deadlock (The next thing here is probably some kind of cycle
detection logic in the locking layer to prevent any deadlock
wait from occurring in the first place.)
- sql: Fixed 'lack-of-qualifier' bug which caused indexes to
go into the database without their user/schema prefix
- sql/file: Improve sub-page allocator initialization strategy
to work over a wider range of page sizes.
- sql: Ensure transaction numbers aren't reused by using the
database root to keep track of transaction id allocations.
(We're allocate in blocks of 256 in order to avoid thrashing
the root.)
Version 2.1.1, June 12, 2002
- sql:
WITH IDENTITY reared it's ugly head again, with
a bug that just missed the 2.1 release. Apologies for the regression
here, but the testcase that caught this got missed in the transtion to
the new ant-based build/test structure for 2.1....
- sql: Protect against attempt to execute against a closed connection.
- sql: Added a new trace bit to get just
Session.doStep() invocations; very useful.
Version 2.1, June 10, 2002
- sql: Rationalization of debugging 'trace' flags
- sql: Fixed bug resulting when deleted rows in a not-yet-committed
transaction might get reallocated to another transaction.
- JDBC: 3.0 "compliant" now, meaning that QED compiles against 3.0,
even though most of the interesting new features aren't supported.
- Simplify some of the locking logic by reducing the number of
objects which can be monitors, eliminating the potential for deadlock.
Fully synchronize the database open/close logic as well as
all schema manipulation code.
- SAX parser: Replace
ParserFactory.makeParser() call with
explicit ClassLoader/Class logic to work around problem
caused by the bundling of org.xml.sax.ParserFactory
with the runtime (being loaded by the boot ClassLoader makes
the call to Class.forName() from
ParserFactory.makeParser() fail.
- sql: Simplify
LazyRow implementation
- sql: Fixed bug in parsing of 64 bit integer literals.
- sql: Optimize temp table implementations to reduce memory allocations
- build system: switched from make to Ant. Long live Ant.
Version 2.0, April 10, 2002
- sql: The big change in this release, and the reason for the
change to 2.0 instead of 1.0.4 is the conversion of store addresses
from 32 to 64 bits.
LAST_INSERT_ID is now also
a long, 64 bits.
- sql: Fix "unclosed connections leak" bug, reported by Frantisek
Ruzicka.
- sql: Eliminate
session
state in Expression by removing
Expression.execute()
and passing session to getValue().
This opens
the way to more concurrency, and prevents some possible problems with
multiple accessors of the same view.
- Increase default blockSize from 4K to 16K.
Increase default cacheSize from 256K to 4M.
- sql: Fixed failures in many common
CLOB uses.
- sql: Add missing 'synchronized' to the database close path, to
avoid a race if another connection is trying to open.
- sql: Streamlined
WITH IDENTITY handling for better
efficiency and reliability.
- sql: Streamline database sync logic; force sync on last connection
close.
- sql: Add explicit schema locks for schema manipulations such
as
CREATE TABLE, ALTER TABLE, etc.
- sql: Revamped
DROP TABLE to better handle the
CASCADE case; fixed several bugs in this path relating
to foreign key constraints.
- sql: Fix problem relating to failed recovery of
UPDATE
operations.
- sql tests: Added new test framework, allowing multi-threaded
stress testing using the functional unit tests.
Version 1.0.3, December 10, 2001
- jdbc: Restructured
Connection/Statement
implementation to more
closely match JDBC's specification for handling of per-Statement
ResultSets. This change permits multiple
ResultSets to be active
simultaneously on different Statements, which didn't work very
well before. (This fixes the "nested ResultSet" bug originally
reported by David Stoner.)
- jdbc: canonicalize the database path name for comparison, to
deal with case insensitive file systems like Windows. Fixes
a bug repored by Jaidev Haridas.
- jdbc: overhauled the various
ResultSet.getXXX() methods to
perform consistent SQL conversions.
- sql: Numerous performance enhancements, particularly in
UPDATE statements, SELECT COUNT(*),
and transaction commit. Transaction commit in particular is improved
by use of a dedicated thread to perform the file syncs.
- sql: Fixed problem with recovery of
WITH IDENTITY
constraints, reported by Jaidev Haridas.
- sql: Improve handling of
INITIALLY DEFERRED
constraints.
- sql: Get rid of
WeakReference treatment of
ResultSets, just let the gc happen.
- sql: Fixed several locking bugs which had led to some over-zealous
synchronization. This should improve concurrency and performance
generally.
- sql.types: Have mostly beaten
INTERVAL into
submission. All of the goofy FIPS interval tests now pass.
(Does anybody actually use SQL92 intervals?)
- sql.types: Fixed several type conversion bugs in the process of
debugging a new, better test for
ResultSet.getXXX() methods.
- sql.file: Fixed statement rollback bug that could occur if a
log-file rollover caused by
sync() had intervened
since the beginning of the statement.
- sql.file: Improve the recovery code's ability to find the end of
the log file.
- sql.lock: Locks are no longer pooled. This wasn't buying us
anything -- now the "LockPool" simply keeps a
SoftReference
to the lock.
- sql.lock: Fix deadlock problem caused by the
LockManager's
refusal to promote locks from S to X mode.
- sql: Parser is now more forgiving of extraneous trailing semicolons.
- sql: New connection parameter
isCaseSensitive (default
true) to provide support for case insensitive applications.
This feature is experimental, and may change in future releases.
In particular, as we decide to add support for SQL92 COLLATIONs.
Version 1.0.2, October 23, 2001
- jdbc: JDBC Url syntax now allows for semi-colon separated connection
parameters, e.g.: jdbc:qed:db;create=true
- jdbc: Fix problems with handling of
null in
various ResultSet.getXXX()
and PreparedStatement.setXXX() methods.
- sql: catch
antlr.TokenStream exception in order
to make sure cursors get closed on wierd syntax errors.
- sql: many changes in cursor handling, some streamlining of
the internal cursor implementations.
- sql: SQL92: added
COALESCE function.
- sql: several interesting join bugs fixed
- sql.types: fixed bug in handling CLOB length.
- sql.types: fixed bugs in interval handling
Version 1.0.1, July 30, 2001
- sql: Change default
lockfile behavior. Given the
hassles associated with forgetting to remove a lockfile, we
now have a new connection parameter useLockFile,
which defaults to false. If you want the old
behavior, you must set useLockFile=true in your
connection properties.
- sql: Fixes for BlockFile corruption that could be caused by
certain patterns of BLOB access. This one has been lurking
for a while, and it feels really good to have squashed it!
- jdbc: Implement
Statement.setMaxRows().
- jdbc: PreparedStatement.clearParameters() threw a NullPointerException
if called for a statement with no formal parameters.
- jdbc: Makee
JdbcDriver constructor public.
- app.dbimage: Changes to work under Enhydra.
- app.dbmiage: Dynamic image resizing; caching (in the database) of
resized images.
Version 1.0, April 22, 2001
- net.server: Implement stop() methods for all services
- net.server: Implement configurable session logging for debugging
- server: Add support for service initialization parameters in
server.xml
- sql: Fix bug where unclosed
ResultSet objects could cause
havoc when they finally got garbage collected and finalized.
- sql: Fix bug in rollback of 'CREATE TABLE' -- in the case where the
table already exists, the rollback shouldn't delete the original
table!
- sql:
DIGEST function returns VARBINARY now,
instead of VARCHAR.
- sql.file: Fixed a multi-thread bug caused by missing 'synchronized'
in
Log.flush().
- sql.file: Added a
main() in sql.file.Log
which provides a logfile dumping utility.
- sql.io: Fixed a nasty bug in
DataOutputStream which caused
sizes to be wrong for BLOBs and many bad things to happen.
- sql.types: Added implicit conversion from strings to date/time/timestamp,
even though this doesn't seem to be SQL92 conforming, since everybody
seems to expect it to work that way. Maybe we need a STRICT_SQL92
mode.
- sql.types: Fixed bug with VARBINARY items where the bytes could
be returned in the wrong order!
- sql.locks: Fixed bug which cause lock table inconsistency (leading to
"No lock on parent" RuntimeExceptions) when multiple databases are
open simultaneously. Thanks to Finbarr O'Sullivan for finding this
and supplying a convenient reproducible testcase.
- http.server22: Request logging is now separate from the rest of the
Debug information, going into a new 'web.log' file. This is just an
interim solution until a more flexible logging system is put in place.
- http.server22: getRealPath() now deals with attempts to get files outside of the
scope of the web application (via, e.g. "../" in the path) and prevents such
access.
- sql: Fixed blob refcounting bug introduced by LazyRow optimizations.
Thanks to Philip White for a testcase.
- sql, sql.io: The 'Row' class does not need to be externalizable.
Version 1.0rc1, November 13, 2000
- HTTP: fixed some
getPathInfo() == null bugs.
- JSP: Get rid of incorrect JspWriter re-initialization
on include
- SQL: Clean up temp files, lockfile, reference monitor
on database shutdown
- SQL: Fix crash resulting from immediate rollback of very large insert
- SQL: Relax type constraints when comparing strings to other types
- SQL: Fixed bug in
ResultSet.getLong()
- SQL: Fix finalizer deadlock that sometimes happened when
ResultSets aren't closed.
- SQL: Better handling of null values in
PreparedStatement.setXXX() methods.
- Add many javadoc comments
- HTTP: Fix Servlet{In|Out}putStream.close() to not
close the underlying socket.
- Switch from IBM XML parser to Quadcap XML SAX parser. Faster and
smaller!
- SQL: Revised locking protocol for better performance and to fix a
nasty deadlock bug.
- SQL3: New column constraint:
WITH IDENTITY
- SQL: New functions,
DIGEST and
LAST_INSERT_ID
- HTTP: fix bogus cookie date format that caused an exception if user
cookies were used.
- HTTP: Fix bug in worker input stream where a client's cancelled request
could cause infinite loop in the worker thread.
- HTTP: Implement stub for
HttpSession.getSessionContext()
- HTTP: Fix session timeout bug; sessions were not being properly
expired
- HTTP: Fix several cases where
IllegalStateException
should have been throw, but wasn't.
- HTTP:
getPathInfo() should return null
instead of the empty string if there's no path info. I don't exactly
like this, but that's what the spec says to do....
- HTTP: Fix bug where explicit call to
HttpResponse.flushBuffer() could cause a response to be
sent with a Content-Length of zero.
- HTTP: Make parsing of POSTed form data be lazy, so the request body
can be parsed by the user if she wants.
- HTTP: Implement
HttpRequest.getRealPath().
- HTTP: Implement
HttpRequest.getCharacterEncoding().
- HTTP: Fix
HttpRequest.getLocales() to return the default
locale if no Accept-Language header was specified.
- HTTP: Better support for HTTP 1.1 Keep-Alive
- HTTP: Supply a default content type if the servlet doesn't specify one.
- HTTP: Don't quote cookie values for version 0 (Netscape) cookies,
or for version 1 cookies where the value is a "token"
- HTTP: Fix web classloader bug for classes in
WEB-INF/classes/
inside .war-deployed applications.
- HTTP Fix classpath specification for Jikes compiler in the default
context.
Version 1.0b14, February 22, 2000
- New: web-server administrator application, to allow web applications
to be loaded, unloaded, reloaded while the server is running.
- New: Image Database sample application.
- New: JNDI-based DataSource lookups
- New Services architecture
- New document: Quadcap Developer Guide.
- Fixed several bugs with BLOBS and large binary rows
Version 1.0b13, January 20, 2000
-
Web server engine upgraded to support Java Servlets 2.2. This offers
a lot of new features, and implements the nifty "Web Application Archive"
specified in the new Servlet API. Also added support for HTTP/1.1,
and did a significant amount of optimization in the core server stack.
The thread pool is now expanded dynamically (up to a maximum size), and
other changes have been made to improve performance.
- The bug tracking application and the QED Administrator have been
repackaged as
.war files.
-
This release also includes some significant optimizations in the core
SQL engine, in object serialization/deserialization, lock management,
buffer cache handling, logging, and avoiding recomputations when
PreparedStatements are used. Testing shows a 2-3x speedup on many
applications.
- Fixed bug in handling of
cacheSize database connect
property.
- Fixed bugs related to missing type conversions in arithmetic
operations.
Version 1.0b12, December 19, 1999
- The database internal format has changed for 1.0b12. Databases
created with previous revisions of QED are incompatible with this release
and may need to be rebuilt. You can use the XmlDump/XmlLoad
tools to dump your old database in XML format, then reload it using
1.0b12.
- This release primarily performance oriented -- several bottlenecks
were identified and eliminated. Full table scans and joins are now much
faster.
- Added support for Linux in the installer. QED has been tested
on the Linux JDK 1.2.2 RC1 release from Sun.
Version 1.0b11, November 28, 1999
- Add Create Database function to database status page.
- Add
force connection property, to allow a database to
be opened even if the lockfile exists. Be careful with this one!
- Website cleanup, fix broken links.
- Bug fixes in the admin 'file browse' dialog.
- Fix bugdb 'logout' operation, so now it actually does log out.
- Fix bugdb NullPointerException if description was null.
Version 1.0b10, November 25, 1999
- New installer. JDK1.2 QED Web version only
- Fix
JOIN on DECIMAL vs INTEGER
columns bug.
- Make
NUMERIC cast from STRING more robust.
- Implement type conversion from
NUMERIC to
REAL
- Fix
INTERVAL comparison bug.
- Fix "
JOIN of GROUP BY" bug.
- Add support for standard SQL-92
SUBSTRING(string FROM start [FOR length])
syntax.
- Generate appropriate SQLException for
SUBSTRING errors.
SELECT table.* does not include join columns.
- Bugdb application now connects with 'create=true' to force creation
of database on first use.
- Added 'cacheSize' connection property, to allow configuration of the
runtime cache (default value is 256K)
- Fixed several corner cases in key comparison and serialization
- Fixed nasty btree bug that occured when a 127 byte key was inserted
into a node with exactly 127 bytes of free space
- Performed Some micro-optimizations in the btree code
- File Servlet improvements:
- Handle directory fetch as request for
index.html
- Replace file
Hashtable with a cache of configurable
size.
- Eliminate temporary file creation
Version 1.0b9, November 14, 1999
- Remove old scratchfile on startup
- Fix bugs in file open dialog for admin tool
- Site redesign. Thanks, Tyler!
Version 1.0b8, October 28, 1999
- Changed default database creation behavior. Now, if you want to create a
new database, specify the property
create=true in the
java.util.Properties parameter to
DriverManager.getConnection().
- Fix key-comparison bug that caused numbers to collate in the wrong sequence.
- Fix key-comparison bug that caused rows with nulls to always compare equal.
- Optimize
SELECT DISTINCT ... ORDER BY ... to merge the
DISTINCT and ORDER BY operations.
- Change XmlDump/XmlLoad XML schema to include DDL statements for tables
in the database.
- Fix XmlDump/XmlLoad handling of character encodings by using
java.io.Reader instead of java.io.InputStream.
- Fix XmlLoad bug that showed up when the SAX parser split the character
data for an element into two buffer fragments.
- Fix type conversion confusion with respect to BIT(1) and BOOLEAN types.
- Optimize
BETWEEN operator with index access.
- Fix
DatabaseMetaData.getImportedKeys(),
DatabaseMetaData.getExportedKeys() bug where the
wrong table name appeared in column 4.
Version 1.0b7, October 20, 1999
- Fix JOIN ON bug where a crash happened if the inner table already
had an index.
- Improved DISTINCT, ORDER BY implementations so that they use
less memory.
- Simple optimization of cross-joins on a common set of columns.
- Optimized key representation and hence all index operations.
This is an incompatible change..
Version 1.0b6, October 3, 1999
Version 1.0b5, September 30, 1999
- Remove timebomb for paying customers!
Version 1.0b4, September 29, 1999
-
Fixed cursor-related problems introduced in 1.0b3 that resulted
in bogus 'Bad column name' errors.
-
Fixed
DROP TABLE CASCADE bug where the DROP failed if a table was
multiply referenced by the same view.
-
Fix
UNIQUE constraint bug that caused nulls to be
handled improperly.
-
Fix bug which caused correlation names to mess up name matching in
the
WHERE clause.
-
Implement support for
DEFAULT keyword in table value
constructors.
-
Implemented more type conversions: character strings to all exact
and approximate numeric types and intervals, any to fixed length
character string (any to variable character already was done).
Version 1.0b3, September 19, 1999
- Added configurable authentication to QED admin, controlled by
properties:
qed.admin.user and qed.admin.password
- Ensure that values bound to an HTTP session are correctly unbound
when the session is invalidated.
- Fix Content-Length bug that would sometimes cause hangs when
reading HTTP request.
- Sometimes IE opens a socket to the server but never issues a request
-- just aborts the connection. Silently ignore this strange behavior.
- Improve handling of 404 "Not Found" errors.
- Change default session inactive interval to 6 hours
- Servlet engine no longer sets 'Expires' and 'Connection' headers.
- Clean up HTTP server log format.
- Support 'Location' header in CGIServlet.
- Fix bugs in compile error parsing in JSPServlet.
- Fix NullPointerException in DatabaseMetaData.getColumns when
schemaPattern is null.
- Fix several problems related to CLOBs: access via getBytes(),
toString(), etc.
- Fix exception during recovery of BLOBs/CLOBs.
- JDK1.1/JDBC1.2 is now supported.
- Big bug in query with sub-query and correlation name
- Improve handling of failures during database creation. If the
database can't be created, remove the 'datafile' file.
RESTRICT, CASCADE now optional for
DROP COLUMN, DROP CONSTRAINT.
- Treat
VARBINARY types without a maximum length
specification as being of unlimited size.
- Don't set a SecurityManager any more.
- Add errorpage directives to all bugdb pages.
- Add authentication checking to all bugdb pages.
- Implement logout for bugdb
BugSession now implements
HttpSessionBindingListener to deal with changes in the
status of the session.
- Fix path to Jikes in
servlets.properties.
Version 1.0b2, September 18, 1999
Never publicly released
Version 1.0b1, September 10, 1999
Initial public release
|