From dfacd0cd228b19523bd6a0b42cfad8c4a3d70838 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 20 May 2024 11:55:30 +0300 Subject: =?UTF-8?q?fixes=20#4433=20(=D0=9A=D0=BE=D0=BD=D1=82=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D1=8B=20=D0=BD=D0=B5=20=D0=B2=D0=B8=D0=B4=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=B4=D0=BE=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D1=81=D0=B5=D1=82=D1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/Dbx_sqlite/src/dbcontacts.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'plugins/Dbx_sqlite/src') diff --git a/plugins/Dbx_sqlite/src/dbcontacts.cpp b/plugins/Dbx_sqlite/src/dbcontacts.cpp index 407f643a81..db392d303d 100644 --- a/plugins/Dbx_sqlite/src/dbcontacts.cpp +++ b/plugins/Dbx_sqlite/src/dbcontacts.cpp @@ -3,15 +3,22 @@ void CDbxSQLite::InitContacts() { sqlite3_stmt *stmt = nullptr; - sqlite3_prepare_v2(m_db, "SELECT contact_id, COUNT(id) FROM events_srt GROUP BY contact_id;", -1, &stmt, nullptr); + sqlite3_prepare_v2(m_db, "SELECT contacts.id, COUNT(es.id) FROM contacts LEFT JOIN events_srt es ON es.contact_id = contacts.id GROUP BY contacts.id;", -1, &stmt, nullptr); int rc = 0; while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) { - MCONTACT hContact = sqlite3_column_int64(stmt, 0); - DBCachedContact *cc = (hContact) ? m_cache->AddContactToCache(hContact) : &m_system; - cc->m_count = sqlite3_column_int64(stmt, 1); + if (MCONTACT hContact = sqlite3_column_int64(stmt, 0)) { + DBCachedContact *cc = m_cache->AddContactToCache(hContact); + cc->m_count = sqlite3_column_int64(stmt, 1); + } } logError(rc, __FILE__, __LINE__); sqlite3_finalize(stmt); + + sqlite3_prepare_v2(m_db, "SELECT COUNT(1) FROM events_srt WHERE contact_id=0;", -1, &stmt, nullptr); + rc = sqlite3_step(stmt); + logError(rc, __FILE__, __LINE__); + m_system.m_count = sqlite3_column_int64(stmt, 0); + sqlite3_finalize(stmt); } int CDbxSQLite::GetContactCount() -- cgit v1.2.3