Web/website/web/hsqlHistory.html (334 lines of code) (raw):
<html>
<head><title>Hypersonic SQL</title></head>
<body bgcolor=#FFFFFF>
<font face="Arial, Helvetica" size="2">
<h2>Original HypersonicSQL History</h2>
<p>
<li><a href="changelog.html">CHANGELOG for this version</a>
<li><a href="hsqlHistory.html#FIXEDBUGS">Recently fixed bugs</a>
<li><a href="hsqlHistory.html#NEWS9">News 9 (2000-01-21)</a>
<li><a href="hsqlHistory.html#NEWS8">News 8 (1999-12-12)</a>
<li><a href="hsqlHistory.html#NEWS7">News 7 (1999-10-17)</a>
<li><a href="hsqlHistory.html#NEWS6">News 6 (1999-12-12)</a>
<li><a href="hsqlHistory.html#NEWS5">News 5 (1999-10-17)</a>
<li><a href="hsqlHistory.html#NEWS4">News 4 (1999-04-09)</a>
<li><a href="hsqlHistory.html#NEWS3">News 3 (1999-02-12)</a>
<li><a href="hsqlHistory.html#NEWS2">News 2 (1998-11-13)</a>
<li><a href="hsqlHistory.html#NEWS1">News 1 (1998-07-98)</a>
<p>
<hr>
<p>
<a name="FIXEDBUGS"></a>
<h3>Recently fixed bugs and changes</h3>
2000-09-04<br>
1.43:
<ul>
<li>Fixed Bug #106448 (WHERE.. IN (SELECT...))
<li>Added new Metadata table: SYSTEM_USERS
<li>Changed package structure: all classes in the root (unnamed) package
where moved to the new package org.hsql.util
<li>Case insensitive LIKE did not work. Fixed. Works only if used
with "column like 'test'"; not the other way round
<li>Fixed Bug #107577 (links to source files in docs)
<li>Fixed Bug #107155 (setMaxRows with ordered, grouped or union select)
<li>Fixed Bug #104967 (Foreign key problem when using 'primary key(col,...)' constraint)
<li>Added syntax for unique constraint (,[CONSTAINT name] UNIQUE (col,...))
(to solve #104967)
<li>Fixed Bug #106935 ArrayIndexOutOfBoundsException on update with foreign keys
<li>Added SQL command: DISCONNECT
<li>Changed the way how the script is written to file: connections are enumerated now
<li>SHUTDOWN disconnects all currently connected users
<li>Bug in Constraint.replaceTable fixed (Exception in all cases)
<li>Fixed: SELECT * FROM Address WHERE Id IN (-1); now formulas are
allow in IN (...)
<li>Fixed bugs in jdbdDatabaseMetaData: filters for table name and
column name are case insensitive now (converted to uppercase)
</ul>
<p>
2000-06-03<br>
1.42: Fixed errors in server version (port number); missing keywords;
parsing nested queries; support for LONGTEXT (in Transfer); parsing floating
point numbers; PreparedStatement.setObject; foreign keys; misspelled command
(REFERENCIAL -> REFERENTIAL); Transaction error when using UPDATE
<p>
2000-03-27<br>
1.41: Fixed an error in the ASCII to Unicode conversion. Unicode
characters bigger than 0xff where not converted correctly (Standalone
& Client/Server).
<p>
2000-02-22<br>
1.3: [JDK 1.3 RC 1] After creating a database, the second connect
attempt returned a NullPointerException. Workaround implemented.<br>
<p>
2000-01-25<br>
1.3: The hidden primary key column of cached tables that have no
primary key was not saved. Fixed.<br>
<p>
<hr>
<p>
<h3>News Mails</h3>
<p>
<a name="NEWS9"></a>
<strong>News 9 (2000-01-21)</strong>
<p>
New and improved Tools<br>
There are two new tools: Database Manager and
Transfer Tool. Database Manager is a much improved
version of the Query Tool, and Transfer Tool is a
application that can transfer data from one JDBC
source to another. Both tools are not bound to
Hypersonic SQL, they can be used with any database
that has the JDBC interface. The other tools
(WebServer, Servlet,...) has also been improved.
<p>
Improved File System<br>
The cache algorithm for saving records to file was
re-implemented. The new algorithm is much faster and
requires less disk access. The maximum size of the
.script file can be set now, if the limit is reached
the database is automatically closed and re-opened
(this shrinks the .script file). The .index file
is no longer required. Closing the database is about
double as fast. Read-only databases and connectios
are now possible.
<p>
Changed the Package and Class names<br>
The package name is now 'org.hsql'. The classes where
also renamed. The driver class is now 'org.hsql.jdbcDriver'.
This renaming was necessary to conform the package naming
conventions.
<p>
Improved SQL Syntax and JDBC interface<br>
New features are: MaxRows, BETWEEN .. AND .., auto-number
(IDENTITY) column, SELECT .. INTO, MINUS, INTERSECT.
Compatibility was improved: != (<>), UPPER (UCASE), LOWER (LCASE), SUBSTRING(String,start[,length]), DOUBLE [PRECISION],
ROLLBACK [WORK], COMMIT [WORK]. It is now possible to switch
off the case sensitivity for Strings. A PUBLIC user was added.
<p>
Bug Fixes<br>
There where some bugs in the parser (complex queries failed
in some cases). Errors in the write/read functions where
fixed. Unnecessary reserved names where removed. The permissions
function (GRANT, REVOKE) conform now the standard SQL.
The syntax for outer join is corrected: LEFT [OUTER] JOIN
instead of OUTER JOIN.
<p>
Documentation <br>
The JDBC interface is now documented. The documentation was
improved in almost all parts. A 'How To' documentation for
JBuilder is included.
<p>
How to Upgrade from the old to the new version<br>
A detailed description is included in the 'How To / FAQ' page
on the internet.
<p>
<hr>
<p>
<a name="NEWS8"></a>
<strong>News 8 (1999-12-12)</strong>
<p>
Extended SQL Syntax<br>
A new parser and a new query engine makes Hypersonic SQL
now almost SQL 92 Entry Level compatible. New features
include OUTER JOIN, INNER JOIN, EXISTS, correlated
subqueries. Constraints are now allowed in CREATE TABLE
statements. Only a few features are still missing, like
HAVING, ANY, ALL, BETWEEN.
<p>
Functions and Formulas<br>
Formulas are now type safe. New functions have been
implemented: CONVERT, LCASE, UCASE, LENGTH, LEFT,
RIGHT, MID, SUBSTRING, CURDATE, CURTIME, NOW, IFNULL,
CASEWHEN, BITOR, BITAND, MOD.
<p>
Improved speed<br>
Tests shows that the new query engine is faster than
the old one.
<p>
Documentation <br>
The SQL Syntax is now better documented.
<p>
<hr>
<p>
<a name="NEWS7"></a>
<strong>News 7 (1999-10-17)</strong>
<p>
No database size limitation any more<br>
The indexes are now also cached so that the size of
a database is no longer restricted to the available
memory. In the persistence part where made big
modifications, for example the '*.script' file is now
human-readable. Recovery is improved. Opening databases
with cached tables is now much faster. Unfortunately,
the database file format is not compatible to the
older version.
<p>
Data type 'Object'<br>
It is possible to save Java Objects in the database
using the data type 'Object'.
<p>
New SQL commands <br>
Some new SQL syntax has be added. It is now possible
to use values in SELECT: SELECT 1 FROM ADDRESS.
There are also some non-standard SQL commands like<br>
- SHUTDOWN [IMMEDIATELY] to close the database<br>
- SCRIPT 'filename' will create full database script file<br>
- CREATE USER ... ADMIN to create another administrator
<p>
Improved the JDBC interface <br>
Except for CallableStatement and some DatabaseMetaData
functions, there are now all JDBC 1.2 functions
implemented. ResultSet does now automatically convert
data types if possible. All get/set*Stream functions
are implemented.
<p>
Bugfixes and Self Testing <br>
Lots of bugfixes where made, for example in
ResultSet, in PreparedStatement, but also in the
main database engine. SelfTest and Debug was extended,
there is now additionally profiling and performance
data created. Remember that CodeSwither and Debug can
be used for other applications as well.
<p>
Plans<br>
For the near future, high priority has extending the
SQL syntax (EXISTS, correlated queries, formulas),
documentation and the client / server version.
<p>
<hr>
<p>
<a name="NEWS6"></a>
<strong>News 6 (1999-09-10)</strong>
<p>
Added support for SQL commands <br>
- GROUP BY <br>
- SELECT DISTINCT <br>
- UNION ALL <br>
- AVG() <br>
- WHERE ... IN (SELECT...) <br>
<p>
Formulas <br>
It is now possible to use formulas where a value
is expected. Examples: <br>
- UPDATE ... SET Column=[formula] <br>
- INSERT INTO ... VALUES ([formula],...) <br>
- ... WHERE Column=[formula] <br>
Formulas can be SELECT statments, string operations, integer operations or any combination.
<p>
Simplification of versions and modes <br>
It is no longer necessary to use the CodeSwitcher
to produce different versions and modes.
CREATE CACHED TABLE... is now used to create a table
where the data records are stored in the database file.
<p>
Bugfixes and Self Testing <br>
Now a self-testing class is improved so that
a huge part of the code is included in the
tests. Lines of code that are not tested
by the self testing program are listed out.
The self-testing program will be improved
so that almost all lines of code are covered.
<p>
Copyright <br>
Updated the copyright so it can be used
also in commercial products.
<p>
<hr>
<p>
<a name="NEWS5"></a>
<strong>News 5 (1999-08-06)</strong>
<p>
A lot of new functionality has been added to the database:
<p>
Transactions (COMMIT, ROLLBACK)
<p>
Access rights (passwords, users, rights)
<p>
Improved SQL syntax<br>
- UNION SELECT, SELECT FROM (SELECT...)<br>
- LIKE ESCAPE, IN ()<br>
- INSERT INTO ... SELECT<br>
- NOT NULL<br>
- Implemented Java SQL escape processing {}
<p>
Improved JDBC interface
<p>
Fixed various bugs
<p>
Added copyright (or better 'copyleft') remark
<p>
<hr>
<p>
<a name="NEWS4"></a>
<strong>News 4 (1999-04-09)</strong>
<p>
Improved JDBC Interface <br>
The interface is extended in almost all parts. The compatibility to other databases is greatly improved. The
DatabaseMetaData class is extended.
<p>
Improved SQL syntax <br>
It is now possible to use complex conditions with AND, OR, NOT, () in the WHERE clause of a SELECT statement. All comparisation types are now allowed in the join condition. It is now possible to specify the columns in the INSERT statement.
<p>
NULL support <br>
It is now possible to use NULL. NULL is the smallest possible value for all data types. It is not fully compatible with standard SQL (NULL is really a complex thing), but it is a first step. IS NULL works also.
<p>
All JDBC Data Types <br>
Now all JDBC data types are implemented. Missing is only the possibility to use streams.
<p>
Performance Improvements <br>
The cache algorithm for the full disk version was improved and uses now double hashing. Additionally, the overall performance
could be improved in some points.
<p>
Servlet available <br>
The source code for a servlet is included. That means it is now possible to run a Hypersonic SQL database on a general web
server as a servlet. This is not fully tested, but should work with all web servers that support servlets.
<p>
Trace messages <br>
Almost all JDBC functions now write trace messages. This is very important for debugging. There are also trace messages
for some database operations like the query plan.
<p>
<hr>
<p>
<a name="NEWS3"></a>
<strong>News 3 (1999-02-12)</strong>
<p>
Persistent Mode available <br>
Hypersonic SQL has now two operating modes: Non-persistent (memory-only) and Persistent (with logging to disk). That
means you can store the data on disk.
<p>
Performance Tests <br>
Tests shows that Hypersonic SQL is much faster than Microsoft Access 97 and InterBase Server.
<p>
More Data Types <br>
Now all important data types are implemented.
<p>
Improved SQL syntax <br>
It is now possible to specify Columns in a SELECT statement. Tables and Columns can be aliased in a SELECT statement. 'LIKE' can be used in the WHERE clause.
<p>
Improved JDBC Interface <br>
Now all JDBC classes are implemented and the compatibility to other JDBC drivers is enhanced.
<p>
<hr>
<p>
<a name="NEWS2"></a>
<strong>News 2 (1998-11-13)</strong>
<p>
The programming interface is now a subset of JDBC<br>
With this step, the compatibility to other databases is greatly
improved: JDBC is the standard database interface in Java.
You can compare it to the ODBC standard in the 'Windows' world.
That means if your program works with Hypersonic SQL and you
want to use another SQL database, you will have to change in
most cases only the driver (two lines of code).
<p>
<hr>
<p>
<a name="NEWS1"></a>
<strong>News 1 (1998-07-98)</strong>
<p>
- A first Client / Server version is available in the download <br>
- The documentation is extended <br>
- Sourcecode is now included <br>
- The homepage is updated <br>
<p>
</font></body></html>