Skip to content

Commit 50b67d7

Browse files
committed
added multi-session sys table tests
1 parent 760fa4b commit 50b67d7

2 files changed

Lines changed: 30 additions & 8 deletions

File tree

Data/SQLite/src/SQLiteStatementImpl.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ void SQLiteStatementImpl::compileImpl()
8888
if (SQLITE_OK != sqlite3_exec(_pDB, "delete from sys.dual where 1 <> 1;", 0, 0, 0))
8989
throw ExecutionException("Error updating system database.");
9090
}
91-
9291
_bindBegin = bindings().begin();
9392
}
9493

Data/SQLite/testsuite/src/SQLiteTest.cpp

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2560,18 +2560,41 @@ void SQLiteTest::testReconnect()
25602560
void SQLiteTest::testSystemTable()
25612561
{
25622562
Session session (Poco::Data::SQLite::Connector::KEY, "dummy.db");
2563+
int cntFile = 0;
2564+
session << "DROP TABLE IF EXISTS Test", now;
2565+
session << "CREATE TABLE Test (Test INTEGER)", now;
2566+
session << "INSERT INTO Test VALUES (1)", now;
2567+
session << "SELECT count(*) FROM Test", into(cntFile), now;
2568+
assert (1 == cntFile);
25632569

2564-
int cnt = -1;
2565-
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
2566-
assert (0 == cnt);
2570+
int cntMem = -1;
2571+
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2572+
assert (0 == cntMem);
25672573

25682574
session << "INSERT INTO sys.dual VALUES ('test')", now;
2569-
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
2570-
assert (1 == cnt);
2575+
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2576+
assert (1 == cntMem);
2577+
2578+
// connect another session
2579+
Session session2(Poco::Data::SQLite::Connector::KEY, "dummy.db");
2580+
// verify it has it's own sys table
2581+
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2582+
assert (0 == cntMem);
2583+
// verify it shares the file table
2584+
session2 << "SELECT count(*) FROM Test", into(cntFile), now;
2585+
assert (1 == cntFile);
2586+
session2 << "INSERT INTO sys.dual VALUES ('test')", now;
2587+
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2588+
assert (1 == cntMem);
25712589

25722590
session << "DELETE FROM sys.dual", now;
2573-
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
2574-
assert (0 == cnt);
2591+
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2592+
assert (0 == cntMem);
2593+
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2594+
assert (1 == cntMem);
2595+
session2 << "DELETE FROM sys.dual", now;
2596+
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
2597+
assert (0 == cntMem);
25752598

25762599
try
25772600
{

0 commit comments

Comments
 (0)