contentstorage/castorage/data/castoragedb_create.sql
author hgs
Wed, 06 Oct 2010 16:00:22 +0300
changeset 125 26079c1bb561
parent 119 50e220be30d1
child 127 7b66bc3c6dc9
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
88
hgs
parents:
diff changeset
     1
DROP TABLE IF EXISTS CA_ENTRY;
hgs
parents:
diff changeset
     2
DROP TABLE IF EXISTS CA_GROUP_ENTRY;
hgs
parents:
diff changeset
     3
DROP TABLE IF EXISTS CA_ICON;
hgs
parents:
diff changeset
     4
DROP TABLE IF EXISTS CA_LAUNCH;
hgs
parents:
diff changeset
     5
DROP TABLE IF EXISTS CA_ATTRIBUTE;
hgs
parents:
diff changeset
     6
DROP TABLE IF EXISTS CA_LOCALIZATION_TEXT;
hgs
parents:
diff changeset
     7
DROP TABLE IF EXISTS CA_DB_PROPERTIES;
hgs
parents:
diff changeset
     8
hgs
parents:
diff changeset
     9
SELECT "CREATE TABLE CA_ENTRY" AS " ";
hgs
parents:
diff changeset
    10
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    11
CREATE TABLE CA_ENTRY( ENTRY_ID INTEGER PRIMARY KEY,
hgs
parents:
diff changeset
    12
                                 EN_TEXT TEXT NOT NULL COLLATE NOCASE,
hgs
parents:
diff changeset
    13
                                 EN_DESCRIPTION TEXT COLLATE NOCASE,
hgs
parents:
diff changeset
    14
                                 EN_ROLE INTEGER default 1,
hgs
parents:
diff changeset
    15
                                 EN_TYPE_NAME TEXT NOT NULL,
hgs
parents:
diff changeset
    16
                                 EN_ICON_ID INTEGER,
hgs
parents:
diff changeset
    17
                                 EN_CREATION_TIME BIGINT default -1 NOT NULL,
hgs
parents:
diff changeset
    18
                                 EN_UID INTEGER UNIQUE, 
hgs
parents:
diff changeset
    19
                                 EN_FLAGS INTEGER default 8, 
hgs
parents:
diff changeset
    20
                                 FOREIGN KEY(EN_ICON_ID) REFERENCES CA_ICON(ICON_ID) );
hgs
parents:
diff changeset
    21
CREATE INDEX EntryText_CAIndex ON CA_ENTRY(EN_TEXT);
hgs
parents:
diff changeset
    22
CREATE INDEX EntryCreationTime_CAIndex ON CA_ENTRY(EN_CREATION_TIME);
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
SELECT "CREATE TABLE CA_GROUP_ENTRY" AS " ";
hgs
parents:
diff changeset
    25
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    26
CREATE TABLE CA_GROUP_ENTRY( GROUP_ENTRY_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    27
                                  GE_GROUP_ID INTEGER NOT NULL,
hgs
parents:
diff changeset
    28
                                  GE_ENTRY_ID INTEGER NOT NULL,
hgs
parents:
diff changeset
    29
                                  GE_POSITION INTEGER,
hgs
parents:
diff changeset
    30
                                  UNIQUE( GE_GROUP_ID, GE_ENTRY_ID ),
hgs
parents:
diff changeset
    31
                                  FOREIGN KEY(GE_GROUP_ID) REFERENCES CA_ENTRY(ENTRY_ID),
hgs
parents:
diff changeset
    32
                                  FOREIGN KEY(GE_ENTRY_ID) REFERENCES CA_ENTRY(ENTRY_ID) );
hgs
parents:
diff changeset
    33
CREATE INDEX GroupGE_POSITION_CAIndex ON CA_GROUP_ENTRY(GE_POSITION);
hgs
parents:
diff changeset
    34
CREATE TRIGGER update_position_in_ca_group_entry_after_remove AFTER DELETE ON CA_GROUP_ENTRY
hgs
parents:
diff changeset
    35
BEGIN
hgs
parents:
diff changeset
    36
    UPDATE CA_GROUP_ENTRY SET GE_POSITION = GE_POSITION - 1 WHERE GE_POSITION > old.GE_POSITION AND GE_GROUP_ID = old.GE_GROUP_ID;
hgs
parents:
diff changeset
    37
END; 
hgs
parents:
diff changeset
    38
CREATE TRIGGER update_position_in_ca_group_entry_before_insert BEFORE INSERT ON CA_GROUP_ENTRY
hgs
parents:
diff changeset
    39
BEGIN
hgs
parents:
diff changeset
    40
    UPDATE CA_GROUP_ENTRY SET GE_POSITION = GE_POSITION + 1 WHERE GE_POSITION >= new.GE_POSITION AND GE_GROUP_ID = new.GE_GROUP_ID;
hgs
parents:
diff changeset
    41
END;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
SELECT "CREATE TABLE CA_ICON" AS " ";
hgs
parents:
diff changeset
    44
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    45
CREATE TABLE CA_ICON( ICON_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    46
                                  IC_FILENAME TEXT,
hgs
parents:
diff changeset
    47
                                  IC_SKIN_ID TEXT,
94
hgs
parents: 93
diff changeset
    48
                                  IC_APP_ID TEXT,
88
hgs
parents:
diff changeset
    49
                                  UNIQUE( IC_FILENAME, IC_SKIN_ID, IC_APP_ID ) );
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
SELECT "CREATE TABLE CA_LAUNCH" AS " ";
hgs
parents:
diff changeset
    52
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    53
CREATE TABLE CA_LAUNCH( LAUNCH_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    54
                                  LA_ENTRY_ID INTEGER NOT NULL,
hgs
parents:
diff changeset
    55
                                  LA_LAUNCH_TIME INTEGER NOT NULL,
hgs
parents:
diff changeset
    56
                                  FOREIGN KEY(LA_ENTRY_ID) REFERENCES CA_ENTRY(ENTRY_ID) );
hgs
parents:
diff changeset
    57
CREATE INDEX LaunchLaunchTime_CAIndex ON CA_LAUNCH(LA_LAUNCH_TIME);
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
SELECT "CREATE TABLE CA_ATTRIBUTE" AS " ";
hgs
parents:
diff changeset
    60
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    61
CREATE TABLE CA_ATTRIBUTE( ATTRIBUTE_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    62
                                  AT_ENTRY_ID INTEGER NOT NULL,
hgs
parents:
diff changeset
    63
                                  AT_NAME TEXT NOT NULL,
hgs
parents:
diff changeset
    64
                                  AT_VALUE TEXT NOT NULL,
hgs
parents:
diff changeset
    65
                                  UNIQUE( AT_ENTRY_ID, AT_NAME ),
hgs
parents:
diff changeset
    66
                                  FOREIGN KEY(AT_ENTRY_ID) REFERENCES CA_ENTRY(ENTRY_ID) );
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
SELECT "CREATE TABLE CA_LOCALIZATION_TEXT" AS " ";
hgs
parents:
diff changeset
    69
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    70
CREATE TABLE CA_LOCALIZATION_TEXT( LOC_TEXT_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    71
                                  LT_TABLE_NAME TEXT ,
hgs
parents:
diff changeset
    72
                                  LT_ATTRIBUTE_NAME TEXT ,
hgs
parents:
diff changeset
    73
                                  LT_STRING_ID TEXT ,
94
hgs
parents: 93
diff changeset
    74
                                  LT_QMFILENAME TEXT,
88
hgs
parents:
diff changeset
    75
                                  LT_ROW_ID INTEGER );
hgs
parents:
diff changeset
    76
                                  
hgs
parents:
diff changeset
    77
SELECT "CREATE TABLE CA_DB_PROPERTIES" AS " ";
hgs
parents:
diff changeset
    78
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    79
CREATE TABLE CA_DB_PROPERTIES( DB_PROPERTIES_ID INTEGER PRIMARY KEY ,
hgs
parents:
diff changeset
    80
                                  DB_PROPERTY TEXT UNIQUE,
hgs
parents:
diff changeset
    81
                                  DB_VALUE TEXT );       
hgs
parents:
diff changeset
    82
                                   
hgs
parents:
diff changeset
    83
94
hgs
parents: 93
diff changeset
    84
SELECT "INSERT INITIAL DATA TO CA_DB_PROPERTIES" AS " ";
hgs
parents: 93
diff changeset
    85
hgs
parents: 93
diff changeset
    86
SELECT "------------------------------------" AS " ";
hgs
parents: 93
diff changeset
    87
INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE ) 
hgs
parents: 93
diff changeset
    88
VALUES ( 'Version', '00001' );
hgs
parents: 93
diff changeset
    89
INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE ) 
hgs
parents: 93
diff changeset
    90
VALUES ( 'Language', '' );
hgs
parents: 93
diff changeset
    91
INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE ) 
hgs
parents: 93
diff changeset
    92
VALUES ( 'QMfile', 'contentstorage_' );
88
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
-- CREATE VIEW COLLECTION
hgs
parents:
diff changeset
    95
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
    96
SELECT "CREATE VIEW COLLECTION" AS " ";
hgs
parents:
diff changeset
    97
DROP VIEW IF EXISTS COLLECTION;
hgs
parents:
diff changeset
    98
CREATE VIEW COLLECTION 
hgs
parents:
diff changeset
    99
  AS SELECT 
92
hgs
parents: 89
diff changeset
   100
    "" AS "COLLECTION_NAME",
hgs
parents: 89
diff changeset
   101
    "" AS "COL_LOCNAME",
107
hgs
parents: 106
diff changeset
   102
    "" AS "TRANSLATION_FILE",
106
hgs
parents: 98
diff changeset
   103
    "" AS "COL_SHORT_NAME",
hgs
parents: 98
diff changeset
   104
    "" AS "COL_TITLE_NAME",
92
hgs
parents: 89
diff changeset
   105
    "" AS "COL_APP_GROUP_NAME", 
94
hgs
parents: 93
diff changeset
   106
    "" AS "ICON_FILENAME",
hgs
parents: 93
diff changeset
   107
    "" AS "ICON_SKIN_ID",
93
hgs
parents: 92
diff changeset
   108
    "" AS "FLAGS";
88
hgs
parents:
diff changeset
   109
    
hgs
parents:
diff changeset
   110
SELECT "  CREATE TRIGGER collection_insert" AS " ";
hgs
parents:
diff changeset
   111
CREATE TRIGGER collection_insert INSTEAD OF INSERT ON COLLECTION 
hgs
parents:
diff changeset
   112
BEGIN  
hgs
parents:
diff changeset
   113
  -- INSERT ICON
94
hgs
parents: 93
diff changeset
   114
  INSERT INTO CA_ICON (IC_FILENAME, IC_SKIN_ID) 
hgs
parents: 93
diff changeset
   115
  VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
88
hgs
parents:
diff changeset
   116
  -- DELETE IF ICON IS NULL OR IF IT IS DUPLICATE
hgs
parents:
diff changeset
   117
  DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND 
107
hgs
parents: 106
diff changeset
   118
      ( (IC_FILENAME = "" AND IC_SKIN_ID ="") OR 
hgs
parents: 106
diff changeset
   119
        (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
88
hgs
parents:
diff changeset
   120
  -- INSERT ENTRY
92
hgs
parents: 89
diff changeset
   121
    INSERT INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_FLAGS, EN_ICON_ID ) 
107
hgs
parents: 106
diff changeset
   122
    VALUES ( new.COLLECTION_NAME , 2, "collection",  new.FLAGS, (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND IC_SKIN_ID = new.ICON_SKIN_ID ));
92
hgs
parents: 89
diff changeset
   123
    -- LOCALIZATION 
94
hgs
parents: 93
diff changeset
   124
    INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID ) 
107
hgs
parents: 106
diff changeset
   125
    VALUES ( 'CA_ENTRY', 'EN_TEXT', new.COLLECTION_NAME, new.TRANSLATION_FILE, ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ) );
hgs
parents: 106
diff changeset
   126
    DELETE FROM CA_LOCALIZATION_TEXT WHERE LT_QMFILENAME IS NULL AND LOC_TEXT_ID = last_insert_rowid() ;
hgs
parents: 106
diff changeset
   127
    INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID ) 
hgs
parents: 106
diff changeset
   128
    VALUES ( 'CA_ATTRIBUTE', 'short_name', new.COL_SHORT_NAME, new.TRANSLATION_FILE, ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ) );
hgs
parents: 106
diff changeset
   129
    DELETE FROM CA_LOCALIZATION_TEXT WHERE ( LT_QMFILENAME IS NULL OR LT_STRING_ID IS NULL ) AND LOC_TEXT_ID = last_insert_rowid();
hgs
parents: 106
diff changeset
   130
    INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID ) 
hgs
parents: 106
diff changeset
   131
    VALUES ( 'CA_ATTRIBUTE', 'title_name', new.COL_TITLE_NAME, new.TRANSLATION_FILE, ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ) );
hgs
parents: 106
diff changeset
   132
    DELETE FROM CA_LOCALIZATION_TEXT WHERE ( LT_QMFILENAME IS NULL OR LT_STRING_ID IS NULL ) AND LOC_TEXT_ID = last_insert_rowid();
92
hgs
parents: 89
diff changeset
   133
    -- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
88
hgs
parents:
diff changeset
   134
  INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION) 
hgs
parents:
diff changeset
   135
  VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TYPE_NAME = "menucollections") , 
hgs
parents:
diff changeset
   136
          (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME), 
hgs
parents:
diff changeset
   137
          (SELECT IFNULL(MAX(GE_POSITION)+1, 1) FROM CA_GROUP_ENTRY WHERE GE_GROUP_ID = (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TYPE_NAME = "menucollections")) );
106
hgs
parents: 98
diff changeset
   138
    -- ADD ATTRIBUTES
92
hgs
parents: 89
diff changeset
   139
    INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
hgs
parents: 89
diff changeset
   140
    VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME AND (EN_TYPE_NAME = "collection::downloaded" OR EN_TYPE_NAME = "collection") ), "appgroup_name", new.COL_APP_GROUP_NAME );
106
hgs
parents: 98
diff changeset
   141
    INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
hgs
parents: 98
diff changeset
   142
    VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME AND (EN_TYPE_NAME = "collection::downloaded" OR EN_TYPE_NAME = "collection") ), "short_name", new.COL_SHORT_NAME );
hgs
parents: 98
diff changeset
   143
    INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
hgs
parents: 98
diff changeset
   144
    VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME AND (EN_TYPE_NAME = "collection::downloaded" OR EN_TYPE_NAME = "collection") ), "title_name", new.COL_TITLE_NAME );
88
hgs
parents:
diff changeset
   145
END;
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
-- CREATE VIEW ITEM_TO_COLLECTION
hgs
parents:
diff changeset
   148
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
   149
SELECT "CREATE VIEW ITEM_TO_COLLECTION" AS " ";
hgs
parents:
diff changeset
   150
DROP VIEW IF EXISTS ITEM_TO_COLLECTION;
hgs
parents:
diff changeset
   151
CREATE VIEW ITEM_TO_COLLECTION 
hgs
parents:
diff changeset
   152
  AS SELECT 
hgs
parents:
diff changeset
   153
    "" AS "ITEM_TYPE",
hgs
parents:
diff changeset
   154
    "" AS "ITEM_NAME",
106
hgs
parents: 98
diff changeset
   155
    "" AS "ITEM_SHORTNAME",
94
hgs
parents: 93
diff changeset
   156
    "" AS "ICON_FILENAME",
hgs
parents: 93
diff changeset
   157
    "" AS "ICON_SKIN_ID",
88
hgs
parents:
diff changeset
   158
    "" AS "ITEM_DEST",    
hgs
parents:
diff changeset
   159
    "" AS "COLLECTION_NAME";
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
SELECT "  CREATE TRIGGER item_to_collection_insert_app" AS " ";
hgs
parents:
diff changeset
   162
CREATE TRIGGER item_to_collection_insert_app INSTEAD OF INSERT ON ITEM_TO_COLLECTION WHEN new.ITEM_TYPE="application"
hgs
parents:
diff changeset
   163
BEGIN
hgs
parents:
diff changeset
   164
  -- INSERT ENTRY
hgs
parents:
diff changeset
   165
  INSERT OR IGNORE INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_UID ) 
hgs
parents:
diff changeset
   166
  VALUES ( new.ITEM_NAME, 1, "application", new.ITEM_DEST   );
92
hgs
parents: 89
diff changeset
   167
  -- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
88
hgs
parents:
diff changeset
   168
  INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION) 
hgs
parents:
diff changeset
   169
  VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) , 
94
hgs
parents: 93
diff changeset
   170
          (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_UID = new.ITEM_DEST), 
88
hgs
parents:
diff changeset
   171
          (SELECT IFNULL(MAX(GE_POSITION)+1, 1) FROM CA_GROUP_ENTRY WHERE GE_GROUP_ID = (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME)) );
hgs
parents:
diff changeset
   172
END;
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
SELECT "  CREATE TRIGGER item_to_collection_insert_url" AS " ";
hgs
parents:
diff changeset
   175
CREATE TRIGGER item_to_collection_insert_url INSTEAD OF INSERT ON ITEM_TO_COLLECTION WHEN new.ITEM_TYPE="url"
hgs
parents:
diff changeset
   176
BEGIN
92
hgs
parents: 89
diff changeset
   177
  -- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
88
hgs
parents:
diff changeset
   178
  INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION) 
hgs
parents:
diff changeset
   179
  VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) , 
94
hgs
parents: 93
diff changeset
   180
          (SELECT ENTRY_ID FROM CA_ENTRY WHERE (EN_TEXT = new.ITEM_NAME AND EN_TYPE_NAME = new.ITEM_TYPE )),
88
hgs
parents:
diff changeset
   181
          (SELECT IFNULL(MAX(GE_POSITION)+1, 1) FROM CA_GROUP_ENTRY WHERE GE_GROUP_ID = (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME)) );
119
hgs
parents: 107
diff changeset
   182
  -- UPDATE FLAGS IN A COLLECTION TO WHICH THE URL IS INSERTED
hgs
parents: 107
diff changeset
   183
  UPDATE CA_ENTRY
hgs
parents: 107
diff changeset
   184
        SET EN_FLAGS=EN_FLAGS|8
hgs
parents: 107
diff changeset
   185
        WHERE EN_TEXT=new.COLLECTION_NAME;
88
hgs
parents:
diff changeset
   186
END;
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
92
hgs
parents: 89
diff changeset
   189
-- CREATE VIEW WIDGET   _TO_COLLECTION
88
hgs
parents:
diff changeset
   190
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
   191
SELECT "CREATE VIEW WIDGET_TO_COLLECTION" AS " ";
hgs
parents:
diff changeset
   192
DROP VIEW IF EXISTS WIDGET_TO_COLLECTION;
hgs
parents:
diff changeset
   193
CREATE VIEW WIDGET_TO_COLLECTION 
hgs
parents:
diff changeset
   194
  AS SELECT 
hgs
parents:
diff changeset
   195
    "" AS "ITEM_TYPE",
hgs
parents:
diff changeset
   196
    "" AS "ITEM_NAME",
94
hgs
parents: 93
diff changeset
   197
    "" AS "ICON_FILENAME",
hgs
parents: 93
diff changeset
   198
    "" AS "ICON_SKIN_ID",
88
hgs
parents:
diff changeset
   199
    "" AS "PACKAGE_UID",
hgs
parents:
diff changeset
   200
    "" AS "LIBRARY",
hgs
parents:
diff changeset
   201
    "" AS "URI",
93
hgs
parents: 92
diff changeset
   202
    "" AS "COLLECTION_NAME";
88
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
SELECT "  CREATE TRIGGER insert_widget_to_collection" AS " ";
hgs
parents:
diff changeset
   205
CREATE TRIGGER item_to_collection_insert_widget INSTEAD OF INSERT ON WIDGET_TO_COLLECTION WHEN new.ITEM_TYPE="widget"
hgs
parents:
diff changeset
   206
BEGIN
hgs
parents:
diff changeset
   207
  -- INSERT ICON
94
hgs
parents: 93
diff changeset
   208
  INSERT OR IGNORE INTO CA_ICON (IC_FILENAME, IC_SKIN_ID) 
hgs
parents: 93
diff changeset
   209
  VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
88
hgs
parents:
diff changeset
   210
  DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND 
107
hgs
parents: 106
diff changeset
   211
      ( (IC_FILENAME = "" AND IC_SKIN_ID = "") OR 
hgs
parents: 106
diff changeset
   212
        (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
88
hgs
parents:
diff changeset
   213
  -- INSERT ENTRY
125
26079c1bb561 201039_01
hgs
parents: 119
diff changeset
   214
  INSERT OR IGNORE INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_FLAGS, EN_ICON_ID ) 
26079c1bb561 201039_01
hgs
parents: 119
diff changeset
   215
  VALUES ( new.ITEM_NAME, 1, "widget", 0, (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND IC_SKIN_ID = new.ICON_SKIN_ID ));
88
hgs
parents:
diff changeset
   216
  -- INSERT ATTRIBUTES
hgs
parents:
diff changeset
   217
  INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents:
diff changeset
   218
  VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME ) ,"packageuid",new.PACKAGE_UID);
hgs
parents:
diff changeset
   219
  INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents:
diff changeset
   220
  VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME ) ,"widget:library",new.LIBRARY);
hgs
parents:
diff changeset
   221
  INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents:
diff changeset
   222
  VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME ) ,"widget:uri",new.URI);
92
hgs
parents: 89
diff changeset
   223
  -- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
88
hgs
parents:
diff changeset
   224
  INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION) 
hgs
parents:
diff changeset
   225
  VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) , 
94
hgs
parents: 93
diff changeset
   226
          (SELECT ENTRY_ID FROM CA_ENTRY WHERE (EN_TEXT = new.ITEM_NAME AND EN_TYPE_NAME = new.ITEM_TYPE)), 
88
hgs
parents:
diff changeset
   227
          (SELECT IFNULL(MAX(GE_POSITION)+1, 1) FROM CA_GROUP_ENTRY WHERE GE_GROUP_ID = (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME)) );
92
hgs
parents: 89
diff changeset
   228
END;
88
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
107
hgs
parents: 106
diff changeset
   232
-- CREATE VIEW URL
hgs
parents: 106
diff changeset
   233
SELECT "------------------------------------" AS " ";
hgs
parents: 106
diff changeset
   234
SELECT "CREATE VIEW URL" AS " ";
hgs
parents: 106
diff changeset
   235
DROP VIEW IF EXISTS URL;
hgs
parents: 106
diff changeset
   236
CREATE VIEW URL 
hgs
parents: 106
diff changeset
   237
  AS SELECT 
hgs
parents: 106
diff changeset
   238
    "" AS "URL_TITLE",
hgs
parents: 106
diff changeset
   239
    "" AS "URL_SHORT_TITLE",
hgs
parents: 106
diff changeset
   240
    "" AS "ICON_FILENAME",
hgs
parents: 106
diff changeset
   241
    "" AS "ICON_SKIN_ID",
hgs
parents: 106
diff changeset
   242
    "" AS "URL_DEST";
hgs
parents: 106
diff changeset
   243
hgs
parents: 106
diff changeset
   244
SELECT "  CREATE TRIGGER insert_url" AS " ";
hgs
parents: 106
diff changeset
   245
CREATE TRIGGER insert_url INSTEAD OF INSERT ON URL
hgs
parents: 106
diff changeset
   246
BEGIN
hgs
parents: 106
diff changeset
   247
  -- INSERT ICON
hgs
parents: 106
diff changeset
   248
  INSERT OR IGNORE INTO CA_ICON (IC_FILENAME, IC_SKIN_ID) 
hgs
parents: 106
diff changeset
   249
  VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
hgs
parents: 106
diff changeset
   250
  DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND 
hgs
parents: 106
diff changeset
   251
      ( (IC_FILENAME = "" AND IC_SKIN_ID = "") OR 
hgs
parents: 106
diff changeset
   252
        (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME  AND IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);  
hgs
parents: 106
diff changeset
   253
  -- INSERT ENTRY
hgs
parents: 106
diff changeset
   254
  INSERT OR IGNORE INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_ICON_ID ) 
hgs
parents: 106
diff changeset
   255
  VALUES ( new.URL_TITLE, 1, "url", (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND IC_SKIN_ID = new.ICON_SKIN_ID ) );
hgs
parents: 106
diff changeset
   256
  -- ADD ATTRIBUTES
hgs
parents: 106
diff changeset
   257
  INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents: 106
diff changeset
   258
  VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.URL_TITLE ), "url", new.URL_DEST );
hgs
parents: 106
diff changeset
   259
  INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents: 106
diff changeset
   260
  VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.URL_TITLE ) ,"short_name", new.URL_SHORT_TITLE );
hgs
parents: 106
diff changeset
   261
END;
hgs
parents: 106
diff changeset
   262
hgs
parents: 106
diff changeset
   263
hgs
parents: 106
diff changeset
   264
92
hgs
parents: 89
diff changeset
   265
-- insert neccessary items
hgs
parents: 89
diff changeset
   266
SELECT "INSERT menucollections ENTRY" AS " ";
hgs
parents: 89
diff changeset
   267
INSERT INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_ICON_ID, EN_UID ) 
hgs
parents: 89
diff changeset
   268
VALUES ( 'AllCollections', 2, "menucollections", NULL , NULL  );
hgs
parents: 89
diff changeset
   269
hgs
parents: 89
diff changeset
   270
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents: 89
diff changeset
   271
VALUES ( last_insert_rowid(), "appgroup_name", "AllCollections" );
hgs
parents: 89
diff changeset
   272
hgs
parents: 89
diff changeset
   273
SELECT "------------------------------------" AS " ";
hgs
parents: 89
diff changeset
   274
SELECT "INSERT Downloaded collection ENTRY" AS " ";
107
hgs
parents: 106
diff changeset
   275
INSERT INTO CA_ICON (IC_FILENAME, IC_SKIN_ID) 
hgs
parents: 106
diff changeset
   276
VALUES ( "qtg_large_applications_download", "" );
92
hgs
parents: 89
diff changeset
   277
hgs
parents: 89
diff changeset
   278
INSERT INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_ICON_ID,  EN_FLAGS ) 
107
hgs
parents: 106
diff changeset
   279
VALUES ( 'txt_applib_dblist_downloads', 2, "collection::downloaded", ( SELECT MAX(ICON_ID) FROM CA_ICON ) , 8 );
hgs
parents: 106
diff changeset
   280
hgs
parents: 106
diff changeset
   281
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
hgs
parents: 106
diff changeset
   282
VALUES ( ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ), "appgroup_name", "Downloaded" );
92
hgs
parents: 89
diff changeset
   283
hgs
parents: 89
diff changeset
   284
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )  
107
hgs
parents: 106
diff changeset
   285
VALUES ( ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ), "title_name", "txt_applib_subtitle_downloads" );
92
hgs
parents: 89
diff changeset
   286
94
hgs
parents: 93
diff changeset
   287
INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID ) 
107
hgs
parents: 106
diff changeset
   288
VALUES ( 'CA_ENTRY', 'EN_TEXT', "txt_applib_dblist_downloads",( SELECT DB_VALUE FROM CA_DB_PROPERTIES WHERE DB_PROPERTY = "QMfile" ), ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ) );
hgs
parents: 106
diff changeset
   289
hgs
parents: 106
diff changeset
   290
INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID ) 
hgs
parents: 106
diff changeset
   291
VALUES ( 'CA_ATTRIBUTE', 'title_name', "txt_applib_subtitle_downloads",( SELECT DB_VALUE FROM CA_DB_PROPERTIES WHERE DB_PROPERTY = "QMfile" ), ( SELECT MAX(ENTRY_ID) FROM CA_ENTRY ) );
92
hgs
parents: 89
diff changeset
   292
hgs
parents: 89
diff changeset
   293
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION) 
hgs
parents: 89
diff changeset
   294
VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TYPE_NAME = "menucollections") , 
hgs
parents: 89
diff changeset
   295
          (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TYPE_NAME = "collection::downloaded"), 
hgs
parents: 89
diff changeset
   296
          1 ); 
hgs
parents: 89
diff changeset
   297
107
hgs
parents: 106
diff changeset
   298
          
hgs
parents: 106
diff changeset
   299
          
88
hgs
parents:
diff changeset
   300
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
   301
SELECT "castoragedb_create - END" AS " ";
hgs
parents:
diff changeset
   302
SELECT "------------------------------------" AS " ";
hgs
parents:
diff changeset
   303