From 6fc2f17ef688e830727aca99783ad935850e1210 Mon Sep 17 00:00:00 2001 From: Grzegorz Rynkowski Date: Fri, 1 Mar 2013 17:12:58 +0100 Subject: [PATCH] Replaced VARCHAR with TEXT in databases. [Issue#] LINUXWRT-71 [Problem] CREATE TABLE statement could be misleading - string fields are falsely limited. [Cause] SQLite ignore numeric arguments in parentheses of data types (ex. VARCHAR(256), VARCHAR(8) is TEXT). [Solution] If length of string fields are not specified, replace VARCHAR(x) to TEXT. [Verification] Build wrt-commons, other rpms depending on wrt-common, run tests and compare results before and after this patch. Change-Id: I1abbea070fef250b456ac45b299cba3f2691464b --- modules/widget_dao/dao/widget_dao.cpp | 5 +-- modules/widget_dao/orm/wrt_db | 58 +++++++++++++++++------------------ 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/modules/widget_dao/dao/widget_dao.cpp b/modules/widget_dao/dao/widget_dao.cpp index 51c4627..8f65336 100644 --- a/modules/widget_dao/dao/widget_dao.cpp +++ b/modules/widget_dao/dao/widget_dao.cpp @@ -36,10 +36,6 @@ #include #include -namespace { - unsigned int seed = time(NULL); -} - namespace WrtDB { //TODO in current solution in each getter there exists a check //"IsWidgetInstalled". Maybe it should be verified, if it could be done @@ -249,6 +245,7 @@ DbWidgetHandle WidgetDAO::registerWidget( struct timeval tv; gettimeofday(&tv, NULL); DbWidgetHandle widgetHandle; + unsigned int seed = time(NULL); do { widgetHandle = rand_r(&seed); } while (isWidgetInstalled(widgetHandle)); diff --git a/modules/widget_dao/orm/wrt_db b/modules/widget_dao/orm/wrt_db index 4f5f136..a10f230 100755 --- a/modules/widget_dao/orm/wrt_db +++ b/modules/widget_dao/orm/wrt_db @@ -20,15 +20,15 @@ SQL( CREATE_TABLE(WidgetInfo) COLUMN_NOT_NULL(app_id, INTEGER, PRIMARY KEY AUTOINCREMENT) - COLUMN(widget_type, INT, DEFAULT 1) - COLUMN(widget_id, VARCHAR(256), DEFAULT '') - COLUMN(widget_version, VARCHAR(256), DEFAULT '') + COLUMN(widget_type, INT, DEFAULT 1) + COLUMN(widget_id, TEXT, DEFAULT '') + COLUMN(widget_version, TEXT, DEFAULT '') COLUMN(widget_width, INT, DEFAULT 0) COLUMN(widget_height, INT, DEFAULT 0) - COLUMN(author_name, VARCHAR(256), DEFAULT '') - COLUMN(author_email, VARCHAR(256), DEFAULT '') - COLUMN(author_href, VARCHAR(256), DEFAULT '') - COLUMN(base_folder, VARCHAR(256), DEFAULT '') + COLUMN(author_name, TEXT, DEFAULT '') + COLUMN(author_email, TEXT, DEFAULT '') + COLUMN(author_href, TEXT, DEFAULT '') + COLUMN(base_folder, TEXT, DEFAULT '') COLUMN(webkit_plugins_required, TINYINT, DEFAULT 0) COLUMN(security_domain, INT, DEFAULT 0) COLUMN(csp_policy, TEXT, DEFAULT '') @@ -36,12 +36,12 @@ CREATE_TABLE(WidgetInfo) COLUMN(recognized, INT, DEFAULT 0) COLUMN(wac_signed, INT, DEFAULT 0) COLUMN(distributor_signed, INT, DEFAULT 0) - COLUMN(min_version, VARCHAR(16), DEFAULT '1.0') + COLUMN(min_version, TEXT, DEFAULT '1.0') COLUMN_NOT_NULL(back_supported, TINYINT, DEFAULT 0) COLUMN(access_network, TINYINT, DEFAULT 0) - COLUMN(defaultlocale, VARCHAR(256), DEFAULT 0) - COLUMN_NOT_NULL(tizen_pkgid, VARCHAR(256), DEFAULT '') - COLUMN_NOT_NULL(tizen_appid, VARCHAR(256), DEFAULT 0 UNIQUE) + COLUMN(defaultlocale, TEXT, DEFAULT 0) + COLUMN_NOT_NULL(tizen_pkgid, TEXT, DEFAULT '') + COLUMN_NOT_NULL(tizen_appid, TEXT, DEFAULT 0 UNIQUE) COLUMN(pkg_type, INT, DEFAULT 0) CREATE_TABLE_END() @@ -87,24 +87,24 @@ CREATE_TABLE(WidgetExtendedInfo) COLUMN(last_update_time, BIGINT, DEFAULT 0) COLUMN(install_time, BIGINT, DEFAULT 0) COLUMN(option_state, INT, DEFAULT 0) - COLUMN(share_href, VARCHAR(256), DEFAULT '') + COLUMN(share_href, TEXT, DEFAULT '') COLUMN(signature_type, INT, DEFAULT 0) COLUMN(updated, INT, DEFAULT 0) COLUMN(update_policy, INT, DEFAULT 0) COLUMN_NOT_NULL(test_widget, INT, CHECK(test_widget between 0 and 1) DEFAULT 0) - COLUMN(splash_img_src, VARCHAR(256), DEFAULT '') - COLUMN(background_page, VARCHAR(256), DEFAULT '') - COLUMN(installed_path, VARCHAR(512), DEFAULT '') + COLUMN(splash_img_src, TEXT, DEFAULT '') + COLUMN(background_page, TEXT, DEFAULT '') + COLUMN(installed_path, TEXT, DEFAULT '') TABLE_CONSTRAINTS( FOREIGN KEY(app_id) REFERENCES WidgetInfo (app_id) ON DELETE CASCADE ) CREATE_TABLE_END() CREATE_TABLE(WidgetPreference) - COLUMN_NOT_NULL(tizen_appid, VARCHAR(256), DEFAULT 0) - COLUMN_NOT_NULL(key_name, VARCHAR(256),) - COLUMN(key_value, VARCHAR(8000), DEFAULT '') - COLUMN(readonly, INT, DEFAULT 0) + COLUMN_NOT_NULL(tizen_appid, TEXT, DEFAULT 0) + COLUMN_NOT_NULL(key_name, TEXT,) + COLUMN(key_value, TEXT, DEFAULT '') + COLUMN(readonly, INT, DEFAULT 0) TABLE_CONSTRAINTS( PRIMARY KEY(tizen_appid, key_name), @@ -115,7 +115,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetFeature) COLUMN_NOT_NULL(widget_feature_id, INTEGER, primary key autoincrement) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(name, VARCHAR(256),) + COLUMN_NOT_NULL(name, TEXT,) COLUMN_NOT_NULL(required, INT,) COLUMN_NOT_NULL(rejected, INT,) TABLE_CONSTRAINTS( @@ -135,7 +135,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetPrivilege) COLUMN_NOT_NULL(widget_privilege_id, INTEGER, primary key autoincrement) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(name, VARCHAR(256),) + COLUMN_NOT_NULL(name, TEXT,) TABLE_CONSTRAINTS( FOREIGN KEY (app_id) REFERENCES WidgetInfo (app_id) ON DELETE CASCADE ) @@ -144,7 +144,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetIcon) COLUMN_NOT_NULL(icon_id, INTEGER, primary key autoincrement) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(icon_src, VARCHAR(256),) + COLUMN_NOT_NULL(icon_src, TEXT,) COLUMN(icon_width, INT, DEFAULT 0) COLUMN(icon_height, INT, DEFAULT 0) TABLE_CONSTRAINTS( @@ -165,7 +165,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetStartFile) COLUMN_NOT_NULL(start_file_id, INTEGER, primary key autoincrement) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(src, VARCHAR(256),) + COLUMN_NOT_NULL(src, TEXT,) TABLE_CONSTRAINTS( FOREIGN KEY(app_id) REFERENCES WidgetInfo (app_id) ON DELETE CASCADE ) @@ -194,7 +194,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetAccessHost) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(host, VARCHAR(256),) + COLUMN_NOT_NULL(host, TEXT,) TABLE_CONSTRAINTS( PRIMARY KEY(app_id, host) @@ -206,8 +206,8 @@ CREATE_TABLE(WidgetCertificateFingerprint) COLUMN_NOT_NULL(owner, INT,) COLUMN_NOT_NULL(chainid, INT,) COLUMN_NOT_NULL(type, INT,) - COLUMN(md5_fingerprint, VARCHAR(64),) - COLUMN(sha1_fingerprint, VARCHAR(64),) + COLUMN(md5_fingerprint, TEXT,) + COLUMN(sha1_fingerprint, TEXT,) COLUMN(common_name, VARCHAR(64),) TABLE_CONSTRAINTS( @@ -218,7 +218,7 @@ CREATE_TABLE_END() CREATE_TABLE(WidgetWARPInfo) COLUMN_NOT_NULL(app_id, INT,) - COLUMN_NOT_NULL(iri, VARCHAR(65536),) + COLUMN_NOT_NULL(iri, TEXT,) COLUMN(subdomain_access, INT, CHECK(subdomain_access between 0 and 1)) TABLE_CONSTRAINTS( @@ -359,8 +359,8 @@ SQL( /*TODO: It will be removed when user agent is fixed. User agent MUST be configurable in development...*/ CREATE_TABLE(UserAgents) - COLUMN_NOT_NULL(key_name, VARCHAR(256),) - COLUMN(key_value, VARCHAR(8000), DEFAULT '') + COLUMN_NOT_NULL(key_name, TEXT,) + COLUMN(key_value, TEXT, DEFAULT '') TABLE_CONSTRAINTS(PRIMARY KEY(key_name)) CREATE_TABLE_END() -- 2.7.4