mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-08 12:36:43 +02:00
Merge pull request #91 from RangelReale/sqlitedual
Improve SQLite multi-threaded use
This commit is contained in:
@@ -2564,55 +2564,6 @@ void SQLiteTest::testReconnect()
|
||||
}
|
||||
|
||||
|
||||
void SQLiteTest::testSystemTable()
|
||||
{
|
||||
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 cntMem = -1;
|
||||
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||
assert (0 == cntMem);
|
||||
|
||||
session << "INSERT INTO sys.dual VALUES ('test')", now;
|
||||
session << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||
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 << "SELECT count(*) FROM sys.dual", into(cntMem), now;
|
||||
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
|
||||
{
|
||||
session << "DROP TABLE sys.dual", now;
|
||||
fail ("must throw");
|
||||
}
|
||||
catch (InvalidAccessException&) { }
|
||||
|
||||
}
|
||||
|
||||
|
||||
void SQLiteTest::testThreadModes()
|
||||
{
|
||||
using namespace Poco::Data::SQLite;
|
||||
@@ -3299,7 +3250,6 @@ CppUnit::Test* SQLiteTest::suite()
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testMultipleResults);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testPair);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testReconnect);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testSystemTable);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testThreadModes);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testUpdateCallback);
|
||||
CppUnit_addTest(pSuite, SQLiteTest, testCommitCallback);
|
||||
|
@@ -140,7 +140,6 @@ public:
|
||||
void testMultipleResults();
|
||||
|
||||
void testReconnect();
|
||||
void testSystemTable();
|
||||
|
||||
void testThreadModes();
|
||||
|
||||
|
Reference in New Issue
Block a user