--- a/contentstorage/castorage/data/castoragedb_create.sql Fri May 14 16:10:06 2010 +0300
+++ b/contentstorage/castorage/data/castoragedb_create.sql Thu May 27 13:11:12 2010 +0300
@@ -45,7 +45,7 @@
CREATE TABLE CA_ICON( ICON_ID INTEGER PRIMARY KEY ,
IC_FILENAME TEXT,
IC_SKIN_ID TEXT,
- IC_APP_ID TEXT,
+ IC_APP_ID TEXT,
UNIQUE( IC_FILENAME, IC_SKIN_ID, IC_APP_ID ) );
SELECT "CREATE TABLE CA_LAUNCH" AS " ";
@@ -71,6 +71,7 @@
LT_TABLE_NAME TEXT ,
LT_ATTRIBUTE_NAME TEXT ,
LT_STRING_ID TEXT ,
+ LT_QMFILENAME TEXT,
LT_ROW_ID INTEGER );
SELECT "CREATE TABLE CA_DB_PROPERTIES" AS " ";
@@ -80,6 +81,15 @@
DB_VALUE TEXT );
+SELECT "INSERT INITIAL DATA TO CA_DB_PROPERTIES" AS " ";
+
+SELECT "------------------------------------" AS " ";
+INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
+VALUES ( 'Version', '00001' );
+INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
+VALUES ( 'Language', '' );
+INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
+VALUES ( 'QMfile', 'contentstorage_' );
-- CREATE VIEW COLLECTION
SELECT "------------------------------------" AS " ";
@@ -90,24 +100,27 @@
"" AS "COLLECTION_NAME",
"" AS "COL_LOCNAME",
"" AS "COL_APP_GROUP_NAME",
- "" AS "ICON",
+ "" AS "ICON_FILENAME",
+ "" AS "ICON_SKIN_ID",
"" AS "FLAGS";
SELECT " CREATE TRIGGER collection_insert" AS " ";
CREATE TRIGGER collection_insert INSTEAD OF INSERT ON COLLECTION
BEGIN
-- INSERT ICON
- INSERT INTO CA_ICON (IC_FILENAME)
- VALUES ( new.ICON);
+ INSERT INTO CA_ICON (IC_FILENAME, IC_SKIN_ID)
+ VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
-- DELETE IF ICON IS NULL OR IF IT IS DUPLICATE
DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND
- (IC_FILENAME IS NULL OR (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
+ ( (IC_FILENAME IS NULL AND IC_SKIN_ID IS NULL) OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND ICON_ID <> last_insert_rowid()) IS NOT NULL OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
-- INSERT ENTRY
INSERT INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_FLAGS, EN_ICON_ID )
- VALUES ( new.COLLECTION_NAME , 2, "collection", new.FLAGS, (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON ));
+ VALUES ( new.COLLECTION_NAME , 2, "collection", new.FLAGS, (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME OR IC_SKIN_ID = new.ICON_SKIN_ID ));
-- LOCALIZATION
- INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_ROW_ID )
- VALUES ( 'CA_ENTRY', 'EN_TEXT', new.COL_LOCNAME, ( SELECT last_insert_rowid() ) );
+ INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID )
+ VALUES ( 'CA_ENTRY', 'EN_TEXT', new.COL_LOCNAME, ( SELECT DB_VALUE FROM CA_DB_PROPERTIES WHERE DB_PROPERTY = "QMfile" ), ( SELECT last_insert_rowid() ) );
DELETE FROM CA_LOCALIZATION_TEXT WHERE LT_STRING_ID IS NULL AND LOC_TEXT_ID = last_insert_rowid() ;
-- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION)
@@ -127,7 +140,8 @@
AS SELECT
"" AS "ITEM_TYPE",
"" AS "ITEM_NAME",
- "" AS "ICON",
+ "" AS "ICON_FILENAME",
+ "" AS "ICON_SKIN_ID",
"" AS "ITEM_DEST",
"" AS "COLLECTION_NAME";
@@ -140,7 +154,7 @@
-- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION)
VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) ,
- (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME),
+ (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_UID = new.ITEM_DEST),
(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)) );
END;
@@ -148,19 +162,21 @@
CREATE TRIGGER item_to_collection_insert_url INSTEAD OF INSERT ON ITEM_TO_COLLECTION WHEN new.ITEM_TYPE="url"
BEGIN
-- INSERT ICON
- INSERT OR IGNORE INTO CA_ICON (IC_FILENAME)
- VALUES ( new.ICON);
+ INSERT OR IGNORE INTO CA_ICON (IC_FILENAME, IC_SKIN_ID)
+ VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND
- (IC_FILENAME IS NULL OR (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
+ ( (IC_FILENAME IS NULL AND IC_SKIN_ID IS NULL) OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND ICON_ID <> last_insert_rowid()) IS NOT NULL OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
-- INSERT ENTRY
INSERT OR IGNORE INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_ICON_ID )
- VALUES ( new.ITEM_NAME, 1, "url", (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON ));
+ VALUES ( new.ITEM_NAME, 1, "url", (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME OR IC_SKIN_ID = new.ICON_SKIN_ID ));
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
VALUES ( ( SELECT last_insert_rowid() ) ,"url",new.ITEM_DEST);
-- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION)
VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) ,
- (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME),
+ (SELECT ENTRY_ID FROM CA_ENTRY WHERE (EN_TEXT = new.ITEM_NAME AND EN_TYPE_NAME = new.ITEM_TYPE )),
(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)) );
END;
@@ -173,7 +189,8 @@
AS SELECT
"" AS "ITEM_TYPE",
"" AS "ITEM_NAME",
- "" AS "ICON",
+ "" AS "ICON_FILENAME",
+ "" AS "ICON_SKIN_ID",
"" AS "PACKAGE_UID",
"" AS "LIBRARY",
"" AS "LONG_NAME",
@@ -184,13 +201,15 @@
CREATE TRIGGER item_to_collection_insert_widget INSTEAD OF INSERT ON WIDGET_TO_COLLECTION WHEN new.ITEM_TYPE="widget"
BEGIN
-- INSERT ICON
- INSERT OR IGNORE INTO CA_ICON (IC_FILENAME)
- VALUES ( new.ICON);
+ INSERT OR IGNORE INTO CA_ICON (IC_FILENAME, IC_SKIN_ID)
+ VALUES ( new.ICON_FILENAME, new.ICON_SKIN_ID);
DELETE FROM CA_ICON WHERE ICON_ID = last_insert_rowid() AND
- (IC_FILENAME IS NULL OR (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
+ ( (IC_FILENAME IS NULL AND IC_SKIN_ID IS NULL) OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME AND ICON_ID <> last_insert_rowid()) IS NOT NULL OR
+ (SELECT ICON_ID FROM CA_ICON WHERE IC_SKIN_ID = new.ICON_SKIN_ID AND ICON_ID <> last_insert_rowid()) IS NOT NULL);
-- INSERT ENTRY
INSERT OR IGNORE INTO CA_ENTRY (EN_TEXT, EN_ROLE, EN_TYPE_NAME, EN_ICON_ID )
- VALUES ( new.ITEM_NAME, 1, "widget", (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON ));
+ VALUES ( new.ITEM_NAME, 1, "widget", (SELECT ICON_ID FROM CA_ICON WHERE IC_FILENAME = new.ICON_FILENAME OR IC_SKIN_ID = new.ICON_SKIN_ID ));
-- INSERT ATTRIBUTES
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
VALUES ( ( SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME ) ,"packageuid",new.PACKAGE_UID);
@@ -203,19 +222,11 @@
-- RELATION TO MAIN COLLECTION (ADD TO GROUP: )
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION)
VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.COLLECTION_NAME) ,
- (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TEXT = new.ITEM_NAME),
+ (SELECT ENTRY_ID FROM CA_ENTRY WHERE (EN_TEXT = new.ITEM_NAME AND EN_TYPE_NAME = new.ITEM_TYPE)),
(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)) );
END;
-SELECT "INSERT INITIAL DATA TO CA_DB_PROPERTIES" AS " ";
-SELECT "------------------------------------" AS " ";
-INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
-VALUES ( 'Version', '00001' );
-INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
-VALUES ( 'Language', '' );
-INSERT INTO CA_DB_PROPERTIES ( DB_PROPERTY, DB_VALUE )
-VALUES ( 'QMfile', 'contentstorage_' );
-- insert neccessary items
SELECT "INSERT menucollections ENTRY" AS " ";
@@ -236,8 +247,8 @@
INSERT OR IGNORE INTO CA_ATTRIBUTE (AT_ENTRY_ID, AT_NAME, AT_VALUE )
VALUES ( last_insert_rowid(), "appgroup_name", " Downloaded" );
-INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_ROW_ID )
-VALUES ( 'CA_ENTRY', 'EN_TEXT', "txt_applib_dblist_downloaded", ( SELECT last_insert_rowid() ) );
+INSERT INTO CA_LOCALIZATION_TEXT ( LT_TABLE_NAME, LT_ATTRIBUTE_NAME, LT_STRING_ID, LT_QMFILENAME, LT_ROW_ID )
+VALUES ( 'CA_ENTRY', 'EN_TEXT', "txt_applib_dblist_downloaded",( SELECT DB_VALUE FROM CA_DB_PROPERTIES WHERE DB_PROPERTY = "QMfile" ), ( SELECT last_insert_rowid() ) );
INSERT INTO CA_GROUP_ENTRY (GE_GROUP_ID, GE_ENTRY_ID, GE_POSITION)
VALUES ( (SELECT ENTRY_ID FROM CA_ENTRY WHERE EN_TYPE_NAME = "menucollections") ,