-static int __insert_uiapplication_info(manifest_x *mfx);
-static int __insert_serviceapplication_info(manifest_x *mfx);
-static int __insert_uiapplication_appsvc_info(manifest_x *mfx);
-static int __insert_serviceapplication_appsvc_info(manifest_x *mfx);
-static int __insert_uiapplication_appcategory_info(manifest_x *mfx);
-static int __insert_serviceapplication_appcategory_info(manifest_x *mfx);
-static int __insert_uiapplication_appcontrol_info(manifest_x *mfx);
-static int __insert_serviceapplication_appmetadata_info(manifest_x *mfx);
-static int __insert_uiapplication_appmetadata_info(manifest_x *mfx);
-static int __insert_serviceapplication_appcontrol_info(manifest_x *mfx);
-static int __insert_uiapplication_share_allowed_info(manifest_x *mfx);
-static int __insert_serviceapplication_share_allowed_info(manifest_x *mfx);
-static int __insert_uiapplication_share_request_info(manifest_x *mfx);
-static int __insert_serviceapplication_share_request_info(manifest_x *mfx);
-static int __insert_uiapplication_datacontrol_info(manifest_x *mfx);
-static int __insert_serviceapplication_datacontrol_info(manifest_x *mfx);
-static void __insert_serviceapplication_locale_info(gpointer data, gpointer userdata);
-static void __insert_uiapplication_locale_info(gpointer data, gpointer userdata);
+#define QUERY_CREATE_TABLE_PACKAGE_APP_INFO_FOR_UID "CREATE TABLE IF NOT EXISTS package_app_info_for_uid " \
+ "(app_id TEXT NOT NULL, " \
+ "uid INTEGER NOT NULL, " \
+ "is_disabled TEXT NOT NULL DEFAULT 'false', " \
+ "is_splash_screen_enabled TEXT NOT NULL, " \
+ "PRIMARY KEY(app_id, uid))"
+
+#define QUERY_CREATE_TRIGGER_UPDATE_PACKAGE_APP_INFO_FOR_UID \
+ "CREATE TRIGGER IF NOT EXISTS update_package_appinfo_for_uid "\
+ "AFTER UPDATE ON package_app_info_for_uid " \
+ "BEGIN" \
+ " DELETE FROM package_app_info_for_uid WHERE " \
+ " is_splash_screen_enabled=" \
+ " (SELECT package_app_info.app_splash_screen_display FROM " \
+ " package_app_info, package_app_info_for_uid WHERE " \
+ " package_app_info.app_id=OLD.app_id) AND is_disabled='false';" \
+ "END;"
+
+#define QUERY_CREATE_TABLE_PACKAGE_APP_SPLASH_SCREEN \
+ "CREATE TABLE IF NOT EXISTS package_app_splash_screen " \
+ "(app_id TEXT NOT NULL, " \
+ "src TEXT NOT NULL, " \
+ "type TEXT NOT NULL, " \
+ "orientation TEXT NOT NULL, " \
+ "indicatordisplay TEXT, " \
+ "operation TEXT NOT NULL, " \
+ "color_depth TEXT NOT NULL DEFAULT '24', " \
+ "PRIMARY KEY(app_id, orientation, operation) " \
+ "FOREIGN KEY(app_id) " \
+ "REFERENCES package_app_info(app_id) " \
+ "ON DELETE CASCADE)"
+
+
+/* FIXME: duplicated at pkgmgrinfo_db.c */
+#define QUERY_CREATE_TABLE_PACKAGE_CERT_INDEX_INFO \
+ "CREATE TABLE IF NOT EXISTS package_cert_index_info( " \
+ " cert_info TEXT UNIQUE, " \
+ " cert_id INTEGER PRIMARY KEY, " \
+ " cert_ref_count INTEGER NOT NULL)"
+
+#define QUERY_CREATE_TABLE_PACKAGE_CERT_INFO \
+ "CREATE TABLE IF NOT EXISTS package_cert_info( " \
+ " package TEXT PRIMARY KEY, " \
+ " package_count INTEGER, " \
+ " author_root_cert INTEGER, " \
+ " author_im_cert INTEGER, " \
+ " author_signer_cert INTEGER, " \
+ " dist_root_cert INTEGER, " \
+ " dist_im_cert INTEGER, " \
+ " dist_signer_cert INTEGER, " \
+ " dist2_root_cert INTEGER, " \
+ " dist2_im_cert INTEGER, " \
+ " dist2_signer_cert INTEGER)"
+
+#define QUERY_CREATE_TRIGGER_UPDATE_CERT_INFO \
+ "CREATE TRIGGER IF NOT EXISTS update_cert_info " \
+ "AFTER UPDATE ON package_cert_info " \
+ "WHEN (NEW.package_count = 0) " \
+ "BEGIN" \
+ " DELETE FROM package_cert_info WHERE package=OLD.package;" \
+ "END;"
+
+#define QUERY_CREATE_TRIGGER_UPDATE_CERT_INFO2 \
+ "CREATE TRIGGER IF NOT EXISTS update_cert_info2 " \
+ "AFTER UPDATE ON package_cert_info " \
+ "WHEN (NEW.package_count = OLD.package_count + 1) " \
+ "BEGIN" \
+ " UPDATE package_cert_index_info SET" \
+ " cert_ref_count = cert_ref_count - 1" \
+ " WHERE cert_id = OLD.author_root_cert" \
+ " OR cert_id = OLD.author_im_cert" \
+ " OR cert_id = OLD.author_signer_cert" \
+ " OR cert_id = OLD.dist_root_cert" \
+ " OR cert_id = OLD.dist_im_cert" \
+ " OR cert_id = OLD.dist_signer_cert" \
+ " OR cert_id = OLD.dist2_root_cert" \
+ " OR cert_id = OLD.dist2_im_cert" \
+ " OR cert_id = OLD.dist2_signer_cert;" \
+ "END;"
+
+#define QUERY_CREATE_TRIGGER_DELETE_CERT_INFO \
+ "CREATE TRIGGER IF NOT EXISTS delete_cert_info " \
+ "AFTER DELETE ON package_cert_info " \
+ "BEGIN" \
+ " UPDATE package_cert_index_info SET" \
+ " cert_ref_count = cert_ref_count - 1" \
+ " WHERE cert_id = OLD.author_root_cert" \
+ " OR cert_id = OLD.author_im_cert" \
+ " OR cert_id = OLD.author_signer_cert" \
+ " OR cert_id = OLD.dist_root_cert" \
+ " OR cert_id = OLD.dist_im_cert" \
+ " OR cert_id = OLD.dist_signer_cert" \
+ " OR cert_id = OLD.dist2_root_cert" \
+ " OR cert_id = OLD.dist2_im_cert" \
+ " OR cert_id = OLD.dist2_signer_cert;" \
+ "END;"
+
+#define QUERY_CREATE_TRIGGER_UPDATE_CERT_INDEX_INFO \
+ "CREATE TRIGGER IF NOT EXISTS update_cert_index_info " \
+ "AFTER UPDATE ON package_cert_index_info " \
+ "WHEN ((SELECT cert_ref_count FROM package_cert_index_info " \
+ " WHERE cert_id = OLD.cert_id) = 0) "\
+ "BEGIN" \
+ " DELETE FROM package_cert_index_info WHERE cert_id = OLD.cert_id;" \
+ "END;"
+
+static int __insert_application_info(manifest_x *mfx);
+static int __insert_application_appcategory_info(manifest_x *mfx);
+static int __insert_application_appcontrol_info(manifest_x *mfx);
+static int __insert_application_appmetadata_info(manifest_x *mfx);
+static int __insert_application_share_allowed_info(manifest_x *mfx);
+static int __insert_application_share_request_info(manifest_x *mfx);
+static int __insert_application_datacontrol_info(manifest_x *mfx);
+static void __insert_application_locale_info(gpointer data, gpointer userdata);