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

--no commit message

--no commit message
上级 b8d6fde6
......@@ -222,6 +222,7 @@ To use the MVCC feature, append MVCC=TRUE to the database URL:
jdbc:h2:~/test;MVCC=TRUE
</pre>
<p>
MVCC can not be used at the same time as MULTI_THREADED.
The MVCC feature is not fully tested yet.
</p>
......
......@@ -18,7 +18,15 @@ Change Log
<h1>Change Log</h1>
<h2>Next Version (unreleased)</h2>
<ul><li>The system property h2.optimizeInJoin did not work correctly.
<ul><li>Row level locking for MVCC is now enabled. The exception
'Concurrent update in table ...' is still thrown, but only after the lock timeout.
</li><li>The maximum log file size setting was ignored for large databases.
</li><li>Multi-Version Concurrency (MVCC) may no longer be used when using
the multi-threaded kernel feature (MULTI_THREADED). An exception is thrown
when trying to connect with both settings. Additional synchronization
is required before those features can be used together.
</li><li>The data type JAVA_OBJECT could not be used in updatable result sets.
</li><li>The system property h2.optimizeInJoin did not work correctly.
</li><li>Conditions such as ID=? AND ID>? were slow.
</li></ul>
......
......@@ -24,7 +24,7 @@ Welcome to H2, the free SQL database engine.
<p>
<a href="quickstart.html" style="font-size: 16px; font-weight: bold">Quickstart</a>
<br />
Click here to get a fast overview.
Get a fast overview.
</p>
<p>
......
......@@ -60,6 +60,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>Support OSGi: http://oscar-osgi.sourceforge.net, http://incubator.apache.org/felix/index.html
</li><li>H2 Console: new option 'Open a browser when starting the H2 Console'.
</li><li>Better space re-use in the files after deleting data: shrink the data file without closing the database (if the end of the file is empty)
</li><li>Optimize ID=? OR ID=?: convert to IN(...)
</li><li>Full outer joins
</li><li>Support trigger on the tables information_schema.tables and ...columns
</li><li>Test very large databases and LOBs (up to 256 GB)
......@@ -143,7 +144,6 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>Support 123L syntax as in Java; example: SELECT (2000000000*2)
</li><li>Implement point-in-time recovery
</li><li>Include the version name in the jar file name
</li><li>Optimize ID=? OR ID=?: convert to IN(...)
</li><li>LIKE: improved version for larger texts (currently using naive search)
</li><li>Auto-reconnect on lost connection to server (even if the server was re-started) except if autocommit was off and there was pending transaction
</li><li>The Script tool should work with other databases as well
......@@ -385,6 +385,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>Implement OLAP features as described here: http://www.devx.com/getHelpOn/10MinuteSolution/16573/0/page/5
</li><li>Support Oracle ROWID (unique identifier for each row).
</li><li>Server mode: Improve performance for batch updates.
</li><li>Applets: Support read-only databases in a zip file (accessed as a resource).
</li></ul>
<h2>Not Planned</h2>
......
......@@ -116,7 +116,8 @@ CREATE INDEX IDX_TEST_TYPE_VALUE ON TEST(TYPE, VALUE);
ANALYZE;
-- Query the largest and smallest value - this is optimized
SELECT TYPE, (SELECT VALUE FROM TEST T2 WHERE T.TYPE = T2.TYPE LIMIT 1) MIN
SELECT TYPE, (SELECT VALUE FROM TEST T2 WHERE T.TYPE = T2.TYPE
ORDER BY TYPE, VALUE LIMIT 1) MIN
FROM (SELECT DISTINCT TYPE FROM TEST) T ORDER BY TYPE;
--> 0 0.42
--> 1 0.14
......@@ -125,13 +126,16 @@ FROM (SELECT DISTINCT TYPE FROM TEST) T ORDER BY TYPE;
--> 4 0.44
;
-- Display the query plan - 'direct lookup' means it's optimized
EXPLAIN SELECT TYPE, (SELECT VALUE FROM TEST T2 WHERE T.TYPE = T2.TYPE LIMIT 1) MIN
-- Display the query plan
EXPLAIN SELECT TYPE, (SELECT VALUE FROM TEST T2 WHERE T.TYPE = T2.TYPE
ORDER BY TYPE, VALUE LIMIT 1) MIN
FROM (SELECT DISTINCT TYPE FROM TEST) T ORDER BY TYPE;
--> SELECT TYPE, (SELECT VALUE
--> FROM PUBLIC.TEST T2 /* PUBLIC.IDX_TEST_TYPE_VALUE: TYPE = T.TYPE */
--> WHERE T.TYPE = T2.TYPE
--> LIMIT 1) AS MIN
--> ORDER BY =TYPE, 1
--> LIMIT 1
--> /* index sorted */) AS MIN
--> FROM (SELECT DISTINCT TYPE
--> FROM PUBLIC.TEST /* PUBLIC.IDX_TEST_TYPE_VALUE */
--> /* distinct */) T /* SELECT DISTINCT TYPE
......
......@@ -42,7 +42,7 @@ public class TestDeadlock extends TestBase {
testNoDeadlock();
}
private void init() throws Exception {
private void initTest() throws Exception {
c1 = getConnection("deadlock");
c2 = getConnection("deadlock");
c3 = getConnection("deadlock");
......@@ -93,7 +93,7 @@ public class TestDeadlock extends TestBase {
}
private void testNoDeadlock() throws Exception {
init();
initTest();
c1.createStatement().execute("CREATE TABLE TEST_A(ID INT PRIMARY KEY)");
c1.createStatement().execute("CREATE TABLE TEST_B(ID INT PRIMARY KEY)");
c1.createStatement().execute("CREATE TABLE TEST_C(ID INT PRIMARY KEY)");
......@@ -139,7 +139,7 @@ public class TestDeadlock extends TestBase {
if (config.mvcc) {
return;
}
init();
initTest();
c1.createStatement().execute("CREATE TABLE TEST_A(ID INT PRIMARY KEY)");
c1.createStatement().execute("CREATE TABLE TEST_B(ID INT PRIMARY KEY)");
c1.createStatement().execute("CREATE TABLE TEST_C(ID INT PRIMARY KEY)");
......@@ -181,7 +181,7 @@ public class TestDeadlock extends TestBase {
if (config.mvcc) {
return;
}
init();
initTest();
c1.createStatement().execute("CREATE TABLE TEST(ID INT PRIMARY KEY)");
c1.createStatement().execute("INSERT INTO TEST VALUES(1)");
c1.commit();
......@@ -214,7 +214,7 @@ public class TestDeadlock extends TestBase {
if (config.mvcc) {
return;
}
init();
initTest();
c1.createStatement().execute("CREATE TABLE T1(ID INT)");
c1.createStatement().execute("CREATE TABLE T2(ID INT)");
c1.createStatement().execute("INSERT INTO T1 VALUES(1)");
......
1.0.78 2008-08-28
1.0.77 2008-08-16
1.0.76 2008-07-27
1.0.75 2008-07-14
1.0.74 2008-06-21
1.0.73 2008-05-31
1.0.72 2008-05-10
1.0.71 2008-04-25
1.0.70 2008-04-20
1.0.69 2008-03-29
1.0.68 2008-03-15
1.0.67 2008-02-22
1.0.66 2008-02-02
1.0.65 2008-01-18
1.0.64 2007-12-27
1.0.63 2007-12-02
1.0.62 2007-11-25
1.0.61 2007-11-10
1.0.60 2007-10-20
1.0.59 2007-10-03
1.0.58 2007-09-15
1.0.57 2007-08-25
1.0 2007-08-02
1.0 2007-07-12
build 50 2007-06-17
build 46 2007-04-29
build 41 2007-01-30
build 2007-01-17
build 34 2006-12-17
build 2006-12-03
build 2006-11-20
build 2006-11-03
build 2006-10-10
build 2006-09-24
build 2006-09-10
build 2006-08-31
build 2006-08-28
build 2006-08-23
build 2006-08-14
build 2006-07-29
build 2006-07-14
build 2006-07-01
build 10 2006-06-02
alpha 2005-11-17
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论