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

Documentation.

上级 e10d6a02
......@@ -1177,8 +1177,9 @@ SET MAX_MEMORY_ROWS 1000
SET MAX_MEMORY_UNDO int
","
The maximum number of undo records per a session that are kept in-memory. If a
transaction is larger, the records are buffered to disk. The default value is
50000. Changes to tables without a primary key can not be buffered to disk.
transaction is larger, the records are buffered to disk.
The default value is 50000.
Changes to tables without a primary key can not be buffered to disk.
This setting is not supported when using multi-version concurrency.
Admin rights are required to execute this command.
......
......@@ -27,6 +27,9 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Set h2.analyzeAuto to 2000 (automatic ANALYZE).
</li><li>Enable h2.functionsInSchema (allow to store functions in a schema).
</li><li>Enable h2.selectForUpdateMvcc (MVCC and SELECT FOR UPDATE).
</li><li>Enable h2.largeTransactions (support for very large transactions).
Change documentation for MAX_MEMORY_UNDO in help.csv, because
now changes to tables without a primary key can be buffered to disk.
</li></ul>
<h2>Priority 1</h2>
......@@ -38,10 +41,10 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li></ul>
<h2>Priority 2</h2>
<ul><li>Improve test code coverage.
<ul><li>Support nested outer joins (see todo.txt, issues 145, 177, 203).
</li><li>Improve test code coverage.
</li><li>Test multi-threaded in-memory db access.
</li><li>Full outer joins.
</li><li>Support nested outer joins (see todo.txt).
</li><li>Clustering: support mixed clustering mode (one embedded, others in server mode).
</li><li>Clustering: reads should be randomly distributed (optional) or to a designated database on RAM (parameter: READ_FROM=3).
</li><li>PostgreSQL catalog: use BEFORE SELECT triggers instead of views over metadata tables.
......
......@@ -297,6 +297,7 @@ java org.h2.test.TestAll timer
test.printSystem();
System.setProperty("h2.maxMemoryRowsDistinct", "128");
System.setProperty("h2.check2", "true");
System.setProperty("h2.largeTransactions", "true");
// System.setProperty("h2.lobInDatabase", "true");
// System.setProperty("h2.analyzeAuto", "100");
......
......@@ -27,6 +27,67 @@ TableFilter,
join.mapAndAddFilter(on);
}
}
drop table base;
drop table a;
drop table b;
create table a( pk integer, val varchar(255) );
create table b( pk integer, val varchar(255) );
create table base( pk integer, deleted integer );
insert into base values ( 1, 0 );
insert into base values ( 2, 1 );
insert into base values ( 3, 0 );
insert into a values ( 1, 'a' );
insert into b values ( 2, 'a' );
insert into b values ( 3, 'a' );
select a.pk, a_base.pk, b.pk, b_base.pk from a inner join base a_base
on a.pk = a_base.pk left outer join
( b inner join base b_base on b.pk = b_base.pk and b_base.deleted = 0 ) ;
-- H2:
-- 1 1 2 null
-- 1 1 3 3
-- PostgreSQL: ERROR: syntax error at end of input 42601/0
-- MySQL: You have an error in your SQL syntax;
-- check the manual that corresponds to your MySQL server version
-- for the right syntax to use near '' at line 3
-- Derby: Syntax error: Encountered "<EOF>" at line 3, column 71. 42X01/30000
-- HSQLDB: Unexpected token B, requires SELECT in statement
select a.pk, a_base.pk, b.pk, b_base.pk from a inner join base a_base
on a.pk = a_base.pk left outer join
( b inner join base b_base on b.pk = b_base.pk and b_base.deleted = 0 )
on a.pk = b.pk;
-- H2, MySQL, PostgreSQL, Derby:
-- 1 1 null null
-- HSQLDB: Unexpected token B, requires SELECT in statement
select a.pk, a_base.pk, b.pk, b_base.pk from a inner join base a_base
on a.pk = a_base.pk left outer join
( b inner join base b_base on b.pk = b_base.pk and b_base.deleted = 0 )
on 1=1;
-- H2:
-- 1 1 2 null
-- 1 1 3 3
-- PostgreSQL, MySQL, Derby:
-- 1 1 3 3
-- HSQLDB: Unexpected token B, requires SELECT in statement
select a.pk, a_base.pk, bpk, bbasepk from a inner join base a_base
on a.pk = a_base.pk left outer join
( select b.pk bpk, b_base.pk bbasepk from b inner join base b_base on b.pk = b_base.pk and b_base.deleted = 0 ) x
on 1=1;
-- PostgreSQL, MySQL, Derby, H2:
-- 1 1 3 3
drop table test;
create table test(id int primary key);
@loop 3 insert into test values(?);
select * from test a left outer join (test b inner join test c on b.id = c.id - 2) on a.id = b.id + 1;
select * from test a left outer join (select b.id, c.id from test b inner join test c on b.id = c.id - 2) on a.id = b.id + 1;
Auto Upgrade
-----------------
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论