提交 9dc3d8ec authored 作者: Thomas Mueller's avatar Thomas Mueller

Prepare release.

上级 69097413
......@@ -18,9 +18,12 @@ Change Log
<h1>Change Log</h1>
<h2>Next Version (unreleased)</h2>
<ul><li>-
</li></ul>
<h2>Version 1.3.168 (2012-07-13)</h2>
<ul><li>The message "Transaction log could not be truncated" was sometimes written
to the .trace.db file even if there was no problem truncating the transaction log.
</li><li>New system property "h2.serializeJavaObject" (default: true) that allows to disable
</li><li>New system property "h2.serializeJavaObject" (default: true) that allows to disable
serializing Java objects, so that the objects compareTo and toString methods can be used.
</li><li>Dylan has translated the H2 Console tool to Korean. Thanks a lot!
......@@ -354,131 +357,5 @@ Change Log
timezones use different rules, if an old server or client is used.
</li></ul>
<h2>Version 1.3.156 (2011-06-17)</h2>
<ul><li>Issue 323: NullPointerException when using IN(...) with a function table.
</li><li>Clob.toString() and Blob.toString() now include the trace identifier.
</li><li>The SQL parser silently ignored characters such as '^' or '\'.
Now a syntax error is thrown.
</li><li>ROUND(..) now also works with just one parameter.
</li><li>Access to system tables is now more restrictive for non-admin users
(the tables can be still listed, but some of the data is not included).
</li><li>BLOB: InputStream.skip is now more efficient in embedded mode.
</li><li>The default expression of a column may no longer reference the table,
because a database with such a table couldn't be opened normally.
</li><li>Referenced objects in check constraints could be dropped, which resulted
in a database that can't be opened normally.
</li><li>Improved Oracle compatibility for NVL2. Thanks again to litailang for the patch.
</li><li>CSVREAD now supports the option 'preserveWhitespace'.
</li><li>Recursive queries with many rows could throw an IndexOutOfBoundsException.
</li><li>The auto-server mode can't be combined with an in-memory database.
This invalid combination wasn't detected so far.
Now trying to open a database in this way fails.
</li><li>Improved performance for reading and writing date and time values.
</li><li>Java functions: array component types are now preserved, so that a ResultSet.getObject()
will return Integer[] if the Java functions returns Integer[]. Thanks to Noel Grandin for the patch.
Component types are transferred over the network, but not persisted in the database file as of now.
</li><li>Recover tool: the script generated by the recover tool didn't work
if fulltext search was used, because the triggers were created before the primary keys.
</li><li>Issue 321: the database does not expect XA rollback without XA prepare
(an exception was unnecessarily written into the .trace.db file).
</li><li>Read-only databases: some queries (such as distinct queries)
tried to create temporary tables, which failed for read only databases.
</li><li>This database no longer uses finalize() except for temporary files.
The system property "h2.runFinalize" is no longer supported.
Unclosed connections are still detected, but the opening stack trace is now collected
only if connections are not closed repeatedly (starting with the second unclosed connection).
To detect unclosed connections, a PhantomReference is used.
</li><li>Issue 322: Left joins didn't work when used as subquery in the form clause.
</li><li>A prepared statement if type CALL that returned a result set could
throw a NullPointerException if executed multiple times.
</li><li>The following built-in functions were marked as deterministic and therefore
not re-executed when using in a prepared statement:
LOCK_TIMEOUT, LINK_SCHEMA, CANCEL_SESSION, FILE_READ.
</li><li>Count on a column that can not be null is now optimized to COUNT(*).
Thanks a lot to Ross Judson for providing a patch and test case!
</li><li>The following prepared statements are now cached as well:
insert, update, delete, call, merge, and transactional commands.
</li><li>The built-in connection pool is now a bit faster.
</li><li>The scale was not set correctly in some cases when using
CREATE TABLE AS SELECT if there was no explicit column definition.
</li><li>When trying to connect to a server using TCP/IP failed, it will retry at most
until the timeout. Before, it was the timeout multiplied with the retry count.
</li></ul>
<h2>Version 1.3.155 (2011-05-27)</h2>
<ul><li>When altering a table with triggers, new triggers are created
and initialized with a table name that ends with tableName_COPY_x_y.
The plan is that this will not be required in future versions.
</li><li>If some of the file system operations failed, System.gc() was called in a loop.
Now it is called once at most.
</li><li>Triggers (including the fulltext search) could throw the exception
'Unexpected code path' in Session.log.
</li><li>CURRENT_TIMESTAMP() and so on now return the same value within a transaction.
</li><li>The statement CALL no longer converts an ARRAY return value to a list of values.
Now an ARRAY is returned.
</li><li>VALUES is now supported as a standalone command and as a table source:
SELECT * FROM (VALUES(1, 'Hello'), (2, 'World')) AS V;
</li><li>TIMESTAMPADD is now an alias for DATEADD.
Most SQL_TSI_ constants are now supported for for TIMESTAMPADD and TIMESTAMPDIFF
(all except SQL_TSI_QUARTER and SQL_TSI_FRAC_SECOND).
</li><li>Issue 313: NullPointerException in select query with a subquery or view.
</li><li>Native fulltext search: the characters '&lt;', '&gt;', and '\' are now also whitespace
characters. Also, the list of whitespace characters can be changed using
FullText.setWhitespaceChars(conn, ...)
</li><li>When reading from the classpath (for example read_file('classpath:logo.png')),
now the content class loader is used if the resource can't be found otherwise.
</li><li>The statement "script drop" create a script that couldn't be executed if
a table contained a reference to a user defined function.
</li><li>Opening a database with both multi-threaded mode and lock mode 0 (disable locking)
was possible (but only once), even thought it does not work properly.
Now it is no longer allowed.
</li><li>LOB objects are now deleted (and the empty space is reused) when the transaction is committed.
So far, the space wasn't re-used until the connection was closed.
</li><li>SCRIPT DROP did not use the cascade option for table, which would cause problems
if a view was dropped before a table it depends on.
Now the cascade option is used.
</li><li>The query plan of queries with subqueries that contain nested joins was wrong.
This could result in syntax exceptions for correct queries. Example:
select 1 from (select 2 from ((test t1 inner join test t2 on t1.id=t2.id) inner join test t3 on t3.id=t1.id)) x;
</li><li>DatabaseEventListener.init was called with a null url when using the server mode.
</li><li>Support for the function LN (an alias for LOG).
</li><li>Support for the function CEIL (an alias for CEILING).
</li><li>Issue 315: Access to LOBs could cause a Java level deadlock.
</li><li>Support for the ICU4J collator.
</li><li>Improved Oracle compatibility: support for NVL2. Thanks to litailang for the patch!
</li><li>Improved PostgreSQL compatibility: support for RANDOM() in addition to RAND().
</li><li>There was a classloader memory leak problem because a class contained a static
references to an exception (including stack trace).
</li><li>Split file system: truncating a file now deletes the parts in reverse order,
so that the file list is consistent if the process is interrupted while truncating.
</li><li>The H2 JDBC client can now be used in an unsigned Applet.
The problem was that System.getProperty throws a SecurityException, which is now ignored.
</li><li>The condition "in(select ...)" did not work correctly if the subquery
could not be converted to a "distinct" query, as in:
"select * from dual where x in (select x from dual group by x order by max(x))".
Now the subquery needs to be made distinct manually if this optimization is needed.
</li><li>In the last release, the error code for "Wrong user name or password" was still
08004 instead of 28000, which resulted in the wrong error message.
</li><li>In some cases, creating a new table or altering an existing table threw the exception:
Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX".
</li><li>The Shell tool no longer supports the built-in command "show",
because it is a legal SQL statement for H2 and MySQL.
However, the "describe" command is still supported, and now lists all tables
if called without parameter.
</li><li>The sorted insert mode (as in "insert into ... direct sorted select")
did not work for not-persisted tables in a persisted database.
It threw a ClassCastException.
</li><li>Issue 308: Statement.getGeneratedKeys() now returns an empty result set if no key was generated.
</li><li>The h2small.jar (created with build jarSmall) included the Android API.
This has been removed, shrinking the jar file by 21 KB.
</li><li>When creating a table, the precision must now be at least as large as the scale.
</li><li>Support for Java 1.3 and Java 1.4 has been removed.
</li><li>Improved error message for syntax error: the list of expected tokens was sometimes not set correctly.
</li><li>Database file growth can now be limited using the database setting PAGE_STORE_MAX_GROWTH.
Slower growth may slow down operation, but speed up closing database.
</li><li>A read only database with writable linked tables could lead to a DATABASE_IS_READ_ONLY (90097) error.
This is fixed now.
</li></ul>
<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
......@@ -16,22 +16,22 @@ public class Constants {
/**
* The build date is updated for each public release.
*/
public static final String BUILD_DATE = "2012-05-23";
public static final String BUILD_DATE = "2012-07-13";
/**
* The build date is updated for each public release.
*/
public static final String BUILD_DATE_STABLE = "2012-04-08";
public static final String BUILD_DATE_STABLE = "2012-05-23";
/**
* The build id is incremented for each public release.
*/
public static final int BUILD_ID = 167;
public static final int BUILD_ID = 168;
/**
* The build id of the last stable release.
*/
public static final int BUILD_ID_STABLE = 166;
public static final int BUILD_ID_STABLE = 167;
/**
* If H2 is compiled to be included in a product, this should be set to
......
......@@ -7,6 +7,7 @@
CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR);
INSERT INTO VERSION VALUES
(118, '1.3.168', '2012-07-13'),
(117, '1.3.167', '2012-05-23'),
(116, '1.3.166', '2012-04-08'),
(115, '1.3.165', '2012-03-18'),
......@@ -20,7 +21,6 @@ INSERT INTO VERSION VALUES
(107, '1.3.157', '2011-06-25'),
(106, '1.3.156', '2011-06-17'),
(105, '1.3.155', '2011-05-27'),
(104, '1.3.154', '2011-04-04')
;
CREATE TABLE CHANNEL(TITLE VARCHAR, LINK VARCHAR, DESC VARCHAR,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论