Mercurial > dedupe
comparison SqliteDBLink.cpp @ 88:6e1d4d2fc49b
Prepare size query only once.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 10 Oct 2013 16:53:06 +0200 |
| parents | 9e337bd96bd3 |
| children | 7b7a959c993b |
comparison
equal
deleted
inserted
replaced
| 87:9e337bd96bd3 | 88:6e1d4d2fc49b |
|---|---|
| 32 } | 32 } |
| 33 if (!query.exec(QString("SELECT * FROM files;"))) { | 33 if (!query.exec(QString("SELECT * FROM files;"))) { |
| 34 throw SQLException("No database"); | 34 throw SQLException("No database"); |
| 35 } | 35 } |
| 36 | 36 |
| 37 | |
| 38 preparedSizePrefixQuery = new QSqlQuery(db); | |
| 39 preparedSizePrefixQuery->prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size"); | |
| 40 | |
| 41 preparedSizeQuery = new QSqlQuery(db); | |
| 42 preparedSizeQuery->prepare("SELECT * FROM files WHERE size = :size"); | |
| 43 | |
| 37 } | 44 } |
| 38 | 45 |
| 39 SqliteDBLink::~SqliteDBLink() | 46 SqliteDBLink::~SqliteDBLink() |
| 40 { | 47 { |
| 48 delete preparedSizePrefixQuery; | |
| 49 delete preparedSizeQuery; | |
| 41 db.close(); | 50 db.close(); |
| 42 } | 51 } |
| 43 | 52 |
| 44 bool SqliteDBLink::exists(const QString& path) | 53 bool SqliteDBLink::exists(const QString& path) |
| 45 { | 54 { |
| 199 } | 208 } |
| 200 | 209 |
| 201 const QList<FileDBLink::dbinf_ptr_t> | 210 const QList<FileDBLink::dbinf_ptr_t> |
| 202 SqliteDBLink::filesWithSize(quint64 size, const QString& prefix) const | 211 SqliteDBLink::filesWithSize(quint64 size, const QString& prefix) const |
| 203 { | 212 { |
| 204 QList<FileDBLink::dbinf_ptr_t > values; | 213 QList<dbinf_ptr_t > values; |
| 205 | 214 |
| 206 QSqlQuery query(db); | 215 QSqlQuery & query = (prefix.size() > 0) ? *preparedSizePrefixQuery : *preparedSizeQuery; |
| 207 | 216 |
| 208 if (prefix.size() > 0) { | 217 if (prefix.size() > 0) { |
| 209 query.prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size"); | |
| 210 query.bindValue(":prefix", QString("%1%").arg(prefix)); | 218 query.bindValue(":prefix", QString("%1%").arg(prefix)); |
| 211 } | |
| 212 else { | |
| 213 query.prepare("SELECT * FROM files WHERE size = :size"); | |
| 214 } | 219 } |
| 215 query.bindValue(":size", QString("%1%").arg(size)); | 220 query.bindValue(":size", QString("%1%").arg(size)); |
| 216 | 221 |
| 217 | 222 |
| 218 if (!query.exec()) { | 223 if (!query.exec()) { |
