From 0f11fdb99bb091729dbbe088a466f53c530c1484 Mon Sep 17 00:00:00 2001 From: Kyeonghun Lee Date: Thu, 26 Jan 2017 13:41:46 +0900 Subject: [PATCH] Enhance db querying for getting thread list and thread info - from slp git Change-Id: I8acbd892e789046e46c0b8a3c622900973f6b671 Signed-off-by: Kyeonghun Lee --- framework/storage-handler/MsgStorageMessage.cpp | 10 +++++----- utils/MsgUtilStorage.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/framework/storage-handler/MsgStorageMessage.cpp b/framework/storage-handler/MsgStorageMessage.cpp index b623b6c..00d5847 100755 --- a/framework/storage-handler/MsgStorageMessage.cpp +++ b/framework/storage-handler/MsgStorageMessage.cpp @@ -2787,20 +2787,20 @@ msg_error_t MsgStoGetThreadInfo(msg_thread_id_t threadId, MSG_THREAD_VIEW_S *pTh snprintf(sqlQuery, sizeof(sqlQuery), "SELECT A.CONV_ID, A.UNREAD_CNT, A.SMS_CNT, A.MMS_CNT, " "A.MAIN_TYPE, A.SUB_TYPE, A.MSG_DIRECTION, A.DISPLAY_TIME, A.DISPLAY_NAME, A.MSG_TEXT, " - "(SELECT COUNT(MSG_ID) FROM %s M WHERE M.CONV_ID = A.CONV_ID AND M.PROTECTED = 1) AS PROTECTED, " + "(COUNT(CASE WHEN M.PROTECTED = 1 THEN 1 END)) AS PROTECTED, " "(CASE WHEN B.FOLDER_ID = %d THEN 1 END) AS DRAFT, " "(CASE WHEN B.NETWORK_STATUS = %d THEN 1 END) AS FAILED, " "(CASE WHEN B.NETWORK_STATUS = %d THEN 1 END) AS SENDING " "FROM %s A " - "LEFT OUTER JOIN " - "%s B ON A.LAST_MSG_ID = B.MSG_ID " + "LEFT OUTER JOIN %s B ON A.LAST_MSG_ID = B.MSG_ID " + "LEFT OUTER JOIN %s M ON A.CONV_ID = M.CONV_ID " "WHERE A.CONV_ID = %d AND A.SMS_CNT + A.MMS_CNT > 0;", - MSGFW_MESSAGE_TABLE_NAME, MSG_DRAFT_ID, MSG_NETWORK_SEND_FAIL, MSG_NETWORK_SENDING, MSGFW_CONVERSATION_TABLE_NAME, MSGFW_MESSAGE_TABLE_NAME, + MSGFW_MESSAGE_TABLE_NAME, threadId); msg_error_t err = dbHandle->getTable(sqlQuery, &rowCnt, &index); @@ -2837,7 +2837,7 @@ msg_error_t MsgStoGetThreadInfo(msg_thread_id_t threadId, MSG_THREAD_VIEW_S *pTh memset(pThreadInfo->threadData, 0x00, sizeof(pThreadInfo->threadData)); dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, pThreadInfo->threadData); - pThreadInfo->bProtected = dbHandle->getColumnToInt(index++); + pThreadInfo->bProtected = (dbHandle->getColumnToInt(index++) > 0) ? true : false; pThreadInfo->bDraft = dbHandle->getColumnToInt(index++); pThreadInfo->bSendFailed = dbHandle->getColumnToInt(index++); pThreadInfo->bSending = dbHandle->getColumnToInt(index++); diff --git a/utils/MsgUtilStorage.cpp b/utils/MsgUtilStorage.cpp index f5c2e49..f2645fd 100755 --- a/utils/MsgUtilStorage.cpp +++ b/utils/MsgUtilStorage.cpp @@ -1711,20 +1711,20 @@ msg_error_t MsgStoGetThreadViewList(const MSG_SORT_RULE_S *pSortRule, msg_struct snprintf(sqlQuery, sizeof(sqlQuery), "SELECT A.CONV_ID, A.UNREAD_CNT, A.SMS_CNT, A.MMS_CNT, A.MAIN_TYPE, A.SUB_TYPE, " "A.MSG_DIRECTION, A.DISPLAY_TIME, A.DISPLAY_NAME, A.MSG_TEXT, " - "(SELECT COUNT(MSG_ID) FROM %s M WHERE M.CONV_ID = A.CONV_ID AND M.PROTECTED = 1) AS PROTECTED, " + "(COUNT(CASE WHEN M.PROTECTED = 1 THEN 1 END)) AS PROTECTED, " "(CASE WHEN B.FOLDER_ID = %d THEN 1 END) AS DRAFT, " "(CASE WHEN B.NETWORK_STATUS = %d THEN 1 END) AS FAILED, " "(CASE WHEN B.NETWORK_STATUS = %d THEN 1 END) AS SENDING " "FROM %s A " - "LEFT OUTER JOIN " - "%s B ON A.LAST_MSG_ID = B.MSG_ID " + "LEFT OUTER JOIN %s B ON A.LAST_MSG_ID = B.MSG_ID " + "LEFT OUTER JOIN %s M ON A.CONV_ID = M.CONV_ID " "WHERE A.SMS_CNT + A.MMS_CNT > 0 " "GROUP BY A.CONV_ID ORDER BY A.DISPLAY_TIME DESC;", - MSGFW_MESSAGE_TABLE_NAME, MSG_DRAFT_ID, MSG_NETWORK_SEND_FAIL, MSG_NETWORK_SENDING, MSGFW_CONVERSATION_TABLE_NAME, + MSGFW_MESSAGE_TABLE_NAME, MSGFW_MESSAGE_TABLE_NAME); msg_error_t err = dbHandle->getTable(sqlQuery, &rowCnt, &index); @@ -1781,7 +1781,7 @@ msg_error_t MsgStoGetThreadViewList(const MSG_SORT_RULE_S *pSortRule, msg_struct memset(pTmp->threadData, 0x00, sizeof(pTmp->threadData)); dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, pTmp->threadData); - pTmp->bProtected = dbHandle->getColumnToInt(index++); + pTmp->bProtected = (dbHandle->getColumnToInt(index++) > 0) ? true : false; pTmp->bDraft = dbHandle->getColumnToInt(index++); pTmp->bSendFailed = dbHandle->getColumnToInt(index++); pTmp->bSending = dbHandle->getColumnToInt(index++); -- 2.7.4