History

  • CHANGELOG for this version
  • Recently fixed bugs
  • News 10 (2000-03-28)
  • News 9 (2000-01-21)
  • News 8 (1999-12-12)
  • News 7 (1999-10-17)
  • News 6 (1999-12-12)
  • News 5 (1999-10-17)
  • News 4 (1999-04-09)
  • News 3 (1999-02-12)
  • News 2 (1998-11-13)
  • News 1 (1998-07-98)


    Recently fixed bugs and changes

    2000-09-04
    1.43:

    2000-06-03
    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

    2000-03-27
    1.41: Fixed an error in the ASCII to Unicode conversion. Unicode characters bigger than 0xff where not converted correctly (Standalone & Client/Server).

    2000-02-22
    1.3: [JDK 1.3 RC 1] After creating a database, the second connect attempt returned a NullPointerException. Workaround implemented.

    2000-01-25
    1.3: The hidden primary key column of cached tables that have no primary key was not saved. Fixed.


    News Mails

    News 9 (2000-01-21)

    New and improved Tools
    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.

    Improved File System
    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.

    Changed the Package and Class names
    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.

    Improved SQL Syntax and JDBC interface
    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.

    Bug Fixes
    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.

    Documentation
    The JDBC interface is now documented. The documentation was improved in almost all parts. A 'How To' documentation for JBuilder is included.

    How to Upgrade from the old to the new version
    A detailed description is included in the 'How To / FAQ' page on the internet.


    News 8 (1999-12-12)

    Extended SQL Syntax
    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.

    Functions and Formulas
    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.

    Improved speed
    Tests shows that the new query engine is faster than the old one.

    Documentation
    The SQL Syntax is now better documented.


    News 7 (1999-10-17)

    No database size limitation any more
    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.

    Data type 'Object'
    It is possible to save Java Objects in the database using the data type 'Object'.

    New SQL commands
    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
    - SHUTDOWN [IMMEDIATELY] to close the database
    - SCRIPT 'filename' will create full database script file
    - CREATE USER ... ADMIN to create another administrator

    Improved the JDBC interface
    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.

    Bugfixes and Self Testing
    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.

    Plans
    For the near future, high priority has extending the SQL syntax (EXISTS, correlated queries, formulas), documentation and the client / server version.


    News 6 (1999-09-10)

    Added support for SQL commands
    - GROUP BY
    - SELECT DISTINCT
    - UNION ALL
    - AVG()
    - WHERE ... IN (SELECT...)

    Formulas
    It is now possible to use formulas where a value is expected. Examples:
    - UPDATE ... SET Column=[formula]
    - INSERT INTO ... VALUES ([formula],...)
    - ... WHERE Column=[formula]
    Formulas can be SELECT statments, string operations, integer operations or any combination.

    Simplification of versions and modes
    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.

    Bugfixes and Self Testing
    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.

    Copyright
    Updated the copyright so it can be used also in commercial products.


    News 5 (1999-08-06)

    A lot of new functionality has been added to the database:

    Transactions (COMMIT, ROLLBACK)

    Access rights (passwords, users, rights)

    Improved SQL syntax
    - UNION SELECT, SELECT FROM (SELECT...)
    - LIKE ESCAPE, IN ()
    - INSERT INTO ... SELECT
    - NOT NULL
    - Implemented Java SQL escape processing {}

    Improved JDBC interface

    Fixed various bugs

    Added copyright (or better 'copyleft') remark


    News 4 (1999-04-09)

    Improved JDBC Interface
    The interface is extended in almost all parts. The compatibility to other databases is greatly improved. The DatabaseMetaData class is extended.

    Improved SQL syntax
    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.

    NULL support
    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.

    All JDBC Data Types
    Now all JDBC data types are implemented. Missing is only the possibility to use streams.

    Performance Improvements
    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.

    Servlet available
    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.

    Trace messages
    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.


    News 3 (1999-02-12)

    Persistent Mode available
    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.

    Performance Tests
    Tests shows that Hypersonic SQL is much faster than Microsoft Access 97 and InterBase Server.

    More Data Types
    Now all important data types are implemented.

    Improved SQL syntax
    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.

    Improved JDBC Interface
    Now all JDBC classes are implemented and the compatibility to other JDBC drivers is enhanced.


    News 2 (1998-11-13)

    The programming interface is now a subset of JDBC
    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).


    News 1 (1998-07-98)

    - A first Client / Server version is available in the download
    - The documentation is extended
    - Sourcecode is now included
    - The homepage is updated