remove "Requires: session-utils"
[platform/core/pim/contacts-service.git] / schema.sql
old mode 100755 (executable)
new mode 100644 (file)
index a3341aa..ce37161
@@ -1,7 +1,7 @@
 --
 -- Contacts Service
 --
--- Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
+-- Copyright (c) 2010 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
 --
 -- Contact: Jongwon Lee <gogosing.lee@samsung.com>
 --
@@ -20,6 +20,8 @@
 
 --PRAGMA journal_mode = PERSIST;
 --PRAGMA journal_mode = TRUNCATE;
+PRAGMA journal_mode = WAL;
+PRAGMA user_version = 104;
 
 CREATE TABLE persons
 (
@@ -53,10 +55,11 @@ CREATE TABLE addressbooks
        account_id                      INTEGER,
        mode                                            INTEGER, -- permission
        last_sync_ver   INTEGER,
+       smack_label             TEXT NOT NULL,          -- smack label
        UNIQUE(addressbook_name)
 );
 
-insert into addressbooks(addressbook_id, addressbook_name, mode, account_id) values(0, 'http://tizen.org/addressbook/phone', 0, 0);
+INSERT INTO addressbooks(addressbook_id, addressbook_name, mode, account_id, smack_label) values(0, 'http://tizen.org/addressbook/phone', 0, 0, 'org.tizen.contacts');
 
 CREATE TRIGGER trg_addressbook_del AFTER DELETE ON addressbooks
  BEGIN
@@ -83,8 +86,8 @@ CREATE TABLE contacts
        reverse_display_name_language           INTEGER,
        sort_name                       TEXT,
        reverse_sort_name               TEXT,
-       sortkey                         TEXT COLLATE NOCASE,
-       reverse_sortkey                 TEXT COLLATE NOCASE,
+       sortkey                         TEXT,
+       reverse_sortkey                 TEXT,
        created_ver                     INTEGER NOT NULL,
        changed_ver                     INTEGER NOT NULL,
        changed_time                    INTEGER NOT NULL,
@@ -138,9 +141,11 @@ CREATE TRIGGER trg_contacts_del2 AFTER DELETE ON contacts
 CREATE TRIGGER trg_contacts_update AFTER UPDATE ON contacts
        WHEN new.deleted = 1
        BEGIN
+               SELECT _DATA_DELETE_(data.id, data.datatype) FROM data WHERE contact_id = old.contact_id AND is_my_profile = 0;
                DELETE FROM group_relations WHERE old.addressbook_id != -1 AND contact_id = old.contact_id;
                DELETE FROM persons WHERE person_id = old.person_id AND link_count = 1;
                UPDATE persons SET dirty=1 WHERE person_id = old.person_id AND link_count > 1;
+               DELETE FROM speeddials WHERE number_id IN (SELECT id FROM data WHERE data.contact_id = old.contact_id AND datatype = 8);
        END;
 
 CREATE TABLE contact_deleteds
@@ -163,7 +168,8 @@ CREATE TABLE sdn
 (
        id                              INTEGER PRIMARY KEY AUTOINCREMENT,
        name                            TEXT,
-       number                          TEXT
+       number                          TEXT,
+       sim_slot_no             INTEGER
 );
 
 CREATE TABLE data
@@ -188,11 +194,6 @@ CREATE TABLE data
        data12                          TEXT
 );
 
-CREATE TRIGGER trg_data_del AFTER DELETE ON data
-       BEGIN
-               SELECT _DATA_DELETE_(old.id, old.datatype);
-       END;
-
 CREATE TRIGGER trg_data_image_del AFTER DELETE ON data
        WHEN old.datatype = 13
                BEGIN
@@ -250,8 +251,8 @@ INSERT INTO groups(addressbook_id, group_name, extra_data, is_read_only, created
 
 CREATE TRIGGER trg_groups_del AFTER DELETE ON groups
  BEGIN
-   UPDATE contacts SET changed_ver=((SELECT ver FROM cts_version) + 1) WHERE deleted = 0 AND contact_id IN (SELECT contact_id FROM group_relations WHERE group_id=old.group_id);
-   DELETE FROM group_relations WHERE group_id = old.group_id;
+       UPDATE contacts SET changed_ver=((SELECT ver FROM cts_version) + 1) WHERE deleted = 0 AND contact_id IN (SELECT contact_id FROM group_relations WHERE group_id=old.group_id);
+       DELETE FROM group_relations WHERE group_id = old.group_id;
        SELECT _GROUP_DELETE_(old.image_thumbnail_path);
  END;
 
@@ -297,22 +298,22 @@ CREATE INDEX favorites_idx1 ON favorites(favorite_prio);
 CREATE INDEX favorites_idx2 ON favorites(person_id);
 
 
---CREATE TRIGGER trg_favorites_del BEFORE DELETE ON favorites
---     BEGIN
---             UPDATE contacts SET is_favorite = 0 WHERE person_id = old.person_id;
---     END;
---CREATE TRIGGER trg_favorites_insert AFTER INSERT ON favorites
---     BEGIN
---             UPDATE contacts SET is_favorite = 1 WHERE person_id = new.person_id;
---     END;
-
+CREATE TABLE sim_info
+(
+       sim_id                  INTEGER PRIMARY KEY AUTOINCREMENT,
+       unique_id               TEXT NOT NULL,          -- iccid
+       UNIQUE(unique_id)
+);
 
 CREATE TABLE phonelogs
 (
        id                              INTEGER PRIMARY KEY AUTOINCREMENT,
        number                          TEXT,
+       number_type                     INTEGER,
        normal_num                      TEXT,
+       clean_num                               TEXT,
        minmatch                                TEXT,
+       sim_id                  INTEGER,
        person_id                       INTEGER, --person_id
        log_type                        INTEGER,
        log_time                        INTEGER,
@@ -327,32 +328,17 @@ CREATE TRIGGER trg_phonelogs_del AFTER DELETE ON phonelogs
                SELECT _PHONE_LOG_DELETE_(old.id);
        END;
 
---CREATE TRIGGER trg_phonelogs_del AFTER DELETE ON phonelogs
---     WHEN old.log_type = 2 OR old.log_type = 4
---             BEGIN
---                     DELETE FROM phonelog_accumulation WHERE log_time < (old.log_time - 3456000); -- 40 days
---                     INSERT INTO phonelog_accumulation VALUES(NULL, 1, old.log_time, old.data1);
---             END;
-
---CREATE TABLE phonelog_accumulation
---(
---     id                              INTEGER PRIMARY KEY AUTOINCREMENT,
---     log_cnt                 INTEGER,
---     log_time                        INTEGER,
---     duration                        INTEGER
---);
---INSERT INTO phonelog_accumulation VALUES(1, 0, NULL, 0);
---INSERT INTO phonelog_accumulation VALUES(2, 0, NULL, 0); --total
-
 CREATE TABLE phonelog_stat
 (
-       log_type                        INTEGER PRIMARY KEY,
-       log_count                       INTEGER
+       log_type                        INTEGER,
+       log_count                       INTEGER,
+       sim_id                  INTEGER
 );
 
 CREATE TRIGGER trg_phonelogs_insert AFTER INSERT ON phonelogs
        BEGIN
-               INSERT OR REPLACE INTO phonelog_stat values(new.log_type, coalesce((SELECT log_count+1 FROM phonelog_stat WHERE log_type=new.log_type), 1));
+               UPDATE phonelog_stat SET log_count = log_count+1 WHERE log_type=new.log_type AND sim_id=new.sim_id;
+               INSERT INTO phonelog_stat SELECT new.log_type, 1, new.sim_id WHERE NOT EXISTS (SELECT * FROM phonelog_stat WHERE log_type=new.log_type AND sim_id=new.sim_id);
        END;
 
 CREATE TABLE contact_stat
@@ -409,6 +395,7 @@ CREATE TABLE name_lookup
        name TEXT,
        type INTEGER
 );
+CREATE INDEX name_lookup_idx1 ON name_lookup(contact_id);
 
 CREATE TABLE phone_lookup
 (
@@ -417,7 +404,7 @@ CREATE TABLE phone_lookup
        number TEXT,
        min_match TEXT
 );
-
+CREATE INDEX phone_lookup_idx1 ON phone_lookup(contact_id);
 
 CREATE TABLE my_profiles
 (