提交 91a6e0a7 authored 作者: Andrei Tokar's avatar Andrei Tokar

Fix TestMVTableEngine.testTransactionLogUsuallyNotStored()

上级 59cf1fe9
...@@ -76,7 +76,7 @@ public class TestMVTableEngine extends TestDb { ...@@ -76,7 +76,7 @@ public class TestMVTableEngine extends TestDb {
testMinMaxWithNull(); testMinMaxWithNull();
testTimeout(); testTimeout();
testExplainAnalyze(); testExplainAnalyze();
testTransactionLogUsuallyNotStored(); testTransactionLogEmptyAfterCommit();
testShrinkDatabaseFile(); testShrinkDatabaseFile();
testTwoPhaseCommit(); testTwoPhaseCommit();
testRecover(); testRecover();
...@@ -642,42 +642,39 @@ public class TestMVTableEngine extends TestDb { ...@@ -642,42 +642,39 @@ public class TestMVTableEngine extends TestDb {
conn.close(); conn.close();
} }
private void testTransactionLogUsuallyNotStored() throws Exception { private void testTransactionLogEmptyAfterCommit() throws Exception {
Connection conn; Connection conn;
Statement stat; Statement stat;
// we expect the transaction log is empty in at least some of the cases deleteDb(getTestName());
for (int test = 0; test < 5; test++) { String url = getTestName() + ";MV_STORE=TRUE";
deleteDb(getTestName()); url = getURL(url, true);
String url = getTestName() + ";MV_STORE=TRUE"; conn = getConnection(url);
url = getURL(url, true); stat = conn.createStatement();
conn = getConnection(url); stat.execute("create table test(id identity, name varchar)");
stat = conn.createStatement(); stat.execute("set write_delay 0");
stat.execute("create table test(id identity, name varchar)"); conn.setAutoCommit(false);
conn.setAutoCommit(false); PreparedStatement prep = conn.prepareStatement(
PreparedStatement prep = conn.prepareStatement( "insert into test(name) values(space(10000))");
"insert into test(name) values(space(10000))"); for (int j = 0; j < 100; j++) {
for (int j = 0; j < 100; j++) { for (int i = 0; i < 100; i++) {
for (int i = 0; i < 100; i++) { prep.execute();
prep.execute();
}
conn.commit();
}
stat.execute("shutdown immediately");
JdbcUtils.closeSilently(conn);
String file = getBaseDir() + "/" + getTestName() +
Constants.SUFFIX_MV_FILE;
MVStore store = MVStore.open(file);
TransactionStore t = new TransactionStore(store);
t.init();
int openTransactions = t.getOpenTransactions().size();
store.close();
if (openTransactions == 0) {
return;
} }
conn.commit();
}
stat.execute("shutdown immediately");
JdbcUtils.closeSilently(conn);
String file = getBaseDir() + "/" + getTestName() +
Constants.SUFFIX_MV_FILE;
MVStore store = MVStore.open(file);
TransactionStore t = new TransactionStore(store);
t.init();
int openTransactions = t.getOpenTransactions().size();
store.close();
if (openTransactions != 0) {
fail("transaction log was not empty");
} }
fail("transaction log was never empty");
} }
private void testShrinkDatabaseFile() throws Exception { private void testShrinkDatabaseFile() throws Exception {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论