提交 da30c87b authored 作者: Thomas Mueller's avatar Thomas Mueller

docs

上级 d9a94ab2
......@@ -71,8 +71,7 @@ Advanced Topics
<a href="#glossary_links">
Glossary and Links</a><br />
<br /><a name="result_sets"></a>
<h2>Result Sets</h2>
<h2 id="result_sets">Result Sets</h2>
<h3>Limiting the Number of Rows</h3>
<p>
......@@ -91,8 +90,8 @@ If ORDER BY is used, the sorting is done using an external sort algorithm. In th
quick sort, then written to disk; when reading the data, the blocks are merged together.
</p>
<br /><a name="large_objects"></a>
<h2>Large Objects</h2>
<br />
<h2 id="large_objects">Large Objects</h2>
<h3>Storing and Reading Large Objects</h3>
<p>
......@@ -126,8 +125,8 @@ operations. If you store many large compressible values such as XML, HTML, text,
then compressing can save a lot of disk space (sometimes more than 50%), and read operations may even be faster.
</p>
<br /><a name="linked_tables"></a>
<h2>Linked Tables</h2>
<br />
<h2 id="linked_tables">Linked Tables</h2>
<p>
This database supports linked tables, which means tables that don't exist in the current database but
are just links to another database. To create such a link, use the CREATE LINKED TABLE statement:
......@@ -160,8 +159,8 @@ The CREATE LINKED TABLE statement supports an optional schema name parameter.
See the grammar for details.
</p>
<br /><a name="transaction_isolation"></a>
<h2>Transaction Isolation</h2>
<br />
<h2 id="transaction_isolation">Transaction Isolation</h2>
<p>
Transaction isolation is provided for all data manipulation language (DML) statements.
Most data definition language (DDL) statements commit the current transaction.
......@@ -232,8 +231,8 @@ connection will get a lock timeout exception. The lock timeout can be set indivi
for each connection.
</p>
<br /><a name="mvcc"></a>
<h2>Multi-Version Concurrency Control (MVCC)</h2>
<br />
<h2 id="mvcc">Multi-Version Concurrency Control (MVCC)</h2>
<p>
The MVCC feature allows higher concurrency than using (table level or row level) locks.
When using MVCC in this database, delete, insert and update operations will only issue a
......@@ -258,8 +257,8 @@ the complete undo log must fit in memory when using multi-version concurrency
(the setting MAX_MEMORY_UNDO has no effect).
</p>
<br /><a name="clustering"></a>
<h2>Clustering / High Availability</h2>
<br />
<h2 id="clustering">Clustering / High Availability</h2>
<p>
This database supports a simple clustering / high availability mechanism. The architecture is:
two database servers run on two different computers, and on both computers is a copy of the
......@@ -339,8 +338,8 @@ directly in modifying statements (for example INSERT, UPDATE, or MERGE). However
in read-only statements and the result can then be used for modifying statements.
</p>
<br /><a name="two_phase_commit"></a>
<h2>Two Phase Commit</h2>
<br />
<h2 id="two_phase_commit">Two Phase Commit</h2>
<p>
The two phase commit protocol is supported. 2-phase-commit works as follows:
</p>
......@@ -360,8 +359,8 @@ The two phase commit protocol is supported. 2-phase-commit works as follows:
</li><li>The database needs to be closed and re-opened to apply the changes
</li></ul>
<br /><a name="compatibility"></a>
<h2>Compatibility</h2>
<br />
<h2 id="compatibility">Compatibility</h2>
<p>
This database is (up to a certain point) compatible to other databases such as HSQLDB, MySQL and PostgreSQL.
There are certain areas where H2 is incompatible.
......@@ -387,8 +386,8 @@ Certain words of this list are keywords because they are functions that can be u
for example CURRENT_TIMESTAMP.
</p>
<br /><a name="standards_compliance"></a>
<h2>Standards Compliance</h2>
<br />
<h2 id="standards_compliance">Standards Compliance</h2>
<p>
This database tries to be as much standard compliant as possible. For the SQL language, ANSI/ISO is the main
standard. There are several versions that refer to the release date: SQL-92, SQL:1999, and SQL:2003.
......@@ -396,8 +395,8 @@ Unfortunately, the standard documentation is not freely available. Another probl
are not standardized. Whenever this is the case, this database tries to be compatible to other databases.
</p>
<br /><a name="windows_service"></a>
<h2>Run as Windows Service</h2>
<br />
<h2 id="windows_service">Run as Windows Service</h2>
<p>
Using a native wrapper / adapter, Java applications can be run as a Windows Service.
There are various tools available to do that. The Java Service Wrapper from Tanuki Software, Inc.
......@@ -440,8 +439,8 @@ To uninstall the service, double click on 5_uninstall_service.bat.
If successful, a command prompt window will pop up and disappear immediately. If not, a message will appear.
</p>
<br /><a name="odbc_driver"></a>
<h2>ODBC Driver</h2>
<br />
<h2 id="odbc_driver">ODBC Driver</h2>
<p>
This database does not come with its own ODBC driver at this time,
but it supports the PostgreSQL network protocol.
......@@ -547,8 +546,8 @@ Also, it is currently not possible to use encrypted SSL connections.
Therefore the ODBC driver should not be used where security is important.
</p>
<br /><a name="microsoft_dot_net"></a>
<h2>Using H2 in Microsoft .NET</h2>
<br />
<h2 id="microsoft_dot_net">Using H2 in Microsoft .NET</h2>
<p>
The database can be used from Microsoft .NET even without using Java, by using IKVM.NET.
You can access a H2 database on .NET using the JDBC API, or using the ADO.NET interface.
......@@ -597,8 +596,8 @@ class Test
}
</pre>
<br /><a name="acid"></a>
<h2>ACID</h2>
<br />
<h2 id="acid">ACID</h2>
<p>
In the database world, ACID stands for:
</p>
......@@ -637,8 +636,8 @@ If durability is required for all possible cases of hardware failure, clustering
such as the H2 clustering mode.
</p>
<br /><a name="durability_problems"></a>
<h2>Durability Problems</h2>
<br />
<h2 id="durability_problems">Durability Problems</h2>
<p>
Complete durability means all committed transaction survive a power failure.
Some databases claim they can guarantee durability, but such claims are wrong.
......@@ -718,8 +717,8 @@ none of the databases contains all the records that the listener computer knows
consult the source code of the listener and test application.
</p>
<br /><a name="using_recover_tool"></a>
<h2>Using the Recover Tool</h2>
<br />
<h2 id="using_recover_tool">Using the Recover Tool</h2>
<p>
The recover tool can be used to extract the contents of a data file, even if the database is corrupted.
It also extracts the content of the log file or large objects (CLOB or BLOB).
......@@ -743,8 +742,8 @@ however it does not automatically apply those changes. Usually, many of those ch
applied in the .data.db file.
</p>
<br /><a name="file_locking_protocols"></a>
<h2>File Locking Protocols</h2>
<br />
<h2 id="file_locking_protocols">File Locking Protocols</h2>
<p>
Whenever a database is opened, a lock file is created to signal other processes
that the database is in use. If the database is closed, or if the process that opened
......@@ -825,8 +824,8 @@ share, two processes (running on different computers) could still open the same
database files, if they do not have a direct TCP/IP connection.
</p>
<br /><a name="sql_injection"></a>
<h2>Protection against SQL Injection</h2>
<br />
<h2 id="sql_injection">Protection against SQL Injection</h2>
<h3>What is SQL Injection</h3>
<p>
This database engine provides a solution for the security vulnerability known as 'SQL Injection'.
......@@ -907,8 +906,8 @@ It is not required to create a constant for the number 0 as there is already a b
SELECT * FROM USERS WHERE LENGTH(PASSWORD)=ZERO();
</pre>
<br /><a name="remote_access"></a>
<h2>Protection against Remote Access</h2>
<br />
<h2 id="remote_access">Protection against Remote Access</h2>
<p>
By default this database does not allow others to connect when starting the H2 Console,
the TCP server, or the PG server. Remote access can be enabled using the command line
......@@ -918,8 +917,8 @@ users can not create new databases or access existing databases with weak passwo
ensure the existing accessible databases are protected using a strong password.
</p>
<br /><a name="restricting_classes"></a>
<h2>Restricting Class Loading and Usage</h2>
<br />
<h2 id="restricting_classes">Restricting Class Loading and Usage</h2>
<p>
By default there is no restriction on loading classes and executing Java code for admins.
That means an admin may call system functions such as System.setProperty by executing:
......@@ -945,8 +944,8 @@ trigger classes, user-defined functions, user-defined aggregate functions, and J
driver classes (with the exception of the H2 driver) when using the H2 Console.
</p>
<br /><a name="security_protocols"></a>
<h2>Security Protocols</h2>
<br />
<h2 id="security_protocols">Security Protocols</h2>
<p>
The following paragraphs document the security protocols used in this database.
These descriptions are very technical and only intended for security experts that already know
......@@ -1056,8 +1055,8 @@ There is a default self-certified certificate to support an easy starting point,
custom certificates are supported as well.
</p>
<br /><a name="ssl_tls_connections"></a>
<h2>SSL/TLS Connections</h2>
<br />
<h2 id="ssl_tls_connections">SSL/TLS Connections</h2>
<p>
Remote SSL/TLS connections are supported using the Java Secure Socket Extension
(SSLServerSocket / SSLSocket). By default, anonymous SSL is enabled.
......@@ -1074,10 +1073,10 @@ for more information.
To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</code> to false.
</p>
<br /><a name="uuid"></a>
<h2>Universally Unique Identifiers (UUID)</h2>
<br />
<h2 id="uuid">Universally Unique Identifiers (UUID)</h2>
<p>
This database supports the UUIDs. Also supported is a function to create new UUIDs using
This database supports UUIDs. Also supported is a function to create new UUIDs using
a cryptographically strong pseudo random number generator.
With random UUIDs, the chance of two having the same value can be calculated
using the probability theory. See also 'Birthday Paradox'.
......@@ -1115,8 +1114,8 @@ one's annual risk of being hit by a meteorite is estimated to be one chance in 1
that means the probability is about 0.000'000'000'06.
</p>
<br /><a name="system_properties"></a>
<h2>Settings Read from System Properties</h2>
<br />
<h2 id="system_properties">Settings Read from System Properties</h2>
<p>
Some settings of the database can be set on the command line using
-DpropertyName=value. It is usually not required to change those settings manually.
......@@ -1135,8 +1134,8 @@ For a complete list of settings, see
<a href="../javadoc/org/h2/constant/SysProperties.html">SysProperties</a>.
</p>
<br /><a name="server_bind_address"></a>
<h2>Setting the Server Bind Address</h2>
<br />
<h2 id="server_bind_address">Setting the Server Bind Address</h2>
<p>
Usually server sockets accept connections on any/all local addresses.
This may be a problem on multi-homed hosts.
......@@ -1145,8 +1144,8 @@ This setting is used for both regular server sockets and for SSL server sockets.
IPv4 and IPv6 address formats are supported.
</p>
<br /><a name="file_system"></a>
<h2>Pluggable File System</h2>
<br />
<h2 id="file_system">Pluggable File System</h2>
<p>
This database supports a pluggable file system API. The file system implementation
is selected using a file name prefix. The following file systems are included:
......@@ -1167,8 +1166,8 @@ To register a new file system, extend the classes org.h2.store.fs.FileSystem and
and call the method FileSystem.register before using it.
</p>
<br /><a name="limits_limitations"></a>
<h2>Limits and Limitations</h2>
<br />
<h2 id="limits_limitations">Limits and Limitations</h2>
<p>
This database has the following known limitations:
</p>
......@@ -1206,8 +1205,8 @@ OR X = 2 OR X = 2 OR X = 2 OR X = 2 OR X = 2
or the data type documentation of this database.
</li></ul>
<br /><a name="glossary_links"></a>
<h2>Glossary and Links</h2>
<br />
<h2 id="glossary_links">Glossary and Links</h2>
<table>
<tr>
<th>Term</th>
......
......@@ -33,15 +33,15 @@ Build
<a href="#automated">
Automated Build</a><br />
<br /><a name="portability"></a>
<h2>Portability</h2>
<br />
<h2 id="portability">Portability</h2>
<p>
This database is written in Java and therefore works on many platforms.
It can also be compiled to a native executable using GCJ.
</p>
<br /><a name="environment"></a>
<h2>Environment</h2>
<br />
<h2 id="environment">Environment</h2>
<p>
A Java Runtime Environment (JRE) version 1.5 or higher is required to run this database.
</p>
......@@ -63,8 +63,8 @@ Newer version or compatible software works too.
</li><li><a href="http://maven.apache.org">Maven 2.0.9</a>
</li></ul>
<br /><a name="building"></a>
<h2>Building the Software</h2>
<br />
<h2 id="building">Building the Software</h2>
<p>
You need to install a JDK, for example the Sun JDK version 1.5 or 1.6.
Ensure that Java binary directory is included in the PATH environment variable, and that
......@@ -93,8 +93,8 @@ To switch the source code to the install version of Java, run:
build switchSource
</pre>
<br /><a name="build_targets"></a>
<h2>Build Targets</h2>
<br />
<h2 id="build_targets">Build Targets</h2>
<p>
The build system can generate smaller jar files as well. The following targets are currently supported:
</p>
......@@ -110,8 +110,8 @@ To create the h2client.jar file, go to the directory h2 and execute the followin
build jarClient
</pre>
<br /><a name="maven2"></a>
<h2>Using Maven 2</h2>
<br />
<h2 id="maven2">Using Maven 2</h2>
<h3>Using a Central Repository</h3>
<p>
You can include the database in your Maven 2 project as a dependency.
......@@ -148,8 +148,8 @@ Afterwards, you can include the database in your Maven 2 project as a dependency
&lt;/dependency&gt;
</pre>
<br /><a name="translating"></a>
<h2>Translating</h2>
<br />
<h2 id="translating">Translating</h2>
<p>
The translation of this software is split into the following parts:
</p>
......@@ -165,8 +165,8 @@ is automated by running the tool PropertiesToUTF8. The web site translation is a
using <code>build docs</code>.
</p>
<br /><a name="providing_patches"></a>
<h2>Providing Patches</h2>
<br />
<h2 id="providing_patches">Providing Patches</h2>
<p>
If you like to provide patches, please consider the following guidelines to simplify merging them:
</p>
......@@ -201,8 +201,8 @@ multiple-licensed under the H2 License, version 1.0, and under the
Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)."
</pre>
<br /><a name="automated"></a>
<h2>Automated Build</h2>
<br />
<h2 id="automated">Automated Build</h2>
<p>
This build process is automated and runs regularly.
The build process includes running the tests and code coverage, using the command line
......
......@@ -22,7 +22,7 @@ Data Types
<c:forEach var="item" items="dataTypes">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......
......@@ -40,8 +40,8 @@ Frequently Asked Questions
<a href="#translate">
How to Translate this Project?</a><br />
<br /><a name="known_bugs"></a>
<h3>Are there Known Bugs? When is the Next Release?</h3>
<br />
<h3 id="known_bugs">Are there Known Bugs? When is the Next Release?</h3>
<p>
Usually, bugs get fixes as they are found. There is a release every few weeks.
Here is the list of known and confirmed issues:
......@@ -62,15 +62,15 @@ Here is the list of known and confirmed issues:
This problem is solved in Install4j 4.1.4.
</li></ul>
<br /><a name="open_source"></a>
<h3>Is this Database Engine Open Source?</h3>
<br />
<h3 id="open_source">Is this Database Engine Open Source?</h3>
<p>
Yes. It is free to use and distribute, and the source code is included.
See also under license.
</p>
<br /><a name="query_slow"></a>
<h3>My Query is Slow</h3>
<br />
<h3 id="query_slow">My Query is Slow</h3>
<p>
Slow SELECT (or DELETE, UPDATE, MERGE) statement can have multiple reasons.
Follow this checklist:
......@@ -83,14 +83,14 @@ Follow this checklist:
</li>
</ul>
<br /><a name="create_database"></a>
<h3>How to Create a New Database?</h3>
<br />
<h3 id="create_database">How to Create a New Database?</h3>
<p>
By default, a new database is automatically created if it does not yet exist.
</p>
<br /><a name="connect"></a>
<h3>How to Connect to a Database?</h3>
<br />
<h3 id="connect">How to Connect to a Database?</h3>
<p>
The database driver is <code>org.h2.Driver</code>,
and the database URL starts with <code>jdbc:h2:</code>.
......@@ -101,8 +101,8 @@ Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
</pre>
<br /><a name="database_files"></a>
<h3>Where are the Database Files Stored?</h3>
<br />
<h3 id="database_files">Where are the Database Files Stored?</h3>
<p>
When using database URLs like jdbc:h2:~/test, the database is stored in the user directory.
For Windows, this is usually "C:\Documents and Settings\&lt;userName&gt;".
......@@ -114,14 +114,14 @@ The directory is created automatically if it does not yet exist. It is also poss
Example: jdbc:h2:file:C:/data/test
</p>
<br /><a name="size_limit"></a>
<h3>What is the Size Limit (Maximum Size) of a Database?</h3>
<br />
<h3 id="size_limit">What is the Size Limit (Maximum Size) of a Database?</h3>
<p>
See <a href="advanced.html#limits_limitations">Limits and Limitations</a>.
</p>
<br /><a name="reliable"></a>
<h3>Is it Reliable?</h3>
<br />
<h3 id="reliable">Is it Reliable?</h3>
<p>
Some users have reported that after a power failure, the database can sometimes not be
opened because the index file is corrupt. In that case, the index file can be deleted
......@@ -173,8 +173,8 @@ Areas considered Experimental:
</li><li>Compatibility modes for other databases (only some features are implemented)
</li></ul>
<br /><a name="slow_open"></a>
<h3>Why is Opening my Database Slow?</h3>
<br />
<h3 id="slow_open">Why is Opening my Database Slow?</h3>
<p>
If it takes a long time to open a database, in most cases it was not closed the last time.
This is specially a problem for larger databases.
......@@ -194,8 +194,8 @@ Other possible reasons are: the database is very big (many GB), or contains link
that are slow to open.
</p>
<br /><a name="gcj"></a>
<h3>Is the GCJ Version Stable? Faster?</h3>
<br />
<h3 id="gcj">Is the GCJ Version Stable? Faster?</h3>
<p>
The GCJ version is not as stable as the Java version.
When running the regression test with the GCJ version, sometimes the application just stops
......@@ -204,8 +204,8 @@ Currently, the GCJ version is also slower than when using the Sun VM.
However, the startup of the GCJ version is faster than when using a VM.
</p>
<br /><a name="translate"></a>
<h3>How to Translate this Project?</h3>
<br />
<h3 id="translate">How to Translate this Project?</h3>
<p>
For more information, see
<a href="build.html#translating">Build/Translating</a>.
......
......@@ -84,8 +84,8 @@ Features
<a href="#cache_settings">
Cache Settings</a><br />
<br /><a name="feature_list"></a>
<h2>Feature List</h2>
<br />
<h2 id="feature_list">Feature List</h2>
<h3>Main Features</h3>
<ul>
<li>Very fast database engine
......@@ -152,8 +152,8 @@ Features
</li><li>Well tested (high code coverage, randomized stress tests)
</li></ul>
<br /><a name="comparison"></a>
<h2>Comparison to Other Database Engines</h2>
<br />
<h2 id="comparison">Comparison to Other Database Engines</h2>
<table><tr>
<th>Feature</th>
......@@ -383,15 +383,15 @@ It looks like the development of this database has stopped. The last release was
It looks like the development of this database has stopped. The last release was August 2004
</p>
<br /><a name="products_work_with"></a>
<h2>H2 in Use</h2>
<br />
<h2 id="products_work_with">H2 in Use</h2>
<p>
For a list of applications that work with or use H2, see:
<a href="links.html">Links</a>.
</p>
<br /><a name="connection_modes"></a>
<h2>Connection Modes</h2>
<br />
<h2 id="connection_modes">Connection Modes</h2>
<p>
The following connection modes are supported:
</p>
......@@ -445,8 +445,8 @@ it's an local or remote connection) can do so using the exact same database URL.
<img src="images/connection-mode-mixed.png"
alt="The database and the server is running inside the application; another application connects remotely" />
<br /><a name="database_url"></a>
<h2>Database URL Overview</h2>
<br />
<h2 id="database_url">Database URL Overview</h2>
<p>
This database supports multiple connection modes and connection settings.
This is achieved using different database URLs. Settings in the URLs are not case sensitive.
......@@ -586,8 +586,8 @@ This is achieved using different database URLs. Settings in the URLs are not cas
</tr>
</table>
<br /><a name="embedded_databases"></a>
<h2>Connecting to an Embedded (Local) Database</h2>
<br />
<h2 id="embedded_databases">Connecting to an Embedded (Local) Database</h2>
<p>
The database URL for connecting to a local database is <code>jdbc:h2:[file:][&lt;path&gt;]&lt;databaseName&gt;</code>.
The prefix <code>file:</code> is optional. If no or only a relative path is used, then the current working
......@@ -597,8 +597,8 @@ The database name must be at least three characters long (a limitation of File.c
To point to the user home directory, use ~/, as in: jdbc:h2:~/test.
</p>
<br /><a name="memory_only_databases"></a>
<h2>Memory-Only Databases</h2>
<br />
<h2 id="memory_only_databases">Memory-Only Databases</h2>
<p>
For certain use cases (for example: rapid prototyping, testing, high performance
operations, read-only databases), it may not be required to persist data, or persist changes to the data.
......@@ -625,8 +625,8 @@ To keep the content of an in-memory database as long as the virtual machine is a
<code>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>.
</p>
<br /><a name="file_encryption"></a>
<h2>Database Files Encryption</h2>
<br />
<h2 id="file_encryption">Database Files Encryption</h2>
<p>
The database files can be encrypted. Two encryption algorithms are supported: AES and XTEA.
To use file encryption, you need to specify the encryption algorithm (the 'cipher')
......@@ -668,8 +668,8 @@ with the file password 'filepwd' and the encryption algorithm AES:
java -cp h2*.jar org.h2.tools.ChangeFileEncryption -dir ~ -db test -cipher AES -encrypt filepwd
</pre>
<br /><a name="database_file_locking"></a>
<h2>Database File Locking</h2>
<br />
<h2 id="database_file_locking">Database File Locking</h2>
<p>
Whenever a database is opened, a lock file is created to signal other processes
that the database is in use. If database is closed, or if the process that opened
......@@ -706,8 +706,8 @@ For more information about the algorithms, see
<a href="advanced.html#file_locking_protocols">Advanced / File Locking Protocols</a>.
</p>
<br /><a name="database_only_if_exists"></a>
<h2>Opening a Database Only if it Already Exists</h2>
<br />
<h2 id="database_only_if_exists">Opening a Database Only if it Already Exists</h2>
<p>
By default, when an application calls <code>DriverManager.getConnection(url, ...)</code>
and the database specified in the URL does not yet exist, a new (empty) database is created.
......@@ -721,8 +721,8 @@ The complete URL may look like this:
String url = "jdbc:h2:/data/sample;IFEXISTS=TRUE";
</pre>
<br /><a name="closing_a_database"></a>
<h2>Closing a Database</h2>
<br />
<h2 id="closing_a_database">Closing a Database</h2>
<h3>Delayed Database Closing</h3>
<p>
......@@ -743,8 +743,8 @@ This setting is persistent and can be set by an administrator only.
It is possible to set the value in the database URL: <code>jdbc:h2:~/test;DB_CLOSE_DELAY=10</code>.
</p>
<br /><a name="do_not_close_on_exit"></a>
<h3>Don't Close a Database when the VM Exits</h3>
<br />
<h3 id="do_not_close_on_exit">Don't Close a Database when the VM Exits</h3>
<p>
By default, a database is closed when the last connection is closed. However, if it is never closed,
the database is closed when the virtual machine exits normally, using a shutdown hook.
......@@ -759,8 +759,8 @@ The database URL to disable database closing on exit is:
String url = "jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE";
</pre>
<br /><a name="log_index_changes"></a>
<h2>Log Index Changes</h2>
<br />
<h2 id="log_index_changes">Log Index Changes</h2>
<p>
Usually, changes to the index file are not logged for performance.
If the index file is corrupt or missing when opening a database, it is re-created from the data.
......@@ -775,8 +775,8 @@ This setting should be specified when connecting.
The update performance of the database will be reduced when using this option.
</p>
<br /><a name="ignore_unknown_settings"></a>
<h2>Ignore Unknown Settings</h2>
<br />
<h2 id="ignore_unknown_settings">Ignore Unknown Settings</h2>
<p>
Some applications (for example OpenOffice.org Base) pass some additional parameters
when connecting to the database. Why those parameters are passed is unknown.
......@@ -787,8 +787,8 @@ saying the parameter is not supported. It is possible to ignored such parameters
;IGNORE_UNKNOWN_SETTINGS=TRUE to the database URL.
</p>
<br /><a name="other_settings"></a>
<h2>Changing Other Settings when Opening a Connection</h2>
<br />
<h2 id="other_settings">Changing Other Settings when Opening a Connection</h2>
<p>
In addition to the settings already described,
other database settings can be passed in the database URL.
......@@ -797,8 +797,8 @@ same as executing the statement <code>SET setting value</code> just after
connecting. For a list of supported settings, see <a href="grammar.html">SQL Grammar</a>.
</p>
<br /><a name="custom_access_mode"></a>
<h2>Custom File Access Mode</h2>
<br />
<h2 id="custom_access_mode">Custom File Access Mode</h2>
<p>
Usually, the database opens log, data and index files with the access mode 'rw', meaning
read-write (except for read only databases, where the mode 'r' is used).
......@@ -817,8 +817,8 @@ For more information see <a href="advanced.html#durability_problems">Durability
On many operating systems the access mode 'rws' does not guarantee that the data is written to the disk.
</p>
<br /><a name="multiple_connections"></a>
<h2>Multiple Connections</h2>
<br />
<h2 id="multiple_connections">Multiple Connections</h2>
<h3>Opening Multiple Databases at the Same Time</h3>
<p>
......@@ -900,8 +900,8 @@ The initial lock timeout (that is the timeout used for new connections) can be s
SET DEFAULT_LOCK_TIMEOUT &lt;milliseconds&gt;. The default lock timeout is persistent.
</p>
<br /><a name="database_file_layout"></a>
<h2>Database File Layout</h2>
<br />
<h2 id="database_file_layout">Database File Layout</h2>
<p>
There are a number of files created for persistent databases. Unlike some other databases,
not every table and/or index is stored in its own file. Instead, usually only the following files are created:
......@@ -998,8 +998,8 @@ automatically if they don't exist.
To backup data while the database is running, the SQL command SCRIPT can be used.
</p>
<br /><a name="logging_recovery"></a>
<h2>Logging and Recovery</h2>
<br />
<h2 id="logging_recovery">Logging and Recovery</h2>
<p>
Whenever data is modified in the database and those changes are committed, the changes are logged
to disk (except for in-memory objects). The changes to the data file itself are usually written
......@@ -1022,8 +1022,8 @@ must contain RECOVER=1, as in jdbc:h2:~/test;RECOVER=1. Indexes are rebuilt in t
the summary (object allocation table) is not read in this case, so opening the database takes longer.
</p>
<br /><a name="compatibility"></a>
<h2>Compatibility</h2>
<br />
<h2 id="compatibility">Compatibility</h2>
<p>
All database engines behave a little bit different. Where possible, H2 supports the ANSI SQL standard,
and tries to be compatible to other databases. There are still a few differences however:
......@@ -1130,8 +1130,8 @@ or the SQL statement <code>SET MODE PostgreSQL</code>.
</li><li>The system columns 'CTID' and 'OID' are supported.
</li></ul>
<br /><a name="auto_reconnect"></a>
<h2>Auto-Reconnect</h2>
<br />
<h2 id="auto_reconnect">Auto-Reconnect</h2>
<p>
The auto-reconnect feature causes the JDBC driver to reconnect to
the database if the connection is lost. The automatic re-connect only
......@@ -1144,8 +1144,8 @@ The contents of the system table INFORMATION_SCHEMA.SESSION_STATE
contains all client side state that is re-created.
</p>
<br /><a name="auto_mixed_mode"></a>
<h2>Automatic Mixed Mode</h2>
<br />
<h2 id="auto_mixed_mode">Automatic Mixed Mode</h2>
<p>
Multiple processes can access the same database without having to start the server manually.
To do that, append <code>;AUTO_SERVER=TRUE</code> to the database URL.
......@@ -1184,8 +1184,8 @@ DriverManager.getConnection("jdbc:h2:/data/test;AUTO_SERVER=TRUE");
DriverManager.getConnection("jdbc:h2:/data/test;AUTO_SERVER=TRUE");
</pre>
<br /><a name="trace_options"></a>
<h2>Using the Trace Options</h2>
<br />
<h2 id="trace_options">Using the Trace Options</h2>
<p>
To find problems in an application, it is sometimes good to see what database operations
where executed. This database offers the following trace features:
......@@ -1259,8 +1259,8 @@ If this is the case, the source code needs to be split in multiple methods.
The password is not listed in the trace file and therefore not included in the source code.
</p>
<br /><a name="other_logging"></a>
<h2>Using Other Logging APIs</h2>
<br />
<h2 id="other_logging">Using Other Logging APIs</h2>
<p>
By default, this database uses its own native 'trace' facility. This facility is called 'trace' and not
'log' within this database to avoid confusion with the transaction log. Trace messages can be
......@@ -1287,8 +1287,8 @@ will not have the desired effect. To use SLF4J, all required jar files need to b
If it does not work, check the file &lt;database&gt;.trace.db for error messages.
</p>
<br /><a name="read_only"></a>
<h2>Read Only Databases</h2>
<br />
<h2 id="read_only">Read Only Databases</h2>
<p>
If the database files are read-only, then the database is read-only as well.
It is not possible to create new tables, add or modify data in this database.
......@@ -1300,8 +1300,8 @@ There are two ways an application can find out whether database is read-only:
by calling Connection.isReadOnly() or by executing the SQL statement CALL READONLY().
</p>
<br /><a name="database_in_zip"></a>
<h2>Read Only Databases in Zip or Jar File</h2>
<br />
<h2 id="database_in_zip">Read Only Databases in Zip or Jar File</h2>
<p>
To create a read-only database in a zip file, first create a regular persistent database, and then create a backup.
If you are using a database named 'test', an easy way to do that is using the Backup tool or the BACKUP SQL statement:
......@@ -1325,8 +1325,8 @@ is not read in memory; therefore large databases are supported as well. The same
a regular database.
</p>
<br /><a name="low_disk_space"></a>
<h2>Graceful Handling of Low Disk Space Situations</h2>
<br />
<h2 id="low_disk_space">Graceful Handling of Low Disk Space Situations</h2>
<p>
If the database needs more disk space, it calls the database event listener if one is installed.
The application may then delete temporary files, or display a message and wait until
......@@ -1344,8 +1344,8 @@ is corrupted, then the database can be opened by specifying a database event lis
The exceptions are logged, but opening the database will continue.
</p>
<br /><a name="computed_columns"></a>
<h2>Computed Columns / Function Based Index</h2>
<br />
<h2 id="computed_columns">Computed Columns / Function Based Index</h2>
<p>
Function indexes are not directly supported by this database, but they can be emulated
by using computed columns. For example, if an index on the upper-case version of
......@@ -1370,8 +1370,8 @@ INSERT INTO ADDRESS(ID, NAME) VALUES(1, 'Miller');
SELECT * FROM ADDRESS WHERE UPPER_NAME='MILLER';
</pre>
<br /><a name="multi_dimensional"></a>
<h2>Multi-Dimensional Indexes</h2>
<br />
<h2 id="multi_dimensional">Multi-Dimensional Indexes</h2>
<p>
A tool is provided to execute efficient multi-dimension (spatial) range queries.
This database does not support a specialized spatial index (R-Tree or similar).
......@@ -1393,8 +1393,8 @@ For an example how to use the tool, please have a look at the sample code provid
in TestMultiDimension.java.
</p>
<br /><a name="passwords"></a>
<h2>Using Passwords</h2>
<br />
<h2 id="passwords">Using Passwords</h2>
<h3>Using Secure Passwords</h3>
<p>
......@@ -1466,8 +1466,8 @@ Connection conn = DriverManager.
The settings in the URL override the settings passed as a separate parameter.
</p>
<br /><a name="user_defined_functions"></a>
<h2>User-Defined Functions and Stored Procedures</h2>
<br />
<h2 id="user_defined_functions">User-Defined Functions and Stored Procedures</h2>
<p>
In addition to the built-in functions, this database supports user-defined Java functions.
In this database, Java functions can be used as stored procedures as well.
......@@ -1586,8 +1586,8 @@ CREATE ALIAS MATRIX FOR "org.h2.samples.Function.getMatrix";
SELECT * FROM MATRIX(4) ORDER BY X, Y;
</pre>
<br /><a name="triggers"></a>
<h2>Triggers</h2>
<br />
<h2 id="triggers">Triggers</h2>
<p>
This database supports Java triggers that are called before or after a row is updated, inserted or deleted.
Triggers can be used for complex consistency checks, or to update related data in the database.
......@@ -1621,8 +1621,8 @@ CREATE TRIGGER INV_INS AFTER INSERT ON INVOICE
The trigger can be used to veto a change, by throwing a SQLException.
</p>
<br /><a name="compacting"></a>
<h2>Compacting a Database</h2>
<br />
<h2 id="compacting">Compacting a Database</h2>
<p>
Empty space in the database file is re-used automatically.
To re-build the indexes, the simplest way is to delete the .index.db file
......@@ -1646,8 +1646,8 @@ The commands SCRIPT / RUNSCRIPT can be used as well to create a backup
of a database and re-build the database from the script.
</p>
<br /><a name="cache_settings"></a>
<h2>Cache Settings</h2>
<br />
<h2 id="cache_settings">Cache Settings</h2>
<p>
The database keeps most frequently used data and index pages in the main memory.
The amount of memory used for caching can be changed using the setting
......
......@@ -13,7 +13,7 @@ Initial Developer: H2 Group
</head><body onload="highlight();">
<table class="nav" onmousemove="return mouseMove(event)"><tr class="nav"><td class="nav" valign="top">
<div id="searchMenu" style="width: 180px; overflow: hidden;">
<div id = "searchMenu" style="width: 180px; overflow: hidden;">
<div class="menu">
<img src="images/h2-logo.png" alt="H2 Logo" onclick="document.location='main.html'" width="136" height="74"/>
</div>
......@@ -32,17 +32,17 @@ Initial Developer: H2 Group
</tr>
<tr class="search">
<td class="search" colspan="2">
<input id="search" name="search" type="text" size="21" maxlength="100" onkeyup="listWords(this.value, '')" /><br />
<input type="reset" id="clear" style="display:none;" value="Clear" onclick="listWords('', '');" />
<input id = "search" name="search" type="text" size="21" maxlength="100" onkeyup="listWords(this.value, '')" /><br />
<input type="reset" id = "clear" style="display:none;" value="Clear" onclick="listWords('', '');" />
</td>
</tr>
<tr class="search" style="display:none;" >
<td class="search" style="width: 1%; vertical-align: middle;"><input id="highlight" type="checkbox" checked="checked" onclick="highlightCurrent(this.checked, search.value)" /></td>
<td class="search" style="width: 1%; vertical-align: middle;"><input id = "highlight" type="checkbox" checked="checked" onclick="highlightCurrent(this.checked, search.value)" /></td>
<td class="search" style="width: 99%; padding: 0px; vertical-align: middle;"> Highlight keyword(s) </td>
</tr>
<tr class="search">
<td class="search" colspan="2">
<table id="result" style="border: 0px;">
<table id = "result" style="border: 0px;">
<tr style="display:none"><td></td></tr>
</table>
</td>
......
......@@ -44,7 +44,7 @@ Functions
<c:forEach var="item" items="functionsAll">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......
......@@ -38,7 +38,7 @@ SQL Grammar
<c:forEach var="item" items="commands">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......@@ -52,7 +52,7 @@ ${item.example}
<c:forEach var="item" items="otherGrammar">
<br />
<a name="${item.link}"></a><h3>${item.topic}</h3>
<h3 id="${item.link}">${item.topic}</h3>
<pre>
${item.syntax}
</pre>
......@@ -65,7 +65,7 @@ ${item.example}
</c:forEach>
<br />
<a name="information_schema"></a><h3>Information Schema</h3>
<h3 id="information_schema">Information Schema</h3>
<p>
The system tables in the schema 'INFORMATION_SCHEMA' contain the meta data
of all tables in the database as well as the current settings.
......@@ -77,7 +77,7 @@ of all tables in the database as well as the current settings.
</table>
<br />
<a name="range_table"></a><h3>Range Table</h3>
<h3 id="range_table">Range Table</h3>
<p>
The range table is a dynamic system table that contains all values from a start to an end value.
The table contains one column called X. Both the start and end values are included in the result.
......
......@@ -27,8 +27,8 @@ History
<a href="#supporters">
Supporters</a><br />
<br /><a name="changelog"></a>
<h2>Change Log</h2>
<br />
<h2 id="changelog">Change Log</h2>
<p>
The up-to-date change log is available at
<a href="http://www.h2database.com/html/changelog.html">
......@@ -36,8 +36,8 @@ http://www.h2database.com/html/changelog.html
</a>
</p>
<br /><a name="roadmap"></a>
<h2>Roadmap</h2>
<br />
<h2 id="roadmap">Roadmap</h2>
<p>
The current roadmap is available at
<a href="http://www.h2database.com/html/roadmap.html">
......@@ -45,8 +45,8 @@ http://www.h2database.com/html/roadmap.html
</a>
</p>
<br /><a name="history"></a>
<h2>History of this Database Engine</h2>
<br />
<h2 id="history">History of this Database Engine</h2>
<p>
The development of H2 was started in May 2004,
but it was first published on December 14th 2005.
......@@ -58,8 +58,8 @@ The name H2 stands for Hypersonic 2; however H2 does not share any code with
Hypersonic SQL or HSQLDB. H2 is built from scratch.
</p>
<br /><a name="why_java"></a>
<h2>Why Java</h2>
<br />
<h2 id="why_java">Why Java</h2>
<p>
A few reasons using a Java database are:
</p>
......@@ -92,8 +92,8 @@ instead of using the existing libraries. Libraries that are not available in ope
Java implementations (such as Swing) are not used or only used for specific features.
</p>
<br /><a name="supporters"></a>
<h2>Supporters</h2>
<br />
<h2 id="supporters">Supporters</h2>
<p>
Many thanks for those who helped by finding and reporting bugs, gave valuable feedback,
spread the word and have translated this project. Also many thanks to the donors who contributed
......
......@@ -26,8 +26,8 @@ Installation
<a href="#directory_structure">
Directory Structure</a><br />
<br /><a name="requirements"></a>
<h2>Requirements</h2>
<br />
<h2 id="requirements">Requirements</h2>
<p>
To run the database, the following minimum software stack is known to work:
</p>
......@@ -38,8 +38,8 @@ To run the database, the following minimum software stack is known to work:
</li><li>Mozilla Firefox 1.5 or newer
</li></ul>
<br /><a name="supported_platforms"></a>
<h2>Supported Platforms</h2>
<br />
<h2 id="supported_platforms">Supported Platforms</h2>
<p>
As this database is written in Java, it can run on many different platforms.
It is tested with Java 1.5 and 1.6 but can also be compiled to native code using GCJ.
......@@ -48,14 +48,14 @@ developed and tested on Windows XP and Mac OS X using the Sun JDK 1.5, but it al
works in many other operating systems and using other Java runtime environments.
</p>
<br /><a name="installing"></a>
<h2>Installing the Software</h2>
<br />
<h2 id="installing">Installing the Software</h2>
<p>
To install the software, run the installer or unzip it to a directory of your choice.
</p>
<br /><a name="directory_structure"></a>
<h2>Directory Structure</h2>
<br />
<h2 id="directory_structure">Directory Structure</h2>
<p>
After installing, you should get the following directory structure:
</p>
......
......@@ -45,67 +45,67 @@ copyright and license as the original code. The copyright of the ported source c
<h2>H2 License, Version 1.0</h2>
<h3 id="section-1">1. Definitions</h3>
<p id="section-1.0.1"><b>1.0.1. "Commercial Use"</b>
<h3 id = "section-1">1. Definitions</h3>
<p id = "section-1.0.1"><b>1.0.1. "Commercial Use"</b>
means distribution or otherwise making the Covered Code available to a third party.
</p>
<p id="section-1.1"><b>1.1. "Contributor"</b>
<p id = "section-1.1"><b>1.1. "Contributor"</b>
means each entity that creates or contributes to the creation of Modifications.
</p>
<p id="section-1.2"><b>1.2. "Contributor Version"</b>
<p id = "section-1.2"><b>1.2. "Contributor Version"</b>
means the combination of the Original Code, prior Modifications used by a Contributor,
and the Modifications made by that particular Contributor.
</p>
<p id="section-1.3"><b>1.3. "Covered Code"</b>
<p id = "section-1.3"><b>1.3. "Covered Code"</b>
means the Original Code or Modifications or the combination of the Original Code and
Modifications, in each case including portions thereof.
</p>
<p id="section-1.4"><b>1.4. "Electronic Distribution Mechanism"</b>
<p id = "section-1.4"><b>1.4. "Electronic Distribution Mechanism"</b>
means a mechanism generally accepted in the software development community for the
electronic transfer of data.
</p>
<p id="section-1.5"><b>1.5. "Executable"</b>
<p id = "section-1.5"><b>1.5. "Executable"</b>
means Covered Code in any form other than Source Code.
</p>
<p id="section-1.6"><b>1.6. "Initial Developer"</b>
<p id = "section-1.6"><b>1.6. "Initial Developer"</b>
means the individual or entity identified as the Initial Developer in the Source Code
notice required by <a href="#exhibit-a">Exhibit A</a>.
</p>
<p id="section-1.7"><b>1.7. "Larger Work"</b>
<p id = "section-1.7"><b>1.7. "Larger Work"</b>
means a work which combines Covered Code or portions thereof with code not governed
by the terms of this License.
</p>
<p id="section-1.8"><b>1.8. "License"</b>
<p id = "section-1.8"><b>1.8. "License"</b>
means this document.
</p>
<p id="section-1.8.1"><b>1.8.1. "Licensable"</b>
<p id = "section-1.8.1"><b>1.8.1. "Licensable"</b>
means having the right to grant, to the maximum extent possible, whether at the
time of the initial grant or subsequently acquired, any and all of the rights
conveyed herein.
</p>
<p id="section-1.9"><b>1.9. "Modifications"</b>
<p id = "section-1.9"><b>1.9. "Modifications"</b>
means any addition to or deletion from the substance or structure of either the
Original Code or any previous Modifications. When Covered Code is released as a
series of files, a Modification is:
</p>
<p id="section-1.9-a">1.9.a. Any addition to or deletion from the contents of a file
<p id = "section-1.9-a">1.9.a. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.
</p>
<p id="section-1.9-b">1.9.b. Any new file that contains any part of the Original Code or
<p id = "section-1.9-b">1.9.b. Any new file that contains any part of the Original Code or
previous Modifications.
</p>
<p id="section-1.10"><b>1.10. "Original Code"</b>
<p id = "section-1.10"><b>1.10. "Original Code"</b>
means Source Code of computer software code which is described in the Source Code
notice required by <a href="#exhibit-a">Exhibit A</a> as Original Code, and which,
at the time of its release under this License is not already Covered Code governed
by this License.
</p>
<p id="section-1.10.1"><b>1.10.1. "Patent Claims"</b>
<p id = "section-1.10.1"><b>1.10.1. "Patent Claims"</b>
means any patent claim(s), now owned or hereafter acquired, including without
limitation, method, process, and apparatus claims, in any patent Licensable by
grantor.
</p>
<p id="section-1.11"><b>1.11. "Source Code"</b>
<p id = "section-1.11"><b>1.11. "Source Code"</b>
means the preferred form of the Covered Code for making modifications to it,
including all modules it contains, plus any associated interface definition files,
scripts used to control compilation and installation of an Executable, or source
......@@ -114,7 +114,7 @@ available Covered Code of the Contributor's choice. The Source Code can be in a
compressed or archival form, provided the appropriate decompression or de-archiving
software is widely available for no charge.
</p>
<p id="section-1.12"><b>1.12. "You" (or "Your")</b>
<p id = "section-1.12"><b>1.12. "You" (or "Your")</b>
means an individual or a legal entity exercising rights under, and complying with
all of the terms of, this License or a future version of this License issued under
<a href="#section-6.1">Section 6.1.</a> For legal entities, "You" includes any entity
......@@ -125,7 +125,7 @@ ownership of more than fifty percent (50%) of the outstanding shares or benefici
ownership of such entity.
</p>
<h3 id="section-2">2. Source Code License</h3>
<h3 id = "section-2">2. Source Code License</h3>
<h4 id="section-2.1">2.1. The Initial Developer Grant</h4>
<p>
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive
......@@ -140,12 +140,12 @@ Modifications, and/or as part of a Larger Work; and
of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or
otherwise dispose of the Original Code (or portions thereof).
</p>
<p id="section-2.1-c">2.1.c. the licenses granted in this Section 2.1
<p id = "section-2.1-c">2.1.c. the licenses granted in this Section 2.1
(<a href="#section-2.1-a">a</a>) and (<a href="#section-2.1-b">b</a>) are effective on
the date Initial Developer first distributes Original Code under the terms of this
License.
</p>
<p id="section-2.1-d">2.1.d. Notwithstanding Section 2.1 (<a href="#section-2.1-b">b</a>)
<p id = "section-2.1-d">2.1.d. Notwithstanding Section 2.1 (<a href="#section-2.1-b">b</a>)
above, no patent license is granted: 1) for code that You delete from the Original Code;
2) separate from the Original Code; or 3) for infringements caused by: i) the
modification of the Original Code or ii) the combination of the Original Code with other
......@@ -170,11 +170,11 @@ sale, have made, and/or otherwise dispose of: 1) Modifications made by that Cont
(or portions thereof); and 2) the combination of Modifications made by that Contributor
with its Contributor Version (or portions of such combination).
</p>
<p id="section-2.2-c">2.2.c. the licenses granted in Sections 2.2
<p id = "section-2.2-c">2.2.c. the licenses granted in Sections 2.2
(<a href="#section-2.2-a">a</a>) and 2.2 (<a href="#section-2.2-b">b</a>) are effective
on the date Contributor first makes Commercial Use of the Covered Code.
</p>
<p id="section-2.2-d">2.2.c. Notwithstanding Section 2.2 (<a href="#section-2.2-b">b</a>)
<p id = "section-2.2-d">2.2.c. Notwithstanding Section 2.2 (<a href="#section-2.2-b">b</a>)
above, no patent license is granted: 1) for any code that Contributor has deleted from
the Contributor Version; 2) separate from the Contributor Version; 3) for infringements
caused by: i) third party modifications of Contributor Version or ii) the combination of
......@@ -183,7 +183,7 @@ Contributor Version) or other devices; or 4) under Patent Claims infringed by Co
in the absence of Modifications made by that Contributor.
</p>
<h3 id="section-3">3. Distribution Obligations</h3>
<h3 id = "section-3">3. Distribution Obligations</h3>
<h4 id="section-3.1">3.1. Application of License</h4>
<p>
The Modifications which You create or to which You contribute are governed by the terms
......@@ -233,12 +233,12 @@ all copies Contributor makes available thereafter and shall take other steps (su
notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who
received the Covered Code that new knowledge has been obtained.
</p>
<p id="section-3.4-b"><b>3.4.b. Contributor APIs:</b>
<p id = "section-3.4-b"><b>3.4.b. Contributor APIs:</b>
If Contributor's Modifications include an application programming interface and Contributor
has knowledge of patent licenses which are reasonably necessary to implement that
API, Contributor must also include this information in the legal file.
</p>
<p id="section-3.4-c"><b>3.4.c. Representations:</b>
<p id = "section-3.4-c"><b>3.4.c. Representations:</b>
Contributor represents that, except as disclosed pursuant to Section 3.4
(<a href="#section-3.4-a">a</a>) above, Contributor believes that Contributor's Modifications
are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the
......@@ -263,7 +263,7 @@ and every Contributor for any liability incurred by the Initial Developer or suc
as a result of warranty, support, indemnity or liability terms You offer.
</p>
<h4 id="section-3.6">3.6. Distribution of Executable Versions</h4>
<h4 id = "section-3.6">3.6. Distribution of Executable Versions</h4>
<p>
You may distribute Covered Code in Executable form only if the requirements of Sections
<a href="#section-3.1">3.1</a>, <a href="#section-3.2">3.2</a>,
......@@ -285,14 +285,14 @@ every Contributor for any liability incurred by the Initial Developer or such Co
a result of any such terms You offer.
</p>
<h4 id="section-3.7">3.7. Larger Works</h4>
<h4 id = "section-3.7">3.7. Larger Works</h4>
<p>
You may create a Larger Work by combining Covered Code with other code not governed by the
terms of this License and distribute the Larger Work as a single product. In such a case,
You must make sure the requirements of this License are fulfilled for the Covered Code.
</p>
<h3 id="section-4">4. Inability to Comply Due to Statute or Regulation.</h3>
<h3 id = "section-4">4. Inability to Comply Due to Statute or Regulation.</h3>
<p>
If it is impossible for You to comply with any of the terms of this License with respect to
some or all of the Covered Code due to statute, judicial order, or regulation then You must:
......@@ -304,13 +304,13 @@ Except to the extent prohibited by statute or regulation, such description must
sufficiently detailed for a recipient of ordinary skill to be able to understand it.
</p>
<h3 id="section-5">5. Application of this License.</h3>
<h3 id = "section-5">5. Application of this License.</h3>
<p>
This License applies to code to which the Initial Developer has attached the notice in
<a href="#exhibit-a">Exhibit A</a> and to related Covered Code.
</p>
<h3 id="section-6">6. Versions of the License.</h3>
<h3 id = "section-6">6. Versions of the License.</h3>
<h4 id="section-6.1">6.1. New Versions</h4>
<p>
......@@ -318,7 +318,7 @@ The <em class="u">H2 Group</em> may publish revised and/or new versions
of the License from time to time. Each version will be given a distinguishing version number.
</p>
<h4 id="section-6.2">6.2. Effect of New Versions</h4>
<h4 id = "section-6.2">6.2. Effect of New Versions</h4>
<p>
Once Covered Code has been published under a particular version of the License, You may
always continue to use it under the terms of that version. You may also choose to use such
......@@ -327,7 +327,7 @@ No one other than the <em class="u">H2 Group</em> has the right to modify the te
created under this License.
</p>
<h4 id="section-6.3">6.3. Derivative Works</h4>
<h4 id = "section-6.3">6.3. Derivative Works</h4>
<p>
If You create or use a modified version of this License (which you may only do in order to
apply it to code which is not already Covered Code governed by this License), You must (a)
......@@ -340,7 +340,7 @@ notice described in <a href="#exhibit-a">Exhibit A</a> shall not of themselves b
be modifications of this License.)
</p>
<h3 id="section-7">7. Disclaimer of Warranty</h3>
<h3 id = "section-7">7. Disclaimer of Warranty</h3>
<p>
Covered code is provided under this license on an "as is"
basis, without warranty of any kind, either expressed or implied, including, without
......@@ -353,7 +353,7 @@ of this license. No use of any covered code is authorized hereunder except under
disclaimer.
</p>
<h3 id="section-8">8. Termination</h3>
<h3 id = "section-8">8. Termination</h3>
<p id="section-8.1">8.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to cure such breach
within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which
......@@ -366,7 +366,7 @@ claim (excluding declaratory judgment actions) against Initial Developer or a Co
(the Initial Developer or Contributor against whom You file such action is referred to
as "Participant") alleging that:
</p>
<p id="section-8.2-a">8.2.a. such Participant's Contributor Version directly or indirectly
<p id = "section-8.2-a">8.2.a. such Participant's Contributor Version directly or indirectly
infringes any patent, then any and all rights granted by such Participant to You under
Sections <a href="#section-2.1">2.1</a> and/or <a href="#section-2.2">2.2</a> of this
License shall, upon 60 days notice from Participant terminate prospectively, unless if
......@@ -380,14 +380,14 @@ Participant to You under Sections <a href="#section-2.1">2.1</a> and/or
<a href="#section-2.2">2.2</a> automatically terminate at the expiration of the 60 day
notice period specified above.
</p>
<p id="section-8.2-b">8.2.b. any software, hardware, or device, other than such Participant's
<p id = "section-8.2-b">8.2.b. any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then any rights
granted to You by such Participant under Sections 2.1(<a href="#section-2.1-b">b</a>)
and 2.2(<a href="#section-2.2-b">b</a>) are revoked effective as of the date You first
made, used, sold, distributed, or had made, Modifications made by that Participant.
</p>
<p id="section-8.3">8.3. If You assert a patent infringement claim against Participant
<p id = "section-8.3">8.3. If You assert a patent infringement claim against Participant
alleging that such Participant's Contributor Version directly or indirectly infringes
any patent where such claim is resolved (such as by license or settlement) prior to the
initiation of patent infringement litigation, then the reasonable value of the licenses
......@@ -396,14 +396,14 @@ granted by such Participant under Sections <a href="#section-2.1">2.1</a> or
value of any payment or license.
</p>
<p id="section-8.4">8.4. In the event of termination under Sections
<p id = "section-8.4">8.4. In the event of termination under Sections
<a href="#section-8.1">8.1</a> or <a href="#section-8.2">8.2</a> above, all end user
license agreements (excluding distributors and resellers) which have been validly
granted by You or any distributor hereunder prior to termination shall survive
termination.
</p>
<h3 id="section-9">9. Limitation of Liability</h3>
<h3 id = "section-9">9. Limitation of Liability</h3>
<p>
Under no circumstances and under no legal theory, whether
tort (including negligence), contract, or otherwise, shall you, the initial developer,
......@@ -419,7 +419,7 @@ or limitation of incidental or consequential damages, so this exclusion and limi
may not apply to you.
</p>
<h3 id="section-10">10. United States Government End Users</h3>
<h3 id = "section-10">10. United States Government End Users</h3>
<p>
The Covered Code is a "commercial item", as that term is defined in 48
C.F.R. 2.101 (October 1995), consisting of
......@@ -429,7 +429,7 @@ terms are used in 48 C.F.R. 12.212 (September 1995). Consistent with 48 C.F.R. 1
acquire Covered Code with only those rights set forth herein.
</p>
<h3 id="section-11">11. Miscellaneous</h3>
<h3 id = "section-11">11. Miscellaneous</h3>
<p>
This License represents the complete agreement concerning subject matter hereof. If
any provision of this License is held to be unenforceable, such provision shall be
......@@ -446,7 +446,7 @@ excluded. Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this License.
</p>
<h3 id="section-12">12. Responsibility for Claims</h3>
<h3 id = "section-12">12. Responsibility for Claims</h3>
<p>
As between Initial Developer and the Contributors, each party is responsible for
claims and damages arising, directly or indirectly, out of its utilization of rights
......@@ -455,7 +455,7 @@ distribute such responsibility on an equitable basis. Nothing herein is intended
shall be deemed to constitute any admission of liability.
</p>
<h3 id="section-13">13. Multiple-Licensed Code</h3>
<h3 id = "section-13">13. Multiple-Licensed Code</h3>
<p>
Initial Developer may designate portions of the Covered Code as
"Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits
......
......@@ -29,8 +29,8 @@ Performance
<a href="#fast_import">
Fast Database Import</a><br />
<br /><a name="performance_comparison"></a>
<h2>Performance Comparison</h2>
<br />
<h2 id="performance_comparison">Performance Comparison</h2>
<p>
In many cases H2 is faster than other
(open source and not open source) database engines.
......@@ -271,8 +271,8 @@ Here, one (wrapper) connection is opened at the start,
and for each step a new connection is opened and then closed.
</p>
<br /><a name="poleposition_benchmark"></a>
<h2>PolePosition Benchmark</h2>
<br />
<h2 id="poleposition_benchmark">PolePosition Benchmark</h2>
<p>
The PolePosition is an open source benchmark. The algorithms are all quite simple.
It was developed / sponsored by db4o.
......@@ -315,8 +315,8 @@ To change that, use the database URL jdbc:h2:file:data/h2/dbbench;DB_CLOSE_DELAY
Unfortunately, the PolePosition test does not take this into account.
</li></ul>
<br /><a name="application_profiling"></a>
<h2>Application Profiling</h2>
<br />
<h2 id="application_profiling">Application Profiling</h2>
<h3>Analyze First</h3>
<p>
......@@ -342,8 +342,8 @@ run <code>jstack &lt;pid&gt;</code> or <code>kill -QUIT &lt;pid&gt;</code> (Linu
Ctrl+C (Windows).
</p>
<br /><a name="database_profiling"></a>
<h2>Database Profiling</h2>
<br />
<h2 id="database_profiling">Database Profiling</h2>
<p>
The ConvertTraceFile tool generates SQL statement statistics at the end of the SQL script file.
The format used is similar to the profiling data generated when using java -Xrunhprof.
......@@ -381,8 +381,8 @@ following profiling data (results vary):
-- 0% 100% 0 1 0 SET TRACE_LEVEL_FILE 3;
</pre>
<br /><a name="database_performance_tuning"></a>
<h2>Database Performance Tuning</h2>
<br />
<h2 id="database_performance_tuning">Database Performance Tuning</h2>
<h3>Use a Modern JVM</h3>
<p>
......@@ -510,8 +510,8 @@ Each data type has different storage and performance characteristics:
</li><li>SMALLINT/TINYINT/BOOLEAN are not significantly smaller or faster to work with than INTEGER in most modes.
</li></ul>
<br /><a name="fast_import"></a>
<h2>Fast Database Import</h2>
<br />
<h2 id="fast_import">Fast Database Import</h2>
<p>
To speed up large imports, consider using the following options temporarily:
</p>
......
......@@ -21,8 +21,8 @@ Quickstart
<a href="#h2_console">
The H2 Console Application</a><br />
<br /><a name="embedding"></a>
<h2>Embedding H2 in an Application</h2>
<br />
<h2 id="embedding">Embedding H2 in an Application</h2>
<p>
This database can be used in embedded mode, or in server mode. To use it in embedded mode, you need to:
</p>
......@@ -33,8 +33,8 @@ This database can be used in embedded mode, or in server mode. To use it in embe
</li><li>A new database is automatically created
</li></ul>
<br /><a name="h2_console"></a>
<h2>The H2 Console Application</h2>
<br />
<h2 id="h2_console">The H2 Console Application</h2>
<p>
The Console lets you access a SQL database using a browser interface.
<br />
......
......@@ -457,6 +457,8 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Maybe disallow = within database names (jdbc:h2:mem:MODE=DB2 means database name MODE=DB2).
</li><li>Fast alter table add column.
</li><li>Improve concurrency for in-memory database operations.
</li><li>Issue 122: Support for connection aliases for remote tcp connections.
</li><li>Fast scrambling (strong encryption doesn't help if the password is included in the application).
</li></ul>
<h2>Not Planned</h2>
......
......@@ -41,7 +41,7 @@ Initial Developer: H2 Group
if (line == i) {
document.write('<b>' + i + '></b><br />');
} else if (line <= 4 || i + 4 == line) {
document.write(i + '<a name="here"></a><br />');
document.write(i + '<a id = "here"></a><br />');
} else {
document.write(i + '<br />');
}
......@@ -50,7 +50,7 @@ Initial Developer: H2 Group
</script>
</td>
<td width="92%" style="vertical-align: top">
<iframe id="source" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="80000px" scrolling="no" src="">
<iframe id = "source" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="80000px" scrolling="no" src="">
</iframe>
</td>
</tr>
......
......@@ -186,14 +186,14 @@ function sizeTextArea() {
<h1>Online Error Analyzer</h1>
<b><a href="../html/main.html">Home</a></b><br />
<h2>
<a href="javascript:select('input')" id="inputTab">Input</a>&nbsp;
<a href="javascript:select('details')" id="detailsTab">Details</a>&nbsp;
<a href="javascript:select('source')" id="sourceTab">Source Code</a>
<a href="javascript:select('input')" id = "inputTab">Input</a>&nbsp;
<a href="javascript:select('details')" id = "detailsTab">Details</a>&nbsp;
<a href="javascript:select('source')" id = "sourceTab">Source Code</a>
</h2>
<hr/>
<div id="input">
<div id = "input">
<p>Fill in the error message and stack trace and click on 'Details' or 'Source Code': </p>
<textarea id="error" cols="100" style="width: 100%; overflow: auto;" rows="20"
<textarea id = "error" cols="100" style="width: 100%; overflow: auto;" rows="20"
onChange="convert()"
onSelect="convert()"
onKeyUp="convert()"
......@@ -203,24 +203,24 @@ function sizeTextArea() {
>
</textarea>
</div>
<div id="details">
<p><b>Error Code: </b><span id="errorCode"></span></p>
<p><b>Product Version: </b><span id="version"></span></p>
<div id = "details">
<p><b>Error Code: </b><span id = "errorCode"></span></p>
<p><b>Product Version: </b><span id = "version"></span></p>
<p><b>Message: </b></p>
<p id="message"></p>
<p id = "message"></p>
<p><b>More Information:</b></p>
<iframe id="more" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
<iframe id = "more" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
</iframe>
</div>
<div id="source">
<table id="sourceTable" style="border:0px" width="100%"><tr>
<div id = "source">
<table id = "sourceTable" style="border:0px" width="100%"><tr>
<td style="border:0px" width="30px">
<p><b>Stack Trace: </b></p>
<p id="links"></p>
<p id = "links"></p>
</td><td style="border:0px" width="90%">
<p><b>Source File: </b><span id="file"></span><br />
Raw file <input type="checkbox" id="rawSource" /> (fast; only Firefox)</p>
<iframe id="code" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
<p><b>Source File: </b><span id = "file"></span><br />
Raw file <input type="checkbox" id = "rawSource" /> (fast; only Firefox)</p>
<iframe id = "code" frameborder="0" marginwidth="0" marginheight="0" width="100%" height="100px" src="">
</iframe>
</td>
</tr></table>
......
......@@ -53,8 +53,8 @@ Tutorial
<a href="#spring">
Using Spring</a><br />
<br /><a name="tutorial_starting_h2_console"></a>
<h2>Starting and Using the H2 Console</h2>
<br />
<h2 id="tutorial_starting_h2_console">Starting and Using the H2 Console</h2>
<p>
The H2 Console application lets you access a SQL database using a browser interface.
This can be a H2 database, or another database that supports the JDBC API.
......@@ -220,8 +220,8 @@ press [Ctrl]+[C] in the console where the server was started (Windows),
or close the console window.
</p>
<br /><a name="console_settings"></a>
<h2>Settings of the H2 Console</h2>
<br />
<h2 id="console_settings">Settings of the H2 Console</h2>
<p>
The settings of the H2 Console are stored in a configuration file
called <code>.h2.server.properties</code> in you user home directory.
......@@ -229,8 +229,8 @@ For Windows installations, the user home directory is usually <code>C:\Documents
The configuration file contains the settings of the application and is automatically created when the H2 Console is first started.
</p>
<br /><a name="connecting_using_jdbc"></a>
<h2>Connecting to a Database using JDBC</h2>
<br />
<h2 id="connecting_using_jdbc">Connecting to a Database using JDBC</h2>
<p>
To connect to a database, a Java application first needs to load the database driver,
and then get a connection. A simple way to do that is using the following code:
......@@ -258,16 +258,16 @@ is the user name ('sa' for System Administrator in this example). The third para
In this database, user names are not case sensitive, but passwords are.
</p>
<br /><a name="creating_new_databases"></a>
<h2>Creating New Databases</h2>
<br />
<h2 id="creating_new_databases">Creating New Databases</h2>
<p>
By default, if the database specified in the URL does not yet exist, a new (empty)
database is created automatically. The user that created the database automatically becomes
the administrator of this database.
</p>
<br /><a name="using_server"></a>
<h2>Using the Server</h2>
<br />
<h2 id="using_server">Using the Server</h2>
<p>
H2 currently supports three server: a web server (for the H2 Console),
a TCP server (for client/server connections) and an PG server (for PostgreSQL clients).
......@@ -342,8 +342,8 @@ Shutting down a TCP server can be protected using the option -tcpPassword
(the same password must be used to start and stop the TCP server).
</p>
<br /><a name="using_hibernate"></a>
<h2>Using Hibernate</h2>
<br />
<h2 id="using_hibernate">Using Hibernate</h2>
<p>
This database supports Hibernate version 3.1 and newer. You can use the HSQLDB Dialect,
or the native H2 Dialect. Unfortunately the H2 Dialect included in Hibernate is buggy. A
......@@ -353,8 +353,8 @@ is also available at src/tools/org/hibernate/dialect/H2Dialect.java.txt.
You can rename it to H2Dialect.java and include this as a patch in your application.
</p>
<br /><a name="using_toplink"></a>
<h2>Using TopLink and Glassfish</h2>
<br />
<h2 id="using_toplink">Using TopLink and Glassfish</h2>
<p>
To use H2 with Glassfish (or Sun AS), set the Datasource Classname to
<code>org.h2.jdbcx.JdbcDataSource</code>. You can set this in the GUI
......@@ -380,8 +380,8 @@ To enable it, change the following setting in persistence.xml:
In old versions of Glassfish, the property name is <code>toplink.platform.class.name</code>.
</p>
<br /><a name="web_applications"></a>
<h2>Using Databases in Web Applications</h2>
<br />
<h2 id="web_applications">Using Databases in Web Applications</h2>
<p>
There are multiple ways to access a database from within web
applications. Here are some examples if you use Tomcat or JBoss.
......@@ -487,8 +487,8 @@ To create a web application with just the H2 Console, run the following command:
build warConsole
</pre>
<br /><a name="csv"></a>
<h2>CSV (Comma Separated Values) Support</h2>
<br />
<h2 id="csv">CSV (Comma Separated Values) Support</h2>
<p>
The CSV file support can be used inside the database using the functions CSVREAD and CSVWRITE,
or it can be used outside the database as a standalone tool.
......@@ -560,8 +560,8 @@ public class TestCsv {
}
</pre>
<br /><a name="upgrade_backup_restore"></a>
<h2>Upgrade, Backup, and Restore</h2>
<br />
<h2 id="upgrade_backup_restore">Upgrade, Backup, and Restore</h2>
<h3>Database Upgrade</h3>
<p>
......@@ -625,8 +625,8 @@ if the file systems support creating snapshots. The problem is that it can't
be guaranteed that the data is copied in the right order.
</p>
<br /><a name="command_line_tools"></a>
<h2>Command Line Tools</h2>
<br />
<h2 id="command_line_tools">Command Line Tools</h2>
<p>
This database comes with a number of command line tools. To get more information about a tool,
start it with the parameter '-?', for example:
......@@ -655,8 +655,8 @@ The tools can also be called from an application by calling the main or another
For details, see the Javadoc documentation.
</p>
<br /><a name="open_office"></a>
<h2>Using OpenOffice Base</h2>
<br />
<h2 id="open_office">Using OpenOffice Base</h2>
<p>
OpenOffice.org Base supports database access over the JDBC API. To connect to a H2 database
using OpenOffice Base, you first need to add the JDBC driver to OpenOffice.
......@@ -703,8 +703,8 @@ This can be done by create it using the NetBeans OpenOffice plugin.
See also <a href="http://wiki.services.openoffice.org/wiki/Extensions_development_java">Extensions Development</a>.
</p>
<br /><a name="web_start"></a>
<h2>Java Web Start / JNLP</h2>
<br />
<h2 id="web_start">Java Web Start / JNLP</h2>
<p>
When using Java Web Start / JNLP (Java Network Launch Protocol), permissions tags must be set in the .jnlp file,
and the application .jar file must be signed. Otherwise, when trying to write to the file system, the following
......@@ -717,8 +717,8 @@ Example permission tags:
&lt;/security>
</pre>
<br /><a name="connection_pool"></a>
<h2>Using a Connection Pool</h2>
<br />
<h2 id="connection_pool">Using a Connection Pool</h2>
<p>
For H2, opening a connection is fast if the database is already open.
Still, using a connection pool improves performance if you open and close connections a lot.
......@@ -746,8 +746,8 @@ public class Test {
}
</pre>
<br /><a name="fulltext"></a>
<h2>Fulltext Search</h2>
<br />
<h2 id="fulltext">Fulltext Search</h2>
<p>
H2 includes two fulltext search implementations. One is using Apache Lucene,
and the other (the native implementation) stores the index data in special
......@@ -791,7 +791,7 @@ The result contains the columns SCHEMA (the schema name),
TABLE (the table name), COLUMNS (an array of column names), and KEYS
(an array of objects). To join a table, use a join as in:
<code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T
WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
</p>
<p>
You can also call the index from within a Java application:
......@@ -841,7 +841,7 @@ The result contains the columns SCHEMA (the schema name),
TABLE (the table name), COLUMNS (an array of column names), and KEYS
(an array of objects). To join a table, use a join as in:
<code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T
WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
</p>
<p>
You can also call the index from within a Java application:
......@@ -851,8 +851,8 @@ org.h2.fulltext.FullTextLucene.search(conn, text, limit, offset);
org.h2.fulltext.FullTextLucene.searchData(conn, text, limit, offset);
</pre>
<br /><a name="user_defined_variables"></a>
<h2>User-Defined Variables</h2>
<br />
<h2 id="user_defined_variables">User-Defined Variables</h2>
<p>
This database supports user-defined variables. Variables start with @ and can be used wherever
expressions or parameters are allowed. Variables are not persisted and session scoped, that means only visible
......@@ -874,8 +874,8 @@ of the value assigned to it, that means it is not necessary (or possible) to dec
There are no restrictions on the assigned values; large objects (LOBs) are supported as well.
</p>
<br /><a name="date_time"></a>
<h2>Date and Time</h2>
<br />
<h2 id="date_time">Date and Time</h2>
<p>
Date, time and timestamp values support ISO 8601 formatting, including time zone:
</p>
......@@ -891,13 +891,13 @@ you need to create a SQL script file using the SCRIPT command or Script tool, an
the database using the RUNSCRIPT command or the RunScript tool in the new time zone.
</p>
<br /><a name="spring"></a>
<h2>Using Spring</h2>
<br />
<h2 id="spring">Using Spring</h2>
<p>
Use the following configuration to start and stop the H2 TCP server using the Spring Framework:
</p>
<pre>
&lt;bean id="org.h2.tools.Server"
&lt;bean id = "org.h2.tools.Server"
class="org.h2.tools.Server"
factory-method="createTcpServer"
init-method="start"
......
......@@ -15,18 +15,18 @@ function off(id) {
function allDetails() {
for (i = 0;; i++) {
x = document.getElementById('m' + i);
x = document.getElementById('_' + i);
if (x == null) {
break;
}
switchTag('m' + i, 'titleOff', 'detailOn');
switchTag(i, 'titleOff', 'detailOn');
}
return false;
}
function switchTag(id, title, detail) {
document.getElementById('t' + id).className = title;
document.getElementById(id).className = detail;
document.getElementById('__' + id).className = title;
document.getElementById('_' + id).className = detail;
return false;
}
......@@ -38,7 +38,7 @@ function openLink() {
}
var ref = page.substr(pos);
link = decodeURIComponent(ref);
el = document.getElementsByName(link)[0].parentNode.parentNode;
el = document.getElementById(link).parentNode.parentNode;
on(el.id);
window.scrollTo(0, el.offsetTop);
return true;
......
......@@ -851,7 +851,7 @@ To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</c
Universally Unique Identifiers (UUID)
@advanced_1284_p
This database supports the UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
@advanced_1285_p
Some values are:
......@@ -9031,13 +9031,19 @@ Fast alter table add column.
@roadmap_1421_li
Improve concurrency for in-memory database operations.
@roadmap_1422_h2
Not Planned
@roadmap_1422_li
Issue 122: Support for connection aliases for remote tcp connections.
@roadmap_1423_li
Fast scrambling (strong encryption doesn't help if the password is included in the application).
@roadmap_1424_h2
Not Planned
@roadmap_1425_li
HSQLDB (did) support this: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
@roadmap_1424_li
@roadmap_1426_li
String.intern (so that Strings can be compared with ==) will not be used because some VMs have problems when used extensively.
@sourceError_1000_h1
......@@ -9050,7 +9056,7 @@ Home
Input
@sourceError_1003_h2
&nbsp; <a href="javascript:select('details')" id="detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id="sourceTab">Source Code</a>
&nbsp; <a href="javascript:select('details')" id = "detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id = "sourceTab">Source Code</a>
@sourceError_1004_p
Fill in the error message and stack trace and click on 'Details' or 'Source Code':
......@@ -9683,7 +9689,7 @@ This will produce a result set that contains the query needed to retrieve the da
QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1201_p
To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1202_p
You can also call the index from within a Java application:
......@@ -9707,7 +9713,7 @@ This will produce a result set that contains the query needed to retrieve the da
QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1209_p
To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1210_p
You can also call the index from within a Java application:
......
......@@ -851,7 +851,7 @@ SSL/TLS 接続
汎用一意識別子 (UUID)
@advanced_1284_p
このデータベースはUUIDをサポートしています。 また、暗号化強力疑似乱数ジェネレーターを使用して新しいUUIDを作成する関数をサポートしています。 同じ値をもつ二つの無作為なUUIDが存在する可能性は、確率論を使用して計算されることができます。 "Birthday Paradox" もご覧下さい。標準化された無作為に生成されたUUIDは、122の無作為なビットを保持しています。 4ビットはバージョン(無作為に生成されたUUID) に、2ビットはバリアント (Leach-Salz) に使用されます。 このデータベースは組み込み関数 RANDOM_UUID() を使用してこのようなUUIDを生成することをサポートしています。 ここに、値の数字が生成された後、二つの 同一のUUIDが生じる可能性を見積もる小さなプログラムがあります:
#This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values:
@advanced_1285_p
いくつかの値は:
......@@ -9031,13 +9031,19 @@ SQLコマンドがコマンドエリアに表示されます。
@roadmap_1421_li
#Improve concurrency for in-memory database operations.
@roadmap_1422_h2
#Not Planned
@roadmap_1422_li
#Issue 122: Support for connection aliases for remote tcp connections.
@roadmap_1423_li
#Fast scrambling (strong encryption doesn't help if the password is included in the application).
@roadmap_1424_h2
#Not Planned
@roadmap_1425_li
#HSQLDB (did) support this: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
@roadmap_1424_li
@roadmap_1426_li
#String.intern (so that Strings can be compared with ==) will not be used because some VMs have problems when used extensively.
@sourceError_1000_h1
......@@ -9050,7 +9056,7 @@ SQLコマンドがコマンドエリアに表示されます。
#Input
@sourceError_1003_h2
#&nbsp; <a href="javascript:select('details')" id="detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id="sourceTab">Source Code</a>
#&nbsp; <a href="javascript:select('details')" id = "detailsTab">Details</a> &nbsp; <a href="javascript:select('source')" id = "sourceTab">Source Code</a>
@sourceError_1004_p
#Fill in the error message and stack trace and click on 'Details' or 'Source Code':
......@@ -9683,7 +9689,7 @@ Java Web Start / JNLP (Java Network Launch Protocol) を使用している時、
#QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1201_p
#To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
#To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1202_p
Javaアプリケーション内からインデックスを呼び出すことも可能です:
......@@ -9707,7 +9713,7 @@ Luceneフルテキストサーチを使用する
#QUERY: "PUBLIC"."TEST" WHERE "ID"=1
@tutorial_1209_p
#To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID= FT.KEYS[0];</code>
#To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];</code>
@tutorial_1210_p
Javaアプリケーション内からインデックスを呼び出すことも可能です:
......
......@@ -282,7 +282,7 @@ advanced_1280_p=Remote SSL/TLS connections are supported using the Java Secure S
advanced_1281_p=To use your own keystore, set the system properties <code>javax.net.ssl.keyStore</code> and <code>javax.net.ssl.keyStorePassword</code> before starting the H2 server and client. See also <a href\="http\://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html\#CustomizingStores">Customizing the Default Key and Trust Stores, Store Types, and Store Passwords</a> for more information.
advanced_1282_p=To disable anonymous SSL, set the system property <code>h2.enableAnonymousSSL</code> to false.
advanced_1283_h2=Universally Unique Identifiers (UUID)
advanced_1284_p=This database supports the UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values\:
advanced_1284_p=This database supports UUIDs. Also supported is a function to create new UUIDs using a cryptographically strong pseudo random number generator. With random UUIDs, the chance of two having the same value can be calculated using the probability theory. See also 'Birthday Paradox'. Standardized randomly generated UUIDs have 122 random bits. 4 bits are used for the version (Randomly generated UUID), and 2 bits for the variant (Leach-Salz). This database supports generating such UUIDs using the built-in function RANDOM_UUID(). Here is a small program to estimate the probability of having two identical UUIDs after generating a number of values\:
advanced_1285_p=Some values are\:
advanced_1286_p=To help non-mathematicians understand what those numbers mean, here a comparison\: one's annual risk of being hit by a meteorite is estimated to be one chance in 17 billion, that means the probability is about 0.000'000'000'06.
advanced_1287_h2=Settings Read from System Properties
......@@ -3007,13 +3007,15 @@ roadmap_1418_li=Add option to enable TCP_NODELAY using Socket.setTcpNoDelay(true
roadmap_1419_li=Maybe disallow \= within database names (jdbc\:h2\:mem\:MODE\=DB2 means database name MODE\=DB2).
roadmap_1420_li=Fast alter table add column.
roadmap_1421_li=Improve concurrency for in-memory database operations.
roadmap_1422_h2=Not Planned
roadmap_1423_li=HSQLDB (did) support this\: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
roadmap_1424_li=String.intern (so that Strings can be compared with \=\=) will not be used because some VMs have problems when used extensively.
roadmap_1422_li=Issue 122\: Support for connection aliases for remote tcp connections.
roadmap_1423_li=Fast scrambling (strong encryption doesn't help if the password is included in the application).
roadmap_1424_h2=Not Planned
roadmap_1425_li=HSQLDB (did) support this\: select id i from test where i&lt;0 (other databases don't). Supporting it may break compatibility.
roadmap_1426_li=String.intern (so that Strings can be compared with \=\=) will not be used because some VMs have problems when used extensively.
sourceError_1000_h1=Online Error Analyzer
sourceError_1001_a=Home
sourceError_1002_a=Input
sourceError_1003_h2=&nbsp; <a href\="javascript\:select('details')" id\="detailsTab">Details</a> &nbsp; <a href\="javascript\:select('source')" id\="sourceTab">Source Code</a>
sourceError_1003_h2=&nbsp; <a href\="javascript\:select('details')" id \= "detailsTab">Details</a> &nbsp; <a href\="javascript\:select('source')" id \= "sourceTab">Source Code</a>
sourceError_1004_p=Fill in the error message and stack trace and click on 'Details' or 'Source Code'\:
sourceError_1005_b=Error Code\:
sourceError_1006_b=Product Version\:
......@@ -3224,7 +3226,7 @@ tutorial_1197_p=You need to initialize it in each database where you want to use
tutorial_1198_p=PUBLIC is the schema, TEST is the table name. The list of column names (column separated) is optional, in this case all columns are indexed. The index is updated in realtime. To search the index, use the following query\:
tutorial_1199_p=This will produce a result set that contains the query needed to retrieve the data\:
tutorial_1200_p=QUERY\: "PUBLIC"."TEST" WHERE "ID"\=1
tutorial_1201_p=To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\= FT.KEYS[0];</code>
tutorial_1201_p=To get the raw data, use <code>FT_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\=FT.KEYS[0];</code>
tutorial_1202_p=You can also call the index from within a Java application\:
tutorial_1203_h3=Using the Lucene Fulltext Search
tutorial_1204_p=To use the Lucene full text search, you need the Lucene library in the classpath. How to do that depends on the application; if you use the H2 Console, you can add the Lucene jar file to the environment variables H2DRIVERS or CLASSPATH. To initialize the Lucene fulltext search in a database, call\:
......@@ -3232,7 +3234,7 @@ tutorial_1205_p=You need to initialize it in each database where you want to use
tutorial_1206_p=PUBLIC is the schema, TEST is the table name. The list of column names (column separated) is optional, in this case all columns are indexed. The index is updated in realtime. To search the index, use the following query\:
tutorial_1207_p=This will produce a result set that contains the query needed to retrieve the data\:
tutorial_1208_p=QUERY\: "PUBLIC"."TEST" WHERE "ID"\=1
tutorial_1209_p=To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\= FT.KEYS[0];</code>
tutorial_1209_p=To get the raw data, use <code>FTL_SEARCH_DATA('Hello', 0, 0);</code> . The result contains the columns SCHEMA (the schema name), TABLE (the table name), COLUMNS (an array of column names), and KEYS (an array of objects). To join a table, use a join as in\: <code>SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE\='TEST' AND T.ID\=FT.KEYS[0];</code>
tutorial_1210_p=You can also call the index from within a Java application\:
tutorial_1211_h2=User-Defined Variables
tutorial_1212_p=This database supports user-defined variables. Variables start with @ and can be used wherever expressions or parameters are allowed. Variables are not persisted and session scoped, that means only visible from within the session in which they are defined. A value is usually assigned using the SET command\:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论