Are there any known bugs? When is the next release?
@faq_1011_p
@faq_1012_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 as of 2007-08-02:
@faq_1012_li
@faq_1013_li
Some problems have been found with right outer join. Internally, it is converted to left outer join, which does not always produce the same results as other databases when used in combination with other joins.
@faq_1013_h3
@faq_1014_h3
Is this Database Engine Open Source?
@faq_1014_p
@faq_1015_p
Yes. It is free to use and distribute, and the source code is included. See also under license.
@faq_1015_h3
@faq_1016_h3
My query is slow
@faq_1016_p
@faq_1017_p
Slow SELECT (or DELETE, UPDATE, MERGE) statement can have multiple reasons. Follow this checklist:
@faq_1017_li
@faq_1018_li
Run ANALYSE (see documentation for details).
@faq_1018_li
@faq_1019_li
Run the query with EXPLAIN and check if indexes are used (see documentation for details).
@faq_1019_li
@faq_1020_li
If required, create additional indexes and try again using ANALYZE and EXPLAIN.
@faq_1020_li
@faq_1021_li
If it doesn't help please report the problem.
@faq_1021_h3
@faq_1022_h3
How to Create a New Database?
@faq_1022_p
@faq_1023_p
By default, a new database is automatically created if it does not yet exist.
@faq_1023_h3
@faq_1024_h3
How to Connect to a Database?
@faq_1024_p
@faq_1025_p
The database driver is <code>org.h2.Driver</code> , and the database URL starts with <code>jdbc:h2:</code> . To connect to a database using JDBC, use the following code:
@faq_1025_h3
@faq_1026_h3
Where are the Database Files Stored?
@faq_1026_p
@faq_1027_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\<userName>. If the base directory is not set (as in jdbc:h2:test), the database files are stored in the directory where the application is started (the current working directory). When using the H2 Console application from the start menu, this is [Installation Directory]/bin. The base directory can be set in the database URL. A fixed or relative path can be used. When using the URL jdbc:h2:file:data/sample, the database is stored in the directory data (relative to the current working directory). The directory must exist. It is also possible to use the fully qualified directory (and for Windows, drive) name. Example: jdbc:h2:file:C:/data/test
@faq_1027_h3
@faq_1028_h3
What is the Size Limit (maximum size) of a Database?
@faq_1028_p
@faq_1029_p
The theoretical limit is currently 256 GB for the data. This number is excluding BLOB and CLOB data: Every CLOB or BLOB can be up to 256 GB as well. The size limit of the index data is 256 GB as well.
@faq_1029_p
@faq_1030_p
The maximum file size for FAT or FAT32 file systems is 4 GB. So if you use FAT or FAT32, the limit is 4 GB for the data.
@faq_1030_h3
@faq_1031_h3
Is it Reliable?
@faq_1031_p
@faq_1032_p
That is not easy to say. It is still a quite new product. A lot of tests have been written, and the code coverage of these tests is very high. Randomized stress tests are run regularly. But as this is a relatively new product, there are probably some problems that have not yet been found. Areas that are not 100% tested:
@faq_1032_li
@faq_1033_li
Platforms other than Windows XP and the Sun JVM 1.4 and 1.5
@faq_1033_li
@faq_1034_li
Data types BLOB, CLOB, VARCHAR_IGNORECASE, OTHER
@faq_1034_li
@faq_1035_li
Cluster mode, 2-Phase Commit, Savepoints
@faq_1035_li
@faq_1036_li
Server mode (well tested, but not as well as Embedded mode)
@faq_1036_li
@faq_1037_li
Multi-Threading and using multiple connections
@faq_1037_li
@faq_1038_li
Updatable result sets
@faq_1038_li
@faq_1039_li
Referential integrity and check constraints, Triggers
@faq_1039_li
@faq_1040_li
ALTER TABLE statements, Views, Linked Tables, Schema, UNION
@faq_1040_li
@faq_1041_li
Not all built-in functions are completely tested
@faq_1041_li
@faq_1042_li
The Optimizer may not always select the best plan
@faq_1042_li
@faq_1043_li
24/7 operation and large databases (500 MB and up)
@faq_1043_li
@faq_1044_li
Wide indexes with large VARCHAR or VARBINARY columns and / or with a lot of columns
@faq_1044_p
@faq_1045_p
Areas considered Experimental:
@faq_1045_li
@faq_1046_li
ODBC driver and the GCJ native version on Windows
@faq_1046_li
@faq_1047_li
Linear Hash Index
@faq_1047_li
@faq_1048_li
Compatibility modes for other databases (only some features are implemented)
@faq_1048_li
@faq_1049_li
The ARRAY data type and related functionality.
@faq_1049_h3
@faq_1050_h3
Is the GCJ version stable? Faster?
@faq_1050_p
@faq_1051_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 at what seems to be a random point without error message. 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.
@faq_1052_h3
How to Translate this Project?
@faq_1053_p
The following files can be translated at the moment:
@features_1000_h1
Features
...
...
@@ -2750,10 +2759,10 @@ Version 1.0 (Current)
Version 1.0 / TODO (Build xx)
@history_1010_li
Improved error messages: some tools can't show the root cause of an exception. Adding the message of the root cause to the message of the thrown exception now where it makes sense.
Improved error messages: some tools can't show the root cause of an exception. Adding the message of the root cause to the message of the thrown exception now where it makes sense.
@history_1011_li
The H2 Console can now connect to databases using JNDI. The driver class name must be a javax.naming.Context, (for example javax.naming.InitialContext), and the URL the resource name (for example java:comp/env/jdbc/Test). This should also work for linked tables.
The H2 Console can now connect to databases using JNDI. The driver class name must be a javax.naming.Context, (for example javax.naming.InitialContext), and the URL the resource name (for example java:comp/env/jdbc/Test). This should also work for linked tables.
@history_1012_li
Google translate did not work for the H2 homepage. It should be fixed now.
...
...
@@ -2771,7 +2780,7 @@ The default lock mode is now read committed instead of serialized.
PG server: data was truncated when reading large VARCHAR columns and decimal columns.
@history_1017_li
PG server: when the same database was accessed multiple times using the PostgreSQL ODBC driver, the pg_catalog schema update failed, and connecting to the database was not possible. Fixed.
PG server: when the same database was accessed multiple times using the PostgreSQL ODBC driver, the pg_catalog schema update failed, and connecting to the database was not possible. Fixed.
@history_1018_li
Some file operations didn't work for files in the root directory. Fixed.
...
...
@@ -2780,7 +2789,7 @@ Some file operations didn't work for files in the root directory. Fixed.
In the Restore tool, the parameter -file did not work. Fixed.
@history_1020_li
Two-phase commit: commit with transaction name was only supported in the recovery scan. Now it is always supported.
Two-phase commit: commit with transaction name was only supported in the recovery scan. Now it is always supported.
@history_1021_li
The column name C_CURRENT_TIMESTAMP did not work in the last release.
...
...
@@ -4751,7 +4760,7 @@ Support N'text'
Support SCOPE_IDENTITY() to avoid problems when inserting rows in a trigger
@history_1677_li
Support DESCRIPT like MySQL or Oracle (DESC[RIBE] {[schema.]object[@connect_identifier]})
Support DESCRIBE like MySQL or Oracle (DESC|DESCRIBE {[schema.]object[@connect_identifier]})
90040=Uprawnienia administratora sa wymagane do wykonania tej operacji
90041=Wyzwalacz {0} juz istnieje
90042=Wyzwalacz {0} nie istnieje
90043=\#Error creating or initializing trigger {0} object, class {1}, cause\:{2}; see root cause for details\#\#Blad tworzenia wyzwalacza, obiekt {0}, klasa {1}
90044=\#Error executing trigger {0}, class {1}, cause \:{2}; see root cause for details\#\#Blad wykonania wyzwalacza, obiekt {0}, klasa {1}
90043=\#Error creating or initializing trigger {0} object, class {1}, cause\:{2}; see root cause for details
90044=\#Error executing trigger {0}, class {1}, cause \:{2}; see root cause for details
90045=Ograniczenie {0} juz istnieje
90046=Bledny format URL; powinno byc {0} a jest {1}
90047=Niezgodna wersja sterownika, aktualna werjsa to {0} a wersja serwera to {1}
...
...
@@ -81,7 +81,7 @@
90058=Zduplikowana tabela lub alias tabeli {0}
90059=Niejednoznaczna nazwa kolumny {0}
90060=Niewspierana metoda blokowania pliku {0}
90061=\#Exception opening port {0} (port may be in use), cause\:{1}\#Blad otwarcia portu {0} (prawdopodobnie port jest w uzyciu)
90061=\#Exception opening port {0} (port may be in use), cause\:{1}
90062=Blad tworzenia pliku {0}
90063=Zakladka jest nieprawidlowa\:{0}
90064=Zakladka jest bez nazwy
...
...
@@ -119,7 +119,7 @@
90096=Brak wystarczajacych praw do obiektu {0}
90097=Baza danych jest w trybie tylko do odczytu
90098=Baza danych zostala zamknieta
90099=\#Error setting database event listener {0}, cause\:{1}\#Blad ustawienia sluchacza zdarzen bazy danych {0}