提交 21d04c85 authored 作者: Thomas Mueller's avatar Thomas Mueller

Prepare release.

上级 7e0c7a71
...@@ -18,14 +18,32 @@ Change Log ...@@ -18,14 +18,32 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>The H2 Console now detects unsupported command line options. <ul><li>-
(In the future, it will be combined with the Server tool as it is a superset.) </li></ul>
<h2>Version 1.3.154 (2011-04-04)</h2>
<ul><li>The SQL state of the following exceptions has been changed:
From 90005 to 22001: "Value too long for column ...: ...".
From 90039 to 22003: "The value is too large for the precision ..." is merged with "Numeric value out of range".
From 90110 to 22003: "... out of range" is merged with "Numeric value out of range".
From 90021 to 22018: "Data conversion error converting ...".
From 90006 to 23502: "NULL not allowed for column ...".
From 23003 to 23503: "Referential integrity constraint violation: ...".
From 23001 to 23505: "Unique index or primary key violation: ...".
From 23002 to 23506: "Referential integrity constraint violation: ...".
From 90056 to 23507: "No default value is set for column ...".
From 23000 to 23513: "Check constraint violation: ...".
From 08004 to 28000: "Wrong user name or password".
From 90051 to 57014: "Statement was canceled or the session timed out".
</li><li>The H2 Console now detects unsupported command line options.
(In the future, it will be combined with the Server tool.)
</li><li>MySQL compatibility: SHOW COLUMN FOR schemaName.columnName. </li><li>MySQL compatibility: SHOW COLUMN FOR schemaName.columnName.
</li><li>DatabaseMetaData.getCrossReference now also lists the name of the primary index (PK_NAME). </li><li>DatabaseMetaData.getCrossReference now also lists the name of the primary index (PK_NAME).
</li><li>If the database contained many CLOB or BLOB values, then closing a connection was very slow. </li><li>If the database contained many CLOB or BLOB values, then closing a connection was very slow.
Reason: was that when closing a connection, the temporary CLOB and BLOB values for this connection Reason: was that when closing a connection, the temporary CLOB and BLOB values for this connection
were removed, but there was no index on this column. were removed, but there was no index on this column.
For existing databases with many CLOB and BLOB values, creating the index may take a few seconds. For existing databases with many CLOB and BLOB values, creating the index may take a few seconds.
The index is added to existing databases automatically.
</li><li>If a CLOB or BLOB was copied into the same table using INSERT INTO X ... SELECT ... FROM X, </li><li>If a CLOB or BLOB was copied into the same table using INSERT INTO X ... SELECT ... FROM X,
and then the original row was deleted, then the copied value was also deleted. and then the original row was deleted, then the copied value was also deleted.
This could also result in an ArrayIndexOutOfBoundsException on checkpoint or when closing the database. This could also result in an ArrayIndexOutOfBoundsException on checkpoint or when closing the database.
...@@ -868,32 +886,5 @@ Change Log ...@@ -868,32 +886,5 @@ Change Log
</li><li>H2 Console: if the settings file (.h2.properties) can't be accessed, the exception is now ignored. </li><li>H2 Console: if the settings file (.h2.properties) can't be accessed, the exception is now ignored.
</li></ul> </li></ul>
<h2>Version 1.2.132 (2010-03-21)</h2>
<ul><li>The implementation of a Java to C (source code level) converter has been started.
The plan is: it should be possible to convert H2 (or a part of it) to C so that the database
can be run without a JVM. This will be a long term project (it may take a year or so).
</li><li>User defined table implementation can now be used using CREATE TABLE ... ENGINE.
Thanks to Sergi Vladykin for implementing this feature!
</li><li>Improved MS SQL Server compatibility: support string concatenation using "+".
Thanks to Stepan for the patch!
</li><li>When using the multi-threaded mode, running ANALYZE concurrently in multiple
connections could throw an exception.
</li><li>The MERGE statement is now about 30% faster when using a PreparedStatement.
</li><li>Multi-column indexes where the second or later column was descending did not always
produce correct results (rows were missing in the result set, or the result set was empty).
</li><li>When using large transactions or a small log size, the database could get very slow
(profiling shows the hotspot is in FileObjectDisk.sync()).
</li><li>The Shell tool now prints the stack trace when the list mode is enabled.
</li><li>CREATE ALIAS ... AS: Compilation was incorrect if the source code contained
characters that are not supported by the default file encoding.
</li><li>Issue 176: the JdbcDataSource now also supports a 'description' property.
</li><li>The Shell tool threw a ArrayIndexOutOfBoundsException after 20 statements.
</li><li>When using the small version of H2 ('jarClient'), the first call to
Connection.createBlob (or similar) could throw a ClassNotFoundException
because the file org.h2.store.fs.FileSystemZip is not included. This missing class
is now ignored.
</li><li>Literals of type BIGINT now have the correct data type.
</li></ul>
<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html> <!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
...@@ -293,11 +293,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>. ...@@ -293,11 +293,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Docs: add a one line description for each functions and SQL statements at the top (in the link section). </li><li>Docs: add a one line description for each functions and SQL statements at the top (in the link section).
</li><li>Javadoc search: weight for titles should be higher ('random' should list Functions as the best match). </li><li>Javadoc search: weight for titles should be higher ('random' should list Functions as the best match).
</li><li>Replace information_schema tables with regular tables that are automatically re-built when needed. Use indexes. </li><li>Replace information_schema tables with regular tables that are automatically re-built when needed. Use indexes.
</li><li>Delete temporary files or objects using finalize. </li><li>Issue 50: Oracle compatibility: support calling 0-parameters functions without parenthesis. Make constants obsolete.
</li><li>Oracle compatibility: support calling 0-parameters functions without parenthesis. Make constants obsolete.
</li><li>MySQL, HSQLDB compatibility: support where 'a'=1 (not supported by Derby, PostgreSQL) </li><li>MySQL, HSQLDB compatibility: support where 'a'=1 (not supported by Derby, PostgreSQL)
</li><li>Allow calling function with no parameters without parenthesis. See http://code.google.com/p/h2database/issues/detail?id=50
</li><li>CSV: currently # is a line comment and can start at any field. Make it optional.
</li><li>Support a data type "timestamp with timezone" using java.util.Calendar. </li><li>Support a data type "timestamp with timezone" using java.util.Calendar.
</li><li>Finer granularity for SLF4J trace - See http://code.google.com/p/h2database/issues/detail?id=62 </li><li>Finer granularity for SLF4J trace - See http://code.google.com/p/h2database/issues/detail?id=62
</li><li>Add database creation date and time to the database. </li><li>Add database creation date and time to the database.
......
...@@ -69,14 +69,14 @@ Tutorial ...@@ -69,14 +69,14 @@ Tutorial
<h2 id="tutorial_starting_h2_console">Starting and Using the H2 Console</h2> <h2 id="tutorial_starting_h2_console">Starting and Using the H2 Console</h2>
<p> <p>
The H2 Console application lets you access a SQL database using a browser interface. The H2 Console application lets you access a database using a browser.
This can be a H2 database, or another database that supports the JDBC API. This can be a H2 database, or another database that supports the JDBC API.
</p> </p>
<img src="images/console.png" alt="Web Browser - H2 Console Server - H2 Database" /> <img src="images/console.png" alt="Web Browser - H2 Console Server - H2 Database" />
<p> <p>
This is a client / server application, so both a server and a client (a browser) are required to run it. This is a client/server application, so both a server and a client (a browser) are required to run it.
</p><p> </p><p>
Depending on your platform and environment, there are multiple ways to start the application: Depending on your platform and environment, there are multiple ways to start the H2 Console:
</p> </p>
<table class="main"> <table class="main">
<tr><th>OS</th><th>Start</th></tr> <tr><th>OS</th><th>Start</th></tr>
...@@ -89,7 +89,7 @@ Depending on your platform and environment, there are multiple ways to start the ...@@ -89,7 +89,7 @@ Depending on your platform and environment, there are multiple ways to start the
<img src="images/db-16.png" alt="H2 database icon" /><br /> <img src="images/db-16.png" alt="H2 database icon" /><br />
If you don't get the window and the system tray icon, If you don't get the window and the system tray icon,
then maybe Java is not installed correctly (in this case, try another way to start the application). then maybe Java is not installed correctly (in this case, try another way to start the application).
A browser window should open and point to the Login page at <code>http://localhost:8082</code>. A browser window should open and point to the login page at <code>http://localhost:8082</code>.
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -98,7 +98,7 @@ Depending on your platform and environment, there are multiple ways to start the ...@@ -98,7 +98,7 @@ Depending on your platform and environment, there are multiple ways to start the
Open a file browser, navigate to <code>h2/bin</code>, and Open a file browser, navigate to <code>h2/bin</code>, and
double click on <code>h2.bat</code>.<br /> double click on <code>h2.bat</code>.<br />
A console window appears. If there is a problem, you will see an error message A console window appears. If there is a problem, you will see an error message
in this window. A browser window will open and point to the Login page in this window. A browser window will open and point to the login page
(URL: <code>http://localhost:8082</code>). (URL: <code>http://localhost:8082</code>).
</td> </td>
</tr> </tr>
...@@ -106,14 +106,14 @@ Depending on your platform and environment, there are multiple ways to start the ...@@ -106,14 +106,14 @@ Depending on your platform and environment, there are multiple ways to start the
<td>Any</td> <td>Any</td>
<td> <td>
Double click on the <code>h2*.jar</code> file. Double click on the <code>h2*.jar</code> file.
This only works if the <code>.jar</code> suffix is associated with java. This only works if the <code>.jar</code> suffix is associated with Java.
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Any</td> <td>Any</td>
<td> <td>
Open a console window, navigate to the directory <code>h2/bin</code> and type: Open a console window, navigate to the directory <code>h2/bin</code>, and type:
<pre>java -cp h2*.jar org.h2.tools.Server</pre> <pre>java -jar h2*.jar</pre>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -128,8 +128,7 @@ in the firewall. ...@@ -128,8 +128,7 @@ in the firewall.
</p> </p>
<p> <p>
It has been reported that when using Kaspersky 7.0 with firewall, the H2 Console is very slow when It has been reported that when using Kaspersky 7.0 with firewall, the H2 Console is very slow when
connecting over the IP address. A workaround is to connect using localhost, however this only works connecting over the IP address. A workaround is to connect using 'localhost'.
on the local machine.
</p> </p>
<p> <p>
A small firewall is already built into the server: other computers may not connect to the server by default. A small firewall is already built into the server: other computers may not connect to the server by default.
...@@ -158,20 +157,20 @@ but this is usually not required as the console supports multiple concurrent con ...@@ -158,20 +157,20 @@ but this is usually not required as the console supports multiple concurrent con
<h3>Using another Port</h3> <h3>Using another Port</h3>
<p> <p>
If the port is in use by another application, you may want to start the H2 Console on a different port. If the default port of the H2 Console is already in use by another application,
This can be done by changing the port in the file <code>.h2.server.properties</code>. This file is stored then a different port needs to be configured. The settings are stored in a properties file.
in the user directory (for Windows, this is usually in <code>Documents and Settings/&lt;username&gt;</code>). For details, see <a href="#console_settings">Settings of the H2 Console</a>.
The relevant entry is webPort. The relevant entry is <code>webPort</code>.
</p> </p>
<p> <p>
If no port is specified for the TCP and PG servers, they will try to listen on the default port for the given service. If no port is specified for the TCP and PG servers, each service will try to listen on its default port.
If the default port is already in use, a random port is used. If the default port is already in use, a random port is used.
</p> </p>
<h3>Connecting to the Server using a Browser</h3> <h3>Connecting to the Server using a Browser</h3>
<p> <p>
If the server started successfully, you can connect to it using a web browser. If the server started successfully, you can connect to it using a web browser.
JavaScript needs to be enabled. Javascript needs to be enabled.
If you started the server on the same computer as the browser, open the URL <code>http://localhost:8082</code>. If you started the server on the same computer as the browser, open the URL <code>http://localhost:8082</code>.
If you want to connect to the application from another computer, you need to provide the IP address of the server, for example: If you want to connect to the application from another computer, you need to provide the IP address of the server, for example:
<code>http://192.168.0.2:8082</code>. <code>http://192.168.0.2:8082</code>.
...@@ -187,7 +186,7 @@ the amount of concurrent work is limited by the memory available to the server a ...@@ -187,7 +186,7 @@ the amount of concurrent work is limited by the memory available to the server a
<h3>Login</h3> <h3>Login</h3>
<p> <p>
At the login page, you need to provide connection information to connect to a database. At the login page, you need to provide connection information to connect to a database.
Set the JDBC driver class of your database, the JDBC URL, user name and password. Set the JDBC driver class of your database, the JDBC URL, user name, and password.
If you are done, click [Connect]. If you are done, click [Connect].
</p><p> </p><p>
You can save and reuse previously saved settings. The settings are stored in a properties file You can save and reuse previously saved settings. The settings are stored in a properties file
...@@ -202,37 +201,36 @@ by clicking on the message. ...@@ -202,37 +201,36 @@ by clicking on the message.
<h3>Adding Database Drivers</h3> <h3>Adding Database Drivers</h3>
<p> <p>
Additional database drivers to connect to other databases (MySQL, PostgreSQL, HSQLDB,...) To register additional JDBC drivers (MySQL, PostgreSQL, HSQLDB,...),
can be registered by adding the Jar file location of the driver to the environment add the jar file names to the environment variables <code>H2DRIVERS</code> or <code>CLASSPATH</code>.
variables <code>H2DRIVERS</code> or <code>CLASSPATH</code>. Example (Windows): to add the HSQLDB JDBC driver
Example (Windows): to add the database driver library
<code>C:\Programs\hsqldb\lib\hsqldb.jar</code>, set the environment variable <code>C:\Programs\hsqldb\lib\hsqldb.jar</code>, set the environment variable
<code>H2DRIVERS</code> to <code>H2DRIVERS</code> to
<code>C:\Programs\hsqldb\lib\hsqldb.jar</code>. <code>C:\Programs\hsqldb\lib\hsqldb.jar</code>.
</p><p> </p><p>
Multiple drivers can be set; each entry needs to be separated with a <code>;</code> (Windows) Multiple drivers can be set; entries need to be separated by <code>;</code> (Windows)
or <code>:</code> (other operating systems). or <code>:</code> (other operating systems).
Spaces in the path names are supported. The settings must not be quoted. Spaces in the path names are supported. The settings must not be quoted.
</p> </p>
<h3>Using the H2 Console</h3> <h3>Using the H2 Console</h3>
<p> <p>
The H2 Console application has three main panels: the toolbar on top, the tree on the left, and the query / result panel on the right. The H2 Console application has three main panels: the toolbar on top, the tree on the left, and the query/result panel on the right.
The database objects (for example, tables) are listed on the left panel. The database objects (for example, tables) are listed on the left.
Type in a SQL command on the query panel and click 'Run'. The result of the command appears just below the command. Type a SQL command in the query panel and click [Run]. The result appears just below the command.
</p> </p>
<h3>Inserting Table Names or Column Names</h3> <h3>Inserting Table Names or Column Names</h3>
<p> <p>
The table name and column names can be inserted in the script by clicking them in the tree. To insert table and column names into the script, click on the item in the tree.
If you click on a table while the query is empty, then <code>SELECT * FROM ...</code> is added as well. If you click on a table while the query is empty, then <code>SELECT * FROM ...</code> is added.
While typing a query, the table that was used is automatically expanded in the tree. While typing a query, the table that was used is expanded in the tree.
For example if you type <code>SELECT * FROM TEST T WHERE T.</code> then the table TEST is automatically expanded in the tree. For example if you type <code>SELECT * FROM TEST T WHERE T.</code> then the table TEST is expanded.
</p> </p>
<h3>Disconnecting and Stopping the Application</h3> <h3>Disconnecting and Stopping the Application</h3>
<p> <p>
To log out of the database, click 'Disconnect' in the toolbar panel. To log out of the database, click [Disconnect] in the toolbar panel.
However, the server is still running and ready to accept new sessions. However, the server is still running and ready to accept new sessions.
</p><p> </p><p>
To stop the server, right click on the system tray icon and select [Exit]. To stop the server, right click on the system tray icon and select [Exit].
...@@ -245,9 +243,9 @@ or close the console window. ...@@ -245,9 +243,9 @@ or close the console window.
<h2 id="console_syntax">Special H2 Console Syntax</h2> <h2 id="console_syntax">Special H2 Console Syntax</h2>
<p> <p>
The H2 Console supports a few built-in commands. The H2 Console supports a few built-in commands.
Those are interpreted within the H2 Console, that means they work with any database. Those are interpreted within the H2 Console, so they work with any database.
They need to be at the beginning of a statement (before any remarks), Built-in commands need to be at the beginning of a statement (before any remarks),
otherwise they are not parsed correctly. If in doubt, add ';' before the command. otherwise they are not parsed correctly. If in doubt, add <code>;</code> before the command.
</p> </p>
<table class="main"> <table class="main">
<tr> <tr>
...@@ -279,16 +277,16 @@ otherwise they are not parsed correctly. If in doubt, add ';' before the command ...@@ -279,16 +277,16 @@ otherwise they are not parsed correctly. If in doubt, add ';' before the command
@tables null null TEST;<br /> @tables null null TEST;<br />
</td> </td>
<td> <td>
Call the corresponding DatabaseMetaData.get method. Call the corresponding <code>DatabaseMetaData.get</code> method.
Patterns are case sensitive (usually identifiers are uppercase). Patterns are case sensitive (usually identifiers are uppercase).
For information about the parameters, see the Javadoc documentation. For information about the parameters, see the Javadoc documentation.
Missing parameters at the end are set to null. The complete list of commands is: Missing parameters at the end are set to null. The complete list of commands is:
<code> <code>
@attributes @best_row_identifier @catalogs @columns @attributes, @best_row_identifier, @catalogs, @columns,
@column_privileges @cross_references @exported_keys @column_privileges, @cross_references, @exported_keys,
@imported_keys @index_info @primary_keys @procedures @imported_keys, @index_info, @primary_keys, @procedures,
@procedure_columns @schemas @super_tables @super_types @procedure_columns, @schemas, @super_tables, @super_types,
@tables @table_privileges @table_types @type_info @udts @tables, @table_privileges, @table_types, @type_info, @udts,
@version_columns @version_columns
</code> </code>
</td> </td>
...@@ -387,7 +385,7 @@ otherwise they are not parsed correctly. If in doubt, add ';' before the command ...@@ -387,7 +385,7 @@ otherwise they are not parsed correctly. If in doubt, add ';' before the command
@prof_stop; @prof_stop;
</td> </td>
<td> <td>
Start / stop the built-in profiling tool. Start/stop the built-in profiling tool.
The top 3 stack traces of the statement(s) between start and stop are listed The top 3 stack traces of the statement(s) between start and stop are listed
(if there are 3). (if there are 3).
</td> </td>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -16,7 +16,7 @@ public class Constants { ...@@ -16,7 +16,7 @@ public class Constants {
/** /**
* The build date is updated for each public release. * The build date is updated for each public release.
*/ */
public static final String BUILD_DATE = "2011-03-14"; public static final String BUILD_DATE = "2011-04-04";
/** /**
* The build date is updated for each public release. * The build date is updated for each public release.
...@@ -26,7 +26,7 @@ public class Constants { ...@@ -26,7 +26,7 @@ public class Constants {
/** /**
* The build id is incremented for each public release. * The build id is incremented for each public release.
*/ */
public static final int BUILD_ID = 153; public static final int BUILD_ID = 154;
/** /**
* The build id of the last stable release. * The build id of the last stable release.
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR); CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR);
INSERT INTO VERSION VALUES INSERT INTO VERSION VALUES
(104, '1.3.154', '2011-04-04'),
(103, '1.3.153', '2011-03-14'), (103, '1.3.153', '2011-03-14'),
(102, '1.3.152 Beta', '2011-03-01'), (102, '1.3.152 Beta', '2011-03-01'),
(101, '1.3.151 Beta', '2011-02-12'), (101, '1.3.151 Beta', '2011-02-12'),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论