fix group by for person view 39/117539/3 accepted/tizen/common/20170307.133923 accepted/tizen/ivi/20170307.102311 accepted/tizen/mobile/20170307.102224 accepted/tizen/unified/20170309.033050 accepted/tizen/wearable/20170307.102256 submit/tizen/20170307.054841 submit/tizen_common/20170307.144516 submit/tizen_unified/20170308.100408
authorJeesun Kim <iamjs.kim@samsung.com>
Mon, 6 Mar 2017 08:07:02 +0000 (17:07 +0900)
committerJeesun Kim <iamjs.kim@samsung.com>
Tue, 7 Mar 2017 02:20:36 +0000 (11:20 +0900)
[P170303-05191] Duplicated contact is displaying whiel serching the
contact to share via simple sharing.
[Cause] "Group by contact" duplicates data in person view.
[Solution] Modify "Group by person" in person view.

Change-Id: I3fedebbc77c660fb1862c1e2350fa4c4aaa27419

server/db/ctsvc_db_query.c

index 10a3bd0..b7a38a2 100644 (file)
@@ -2932,7 +2932,19 @@ static int __ctsvc_db_search_records_exec(const char *view_uri,
                sortkey = ctsvc_get_sort_column();
 
        if (true == is_snippet) {
-               temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY temp_data.temp_contact_id");
+               switch (enum_uri) {
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_CONTACT:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP_ASSIGNED:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP_NOT_ASSIGNED:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_NUMBER:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_EMAIL:
+                       temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY temp_data.temp_contact_id");
+                       break;
+               case CTSVC_ENUM_URI_PERSON:
+                       temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY person_id");
+                       break;
+               }
                if (0 <= temp_len)
                        len += temp_len;
        }
@@ -3390,7 +3402,19 @@ static inline int __ctsvc_db_search_records_with_query_exec(ctsvc_query_s *s_que
        }
 
        if (true == is_snippet) {
-               temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY temp_data.temp_contact_id");
+               switch (enum_uri) {
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_CONTACT:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP_ASSIGNED:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_GROUP_NOT_ASSIGNED:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_NUMBER:
+               case CTSVC_ENUM_URI_READ_ONLY_PERSON_EMAIL:
+                       temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY temp_data.temp_contact_id");
+                       break;
+               case CTSVC_ENUM_URI_PERSON:
+                       temp_len = SAFE_SNPRINTF(&query, &query_size, len, " GROUP BY person_id");
+                       break;
+               }
                if (0 <= temp_len)
                        len += temp_len;
        }