@@ -22,163 +22,154 @@ Of course, patches are always welcome, but are not always applied as is.
...
@@ -22,163 +22,154 @@ Of course, patches are always welcome, but are not always applied as is.
See also <ahref="build.html#providing_patches">Providing Patches</a>.
See also <ahref="build.html#providing_patches">Providing Patches</a>.
</p>
</p>
<h2>Version 1.2</h2>
<ul><li>Enable the system property h2.optimizeInList by default.
</li><li>Enable the system property h2.nullConcatIsNull by default.
</li><li>Enable the system property h2.pageStore by default.
</li></ul>
<h2>Priority 1</h2>
<h2>Priority 1</h2>
<ul>
<ul><li>Bugfixes
<li>Bugfixes
</li><li>Use the transaction log for rollback.
</li><li>Issues 161, 157: Support large inserts and updates (use the transaction log for rollback).
Problems: Session.commit (rows), cache, undoLog.
</li><li>More tests with MULTI_THREADED=1
</li><li>More tests with MULTI_THREADED=1
</li><li>Optimization: result set caching (like MySQL); option to disable
</li><li>Optimization: result set caching (like MySQL); option to disable
</li><li>Server side cursors
</li><li>Server side cursors
</li></ul>
</li></ul>
<h2>Priority 2</h2>
<h2>Priority 2</h2>
<ul>
<ul><li>Improve test code coverage
<li>Improve test code coverage
</li><li>Test multi-threaded in-memory db access
</li><li>Test multi-threaded in-memory db access
</li><li>MVCC: select for update should only lock the selected rows.
</li><li>MVCC: select for update should only lock the selected rows.
</li><li>Option to shutdown all the running servers (on the same VM).
</li><li>Option to shutdown all the running servers (on the same VM).
</li><li>Full outer joins
</li><li>Full outer joins.
</li><li>Support mixed clustering mode (one embedded, others in server mode)
</li><li>Support mixed clustering mode (one embedded, others in server mode).
</li><li>PostgreSQL catalog: use BEFORE SELECT triggers instead of views over metadata tables.
</li><li>PostgreSQL catalog: use BEFORE SELECT triggers instead of views over metadata tables.
</li><li>Test very large databases and LOBs (up to 256 GB)
</li><li>Test very large databases and LOBs (up to 256 GB).
</li><li>Support hints for the optimizer (which index to use, enforce the join order).
</li><li>Support hints for the optimizer (which index to use, enforce the join order).
</li><li>Change LOB mechanism (less files, keep index of lob files, point to files and row, delete unused files earlier, maybe bundle files into a tar file)
</li><li>Change LOB mechanism (less files, keep index of lob files, point to files and row, delete unused files earlier, maybe bundle files into a tar file).
</li><li>Clustering: recovery needs to becomes fully automatic. Global write lock feature.
</li><li>Clustering: recovery needs to becomes fully automatic. Global write lock feature.
</li><li>Clustering: reads should be randomly distributed (optional) or to a designated database on RAM (parameter: READ_FROM=3)
</li><li>Clustering: reads should be randomly distributed (optional) or to a designated database on RAM (parameter: READ_FROM=3).
</li><li>Sequence: add features [NO] MINVALUE, MAXVALUE, CYCLE
</li><li>Sequence: add features [NO] MINVALUE, MAXVALUE, CYCLE.
</li><li>Add a migration guide (list differences between databases)
</li><li>Add a migration guide (list differences between databases).
</li><li>Migrate database tool (also from other database engines)
</li><li>Migrate database tool (also from other database engines).
</li><li>Automatic collection of statistics (auto ANALYZE; AUTOVACUUM). See http://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM
</li><li>Automatic collection of statistics (auto ANALYZE; AUTOVACUUM). See http://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM
</li><li>Optimization: automatic index creation suggestion using the trace file?
</li><li>Optimization: automatic index creation suggestion using the trace file?
</li><li>Compression performance: don't allocate buffers, compress / expand in to out buffer
</li><li>Compression performance: don't allocate buffers, compress / expand in to out buffer.
</li><li>Rebuild index functionality to shrink index size and improve performance
</li><li>Rebuild index functionality to shrink index size and improve performance.
</li><li>Don't use deleteOnExit (bug 4513817: File.deleteOnExit consumes memory)
</li><li>Don't use deleteOnExit (bug 4513817: File.deleteOnExit consumes memory).
</li><li>Console: add accesskey to most important commands (A, AREA, BUTTON, INPUT, LABEL, LEGEND, TEXTAREA)
</li><li>Console: add accesskey to most important commands (A, AREA, BUTTON, INPUT, LABEL, LEGEND, TEXTAREA).
</li><li>Support nested outer joins (see todo.txt).
</li><li>Support nested outer joins (see todo.txt).
</li><li>Test performance again with SQL Server, Oracle, DB2
</li><li>Test performance again with SQL Server, Oracle, DB2.
</li><li>Test with dbmonster (http://dbmonster.kernelpanic.pl/)
</li><li>Test with dbmonster: http://dbmonster.kernelpanic.pl
</li><li>Test with dbcopy (http://dbcopyplugin.sourceforge.net)
</li><li>Test with dbcopy: http://dbcopyplugin.sourceforge.net
</li><li>Test with Spatial DB in a box / JTS: http://www.opengeospatial.org/standards/sfs - OpenGIS Implementation Specification
</li><li>Test with Spatial DB in a box / JTS: http://www.opengeospatial.org/standards/sfs - OpenGIS Implementation Specification.
</li><li>Write more tests and documentation for MVCC (Multi Version Concurrency Control)
</li><li>Write more tests and documentation for MVCC (Multi Version Concurrency Control).
</li><li>Find a tool to view large text file (larger than 100 MB), with find, page up and down (like less), truncate before / after
</li><li>Find a tool to view large text file (larger than 100 MB), with find, page up and down (like less), truncate before / after.
</li><li>Implement, test, document XAConnection and so on
</li><li>Implement, test, document XAConnection and so on.
</li><li>Pluggable data type (for streaming, hashing, compression, validation, conversion, encryption)
</li><li>Pluggable data type (for streaming, hashing, compression, validation, conversion, encryption).
</li><li>CHECK: find out what makes CHECK=TRUE slow, move to CHECK2
</li><li>CHECK: find out what makes CHECK=TRUE slow, move to CHECK2.
</li><li>Index usage for (ID, NAME)=(1, 'Hi'); document
</li><li>Index usage for (ID, NAME)=(1, 'Hi'); document.
</li><li>Linked schema using CSV files: one schema for a directory of files; support indexes for CSV files
</li><li>Linked schema using CSV files: one schema for a directory of files; support indexes for CSV files.
</li><li>iReport to support H2
</li><li>iReport to support H2.
</li><li>Implement missing JDBC API (CallableStatement,...)
</li><li>Implement missing JDBC API (CallableStatement,...).
</li><li>Compression of the cache
</li><li>Compression of the cache.
</li><li>Include SMPT (mail) server (at least client) (alert on cluster failure, low disk space,...)
</li><li>Include SMPT (mail) server (at least client) (alert on cluster failure, low disk space,...).
</li><li>Drop with restrict (currently cascade is the default)
</li><li>Drop with restrict (currently cascade is the default).
</li><li>JSON parser and functions
</li><li>JSON parser and functions.
</li><li>Server: client ping from time to time (to avoid timeout - is timeout a problem?)
</li><li>Server: client ping from time to time (to avoid timeout - is timeout a problem?).
</li><li>Copy database: tool with config GUI and batch mode, extensible (example: compare)
</li><li>Copy database: tool with config GUI and batch mode, extensible (example: compare).
</li><li>Document, implement tool for long running transactions using user-defined compensation statements.
</li><li>Document, implement tool for long running transactions using user-defined compensation statements.
</li><li>Support SET TABLE DUAL READONLY
</li><li>Support SET TABLE DUAL READONLY.
</li><li>GCJ: what is the state now?
</li><li>GCJ: what is the state now?
</li><li>Events for: database Startup, Connections, Login attempts, Disconnections, Prepare (after parsing), Web Server (see http://docs.openlinksw.com/virtuoso/fn_dbev_startup.html)
</li><li>Events for: database Startup, Connections, Login attempts, Disconnections, Prepare (after parsing), Web Server. See http://docs.openlinksw.com/virtuoso/fn_dbev_startup.html
</li><li>Optimization: log compression
</li><li>Optimization: log compression.
</li><li>ROW_NUMBER() OVER([ORDER BY columnName])
</li><li>ROW_NUMBER() OVER([ORDER BY columnName]).
</li><li>Support standard INFORMATION_SCHEMA tables, as defined in http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt; specially KEY_COLUMN_USAGE (http://dev.mysql.com/doc/refman/5.0/en/information-schema.html, http://www.xcdsql.org/Misc/INFORMATION_SCHEMA%20With%20Rolenames.gif)
</li><li>Support standard INFORMATION_SCHEMA tables, as defined in http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt - specially KEY_COLUMN_USAGE: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html, http://www.xcdsql.org/Misc/INFORMATION_SCHEMA%20With%20Rolenames.gif
</li><li>Compatibility: in MySQL, HSQLDB, /0.0 is NULL; in PostgreSQL, Derby: division by zero
</li><li>Compatibility: in MySQL, HSQLDB, /0.0 is NULL; in PostgreSQL, Derby: division by zero.
</li><li>Functional tables should accept parameters from other tables (see FunctionMultiReturn) SELECT * FROM TEST T, P2C(T.A, T.R)
</li><li>Functional tables should accept parameters from other tables (see FunctionMultiReturn) SELECT * FROM TEST T, P2C(T.A, T.R).
</li><li>Custom class loader to reload functions on demand
</li><li>Custom class loader to reload functions on demand.
</li><li>Test http://mysql-je.sourceforge.net/
</li><li>Test http://mysql-je.sourceforge.net/
</li><li>Close all files when closing the database (including LOB files that are open on the client side)
</li><li>Close all files when closing the database (including LOB files that are open on the client side).
</li><li>EXE file: maybe use http://jsmooth.sourceforge.net
</li><li>EXE file: maybe use http://jsmooth.sourceforge.net
</li><li>Performance: automatically build in-memory indexes if the whole table is in memory
</li><li>Performance: automatically build in-memory indexes if the whole table is in memory.
</li><li>H2 Console: the webclient could support more features like phpMyAdmin.
</li><li>H2 Console: the webclient could support more features like phpMyAdmin.
</li><li>Use Janino to convert Java to C++
</li><li>Use Janino to convert Java to C++.
</li><li>The HELP information schema can be directly exposed in the Console
</li><li>The HELP information schema can be directly exposed in the Console.
</li><li>Maybe use the 0x1234 notation for binary fields, see MS SQL Server
</li><li>Maybe use the 0x1234 notation for binary fields, see MS SQL Server.
</li><li>Support Oracle CONNECT BY in some way: http://www.adp-gmbh.ch/ora/sql/connect_by.html, http://philip.greenspun.com/sql/trees.html
</li><li>Support Oracle CONNECT BY in some way: http://www.adp-gmbh.ch/ora/sql/connect_by.html http://philip.greenspun.com/sql/trees.html
</li><li>SQL Server 2005, Oracle: support COUNT(*) OVER(). See http://www.orafusion.com/art_anlytc.htm
</li><li>SQL Server 2005, Oracle: support COUNT(*) OVER(). See http://www.orafusion.com/art_anlytc.htm
</li><li>Write Behind Cache on SATA leads to data corruption See also http://sr5tech.com/write_back_cache_experiments.htm and http://www.jasonbrome.com/blog/archives/2004/04/03/writecache_enabled.html
</li><li>Write Behind Cache on SATA leads to data corruption See also http://sr5tech.com/write_back_cache_experiments.htm and http://www.jasonbrome.com/blog/archives/2004/04/03/writecache_enabled.html
</li><li>Functions with unknown return or parameter data types: serialize / deserialize
</li><li>Functions with unknown return or parameter data types: serialize / deserialize.
</li><li>Test if idle TCP connections are closed, and how to disable that
</li><li>Test if idle TCP connections are closed, and how to disable that.
</li><li>Try using a factory for Row, Value[] (faster?), http://javolution.org/, alternative ObjectArray / IntArray
</li><li>Try using a factory for Row, Value[] (faster?), http://javolution.org/ (alternative ObjectArray / IntArray).
</li><li>Auto-Update feature for database, .jar file
</li><li>Auto-Update feature for database, .jar file.
</li><li>ResultSet SimpleResultSet.readFromURL(String url): id varchar, state varchar, released timestamp
</li><li>ResultSet SimpleResultSet.readFromURL(String url): id varchar, state varchar, released timestamp.
</li><li>Partial indexing (see PostgreSQL)
</li><li>Partial indexing (see PostgreSQL).
</li><li>Add GUI to build a custom version (embedded, fulltext,...) using build flags
</li><li>Add GUI to build a custom version (embedded, fulltext,...) using build flags.