mirror of
https://github.com/pocoproject/poco.git
synced 2025-05-02 23:42:29 +02:00
added multi-session sys table tests
This commit is contained in:
parent
760fa4bbb0
commit
50b67d711f
@ -88,7 +88,6 @@ void SQLiteStatementImpl::compileImpl()
|
|||||||
if (SQLITE_OK != sqlite3_exec(_pDB, "delete from sys.dual where 1 <> 1;", 0, 0, 0))
|
if (SQLITE_OK != sqlite3_exec(_pDB, "delete from sys.dual where 1 <> 1;", 0, 0, 0))
|
||||||
throw ExecutionException("Error updating system database.");
|
throw ExecutionException("Error updating system database.");
|
||||||
}
|
}
|
||||||
|
|
||||||
_bindBegin = bindings().begin();
|
_bindBegin = bindings().begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2560,18 +2560,41 @@ void SQLiteTest::testReconnect()
|
|||||||
void SQLiteTest::testSystemTable()
|
void SQLiteTest::testSystemTable()
|
||||||
{
|
{
|
||||||
Session session (Poco::Data::SQLite::Connector::KEY, "dummy.db");
|
Session session (Poco::Data::SQLite::Connector::KEY, "dummy.db");
|
||||||
|
int cntFile = 0;
|
||||||
|
session << "DROP TABLE IF EXISTS Test", now;
|
||||||
|
session << "CREATE TABLE Test (Test INTEGER)", now;
|
||||||
|
session << "INSERT INTO Test VALUES (1)", now;
|
||||||
|
session << "SELECT count(*) FROM Test", into(cntFile), now;
|
||||||
|
assert (1 == cntFile);
|
||||||
|
|
||||||
int cnt = -1;
|
int cntMem = -1;
|
||||||
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
|
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
assert (0 == cnt);
|
assert (0 == cntMem);
|
||||||
|
|
||||||
session << "INSERT INTO sys.dual VALUES ('test')", now;
|
session << "INSERT INTO sys.dual VALUES ('test')", now;
|
||||||
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
|
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
assert (1 == cnt);
|
assert (1 == cntMem);
|
||||||
|
|
||||||
|
// connect another session
|
||||||
|
Session session2(Poco::Data::SQLite::Connector::KEY, "dummy.db");
|
||||||
|
// verify it has it's own sys table
|
||||||
|
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
|
assert (0 == cntMem);
|
||||||
|
// verify it shares the file table
|
||||||
|
session2 << "SELECT count(*) FROM Test", into(cntFile), now;
|
||||||
|
assert (1 == cntFile);
|
||||||
|
session2 << "INSERT INTO sys.dual VALUES ('test')", now;
|
||||||
|
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
|
assert (1 == cntMem);
|
||||||
|
|
||||||
session << "DELETE FROM sys.dual", now;
|
session << "DELETE FROM sys.dual", now;
|
||||||
session << "SELECT count(*) FROM sys.dual", into(cnt), now;
|
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
assert (0 == cnt);
|
assert (0 == cntMem);
|
||||||
|
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
|
assert (1 == cntMem);
|
||||||
|
session2 << "DELETE FROM sys.dual", now;
|
||||||
|
session2 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||||
|
assert (0 == cntMem);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user