diff --git a/.building b/.building new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/engine/contactreader.cpp b/src/engine/contactreader.cpp index d06c1fcb1da83c2746737d4e371ca9bbd167ed36..70b18930a2dcfcb0aaf556b7ac8e29439adb6dae 100644 --- a/src/engine/contactreader.cpp +++ b/src/engine/contactreader.cpp @@ -1224,6 +1224,28 @@ static QString buildOrderBy(const QList &order, QString *join return fragments.join(QLatin1String(", ")); } +static void debugFilterExpansion(const QString &description, const QString &queryString, const QVariantList &bindings) +{ + static const bool debugFilters = !qgetenv("QTCONTACTS_SQLITE_DEBUG_FILTERS").isEmpty(); + static const QChar marker = QChar::fromLatin1('?'); + + if (debugFilters) { + QString query(queryString); + + int index = 0; + for (int i = 0; i < bindings.count(); ++i) { + QString value = bindings.at(i).toString(); + index = query.indexOf(marker, index); + if (index == -1) + break; + + query.replace(index, 1, value); + index += value.length(); + } + qDebug() << description << query; + } +} + ContactReader::ContactReader(const QSqlDatabase &database) : m_database(database) { @@ -1310,6 +1332,8 @@ static QContactManager::Error createTemporaryContactIdsTable( qWarning() << insertQuery.lastError(); qWarning() << insertStatement; return QContactManager::UnspecifiedError; + } else { + debugFilterExpansion("Contacts selection:", insertStatement, boundValues); } } else { // specified by id list @@ -1781,6 +1805,8 @@ QContactManager::Error ContactReader::readContactIds( qWarning() << query.lastError(); qWarning() << queryString; return QContactManager::UnspecifiedError; + } else { + debugFilterExpansion("Contact IDs selection:", queryString, bindings); } do {