From 23bc60e3cddbfadb0259712c2b583745a085740a Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Tue, 13 Mar 2018 11:29:11 +0330 Subject: [PATCH] zero copy ok for phrases --- src/database.cpp | 1 + src/databasemodel.cpp | 8 +++++++- src/query.h | 17 ----------------- test/basic/maintest.cpp | 11 ++++++++++- test/basic/maintest.h | 2 ++ 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/database.cpp b/src/database.cpp index 9d5983b..0e2518a 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -190,6 +190,7 @@ bool DatabasePrivate::getCurrectScheema() // TODO: change logs must not be in model int changeLogTypeId = qRegisterMetaType(); + currentModel.append( new TableModel(changeLogTypeId, __CHANGE_LOG_TABLE_NAME)); tables.insert(ChangeLogTable::staticMetaObject.className(), diff --git a/src/databasemodel.cpp b/src/databasemodel.cpp index b732f3d..0902b7d 100644 --- a/src/databasemodel.cpp +++ b/src/databasemodel.cpp @@ -229,7 +229,13 @@ DatabaseModel *DatabaseModel::modelByName(const QString &name) void DatabaseModel::deleteAllModels() { - qDeleteAll(_models.values()); + QMapIterator i(_models); + while (i.hasNext()) { + i.next(); +// cout << i.key() << ": " << i.value() << endl; + delete i.value(); + } +// qDeleteAll(_models.values()); _models.clear(); } diff --git a/src/query.h b/src/query.h index b8d0d3a..8ab8c54 100644 --- a/src/query.h +++ b/src/query.h @@ -73,9 +73,6 @@ public: Query *where(const ConditionalPhrase &ph); Query *setWhere(const ConditionalPhrase &ph); - Query *include(TableSetBase *t); - Query *include(Table *t); - //data selecting T *first(); QList toList(int count = -1); @@ -496,20 +493,6 @@ Q_OUTOFLINE_TEMPLATE Query *Query::orderBy(const PhraseList &ph) return this; } -template -Q_OUTOFLINE_TEMPLATE Query *Query::include(TableSetBase *t) -{ - Q_D(Query); - return this; -} - -template -Q_OUTOFLINE_TEMPLATE Query *Query::include(Table *t) -{ - Q_D(Query); - return this; -} - template Q_OUTOFLINE_TEMPLATE int Query::update(const AssignmentPhraseList &ph) { diff --git a/test/basic/maintest.cpp b/test/basic/maintest.cpp index a8a75be..74f5d14 100644 --- a/test/basic/maintest.cpp +++ b/test/basic/maintest.cpp @@ -209,7 +209,7 @@ void MainTest::testDate() db.postTable()->append(newPost); - db.saveChanges(); + db.saveChanges(true); auto q = db.postTable()->query() ->setWhere(Post::idField() == newPost->id()) @@ -269,4 +269,13 @@ void MainTest::emptyDatabase() QTEST_ASSERT(commentsCount == 6); } +void MainTest::cleanupTestCase() +{ + post->deleteLater(); + user->deleteLater(); + + qDeleteAll(TableModel::allModels()); + DatabaseModel::deleteAllModels(); +} + QTEST_MAIN(MainTest) diff --git a/test/basic/maintest.h b/test/basic/maintest.h index c79ce1a..67ec06b 100644 --- a/test/basic/maintest.h +++ b/test/basic/maintest.h @@ -39,6 +39,8 @@ private slots: void selectWithInvalidRelation(); void modifyPost(); void emptyDatabase(); + + void cleanupTestCase(); }; #endif // MAINTEST_H