# HG changeset patch # User Tom Fredrik Blenning Klaussen # Date 1381416786 -7200 # Node ID 6e1d4d2fc49b8c480720030aa5fad0e1f6595e7f # Parent 9e337bd96bd37d06acdab549dbaa04004c728857 Prepare size query only once. diff -r 9e337bd96bd3 -r 6e1d4d2fc49b SqliteDBLink.cpp --- a/SqliteDBLink.cpp Thu Oct 10 16:12:41 2013 +0200 +++ b/SqliteDBLink.cpp Thu Oct 10 16:53:06 2013 +0200 @@ -34,10 +34,19 @@ throw SQLException("No database"); } + + preparedSizePrefixQuery = new QSqlQuery(db); + preparedSizePrefixQuery->prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size"); + + preparedSizeQuery = new QSqlQuery(db); + preparedSizeQuery->prepare("SELECT * FROM files WHERE size = :size"); + } SqliteDBLink::~SqliteDBLink() { + delete preparedSizePrefixQuery; + delete preparedSizeQuery; db.close(); } @@ -201,17 +210,13 @@ const QList SqliteDBLink::filesWithSize(quint64 size, const QString& prefix) const { - QList values; + QList values; - QSqlQuery query(db); + QSqlQuery & query = (prefix.size() > 0) ? *preparedSizePrefixQuery : *preparedSizeQuery; if (prefix.size() > 0) { - query.prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size"); query.bindValue(":prefix", QString("%1%").arg(prefix)); } - else { - query.prepare("SELECT * FROM files WHERE size = :size"); - } query.bindValue(":size", QString("%1%").arg(size)); diff -r 9e337bd96bd3 -r 6e1d4d2fc49b SqliteDBLink.hpp --- a/SqliteDBLink.hpp Thu Oct 10 16:12:41 2013 +0200 +++ b/SqliteDBLink.hpp Thu Oct 10 16:53:06 2013 +0200 @@ -32,6 +32,9 @@ QSqlDatabase db; static const QString connectionName; + + QSqlQuery* preparedSizePrefixQuery; + QSqlQuery* preparedSizeQuery; }; #endif //MEMORYDBLINK_HPP