diff options
Diffstat (limited to 'src/components/policy/policy_external/src/sql_pt_queries.cc')
-rw-r--r-- | src/components/policy/policy_external/src/sql_pt_queries.cc | 277 |
1 files changed, 251 insertions, 26 deletions
diff --git a/src/components/policy/policy_external/src/sql_pt_queries.cc b/src/components/policy/policy_external/src/sql_pt_queries.cc index ee53eb1487..4f858637d7 100644 --- a/src/components/policy/policy_external/src/sql_pt_queries.cc +++ b/src/components/policy/policy_external/src/sql_pt_queries.cc @@ -76,12 +76,14 @@ const std::string kCreateSchema = " `vehicle_model` VARCHAR(45), " " `vehicle_year` VARCHAR(4), " " `preloaded_date` VARCHAR (10), " - " `certificate` VARCHAR (45) " + " `certificate` VARCHAR (45), " + " `lock_screen_dismissal_enabled` BOOL" "); " "CREATE TABLE IF NOT EXISTS `functional_group`( " " `id` INTEGER PRIMARY KEY NOT NULL, " " `user_consent_prompt` TEXT, " - " `name` VARCHAR(100) NOT NULL " + " `name` VARCHAR(100) NOT NULL, " + " `encryption_required` BOOLEAN " "); " "CREATE TABLE IF NOT EXISTS `external_consent_entities`( " " `group_id` INTEGER NOT NULL, " @@ -98,6 +100,9 @@ const std::string kCreateSchema = "CREATE TABLE IF NOT EXISTS `hmi_level`( " " `value` VARCHAR(45) PRIMARY KEY NOT NULL " "); " + "CREATE TABLE IF NOT EXISTS `hybrid_app_preference`( " + " `value` VARCHAR(45) PRIMARY KEY NOT NULL " + "); " "CREATE TABLE IF NOT EXISTS `notifications_by_priority`( " " `priority_value` VARCHAR(45) PRIMARY KEY NOT NULL, " " `value` INTEGER NOT NULL, " @@ -147,18 +152,33 @@ const std::string kCreateSchema = " `is_predata` BOOLEAN, " " `memory_kb` INTEGER NOT NULL, " " `heart_beat_timeout_ms` INTEGER NOT NULL, " + " `certificate` VARCHAR(65535), " + " `hybrid_app_preference_value` VARCHAR(255), " + " `endpoint` VARCHAR(255), " + " `enabled` BOOLEAN, " + " `auth_token` VARCHAR(65535), " + " `cloud_transport_type` VARCHAR(255), " + " `icon_url` VARCHAR(65535), " + " `allow_unknown_rpc_passthrough` BOOLEAN, " " `remote_control_denied` BOOLEAN NOT NULL DEFAULT 0, " + " `encryption_required` BOOLEAN, " " CONSTRAINT `fk_application_hmi_level1` " " FOREIGN KEY(`default_hmi`) " " REFERENCES `hmi_level`(`value`), " " CONSTRAINT `fk_application_priorities1` " " FOREIGN KEY(`priority_value`) " " REFERENCES `priority`(`value`) " + " CONSTRAINT `fk_application_hybrid_app_preference1` " + " FOREIGN KEY(`hybrid_app_preference_value`) " + " REFERENCES `hybrid_app_preference`(`value`) " "); " "CREATE INDEX IF NOT EXISTS `application.fk_application_hmi_level1_idx` " " ON `application`(`default_hmi`); " "CREATE INDEX IF NOT EXISTS `application.fk_application_priorities1_idx` " " ON `application`(`priority_value`); " + "CREATE INDEX IF NOT EXISTS " + "`application.fk_application_hybrid_app_preference1` " + " ON `application`(`hybrid_app_preference_value`); " "CREATE TABLE IF NOT EXISTS `app_group`( " " `application_id` VARCHAR(45) NOT NULL COLLATE NOCASE, " " `functional_group_id` INTEGER NOT NULL, " @@ -286,6 +306,30 @@ const std::string kCreateSchema = " FOREIGN KEY(`application_id`) " " REFERENCES `application`(`id`) " "); " + "CREATE TABLE IF NOT EXISTS `app_service_types`( " + " `id` INTEGER PRIMARY KEY NOT NULL, " + " `service_type` VARCHAR(50), " + " `application_id` VARCHAR(45) NOT NULL COLLATE NOCASE, " + " CONSTRAINT `fk_service_type_app_id` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`) " + "); " + "CREATE TABLE IF NOT EXISTS `app_service_names`( " + " `service_type_id` INTEGER NOT NULL, " + " `service_name` VARCHAR(45), " + " PRIMARY KEY(`service_name`,`service_type_id`), " + " CONSTRAINT `fk_service_name_service_type_id` " + " FOREIGN KEY(`service_type_id`) " + " REFERENCES `app_service_types`(`id`) " + "); " + "CREATE TABLE IF NOT EXISTS `app_service_handled_rpcs`( " + " `service_type_id` INTEGER NOT NULL, " + " `function_id` INTEGER, " + " PRIMARY KEY(`function_id`,`service_type_id`), " + " CONSTRAINT `fk_function_id_service_type_id` " + " FOREIGN KEY(`service_type_id`) " + " REFERENCES `app_service_types`(`id`) " + "); " "CREATE INDEX IF NOT EXISTS `app_type.fk_app_type_application1_idx` " " ON `app_type`(`application_id` COLLATE NOCASE); " "CREATE TABLE IF NOT EXISTS `consent_group`( " @@ -342,6 +386,11 @@ const std::string kCreateSchema = "); " "CREATE INDEX IF NOT EXISTS `endpoint.fk_endpoint_application1_idx` " " ON `endpoint`(`application_id` COLLATE NOCASE); " + /*endpoint properties*/ + "CREATE TABLE IF NOT EXISTS `endpoint_properties`( " + " `service` VARCHAR(100) NOT NULL, " + " `version` VARCHAR(100) NOT NULL " + ");" "CREATE TABLE IF NOT EXISTS `message`( " " `id` INTEGER PRIMARY KEY NOT NULL, " " `tts` TEXT, " @@ -405,6 +454,40 @@ const std::string kCreateSchema = " `entity_id` INTEGER NOT NULL, " " `on_off` TEXT NOT NULL " " ); " + /*vehicle data*/ + "CREATE TABLE IF NOT EXISTS `vehicle_data`( " + " `schema_version` VARCHAR(100) NOT NULL " + ");" + /* vehicle data item definition*/ + "CREATE TABLE IF NOT EXISTS `vehicle_data_item_definition`( " + " `name` VARCHAR(255) NOT NULL, " + " `type` VARCHAR(255) NOT NULL, " + " `key` VARCHAR(255) NOT NULL, " + " `mandatory` BOOL NOT NULL, " + " `array` BOOL, " + " `since` VARCHAR(45), " + " `until` VARCHAR(45), " + " `removed` BOOL, " + " `deprecated` BOOL, " + " `minvalue` INTEGER, " + " `maxvalue` INTEGER, " + " `minsize` INTEGER, " + " `maxsize` INTEGER, " + " `minlength` INTEGER, " + " `maxlength` INTEGER " + "); " + "CREATE TABLE IF NOT EXISTS `vehicle_data_item_parameters`( " + " `parent_name` VARCHAR(255) NOT NULL, " + " `parent_key` VARCHAR(255) NOT NULL, " + " `param_name` VARCHAR(255) NOT NULL, " + " `param_key` VARCHAR(255) NOT NULL, " + " CONSTRAINT `fk_vdi_id` " + " FOREIGN KEY(`parent_name`, `parent_key`) " + " REFERENCES `vehicle_data_item_definition`(`name`, `key`), " + " CONSTRAINT `fk_vdi_param_id` " + " FOREIGN KEY(`param_name`, `param_key`) " + " REFERENCES `vehicle_data_item_definition`(`name`, `key`) " + "); " "COMMIT;"; const std::string kInsertInitData = @@ -418,8 +501,10 @@ const std::string kInsertInitData = " VALUES (0, 0, 0, 0); " "INSERT OR IGNORE INTO `module_config` (`preloaded_pt`, `is_first_run`," " `exchange_after_x_ignition_cycles`, `exchange_after_x_kilometers`, " - " `exchange_after_x_days`, `timeout_after_x_seconds`) " + " `exchange_after_x_days`, `timeout_after_x_seconds`)" " VALUES(1, 0, 0, 0, 0, 0); " + "INSERT OR IGNORE INTO `vehicle_data` (" + " `schema_version`) VALUES('0'); " "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('EMERGENCY'); " "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NAVIGATION'); " "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('VOICECOMMUNICATION'); " @@ -430,6 +515,9 @@ const std::string kInsertInitData = "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('LIMITED'); " "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('BACKGROUND'); " "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('NONE'); " + "INSERT OR IGNORE INTO `hybrid_app_preference`(`value`) VALUES ('MOBILE'); " + "INSERT OR IGNORE INTO `hybrid_app_preference`(`value`) VALUES ('CLOUD'); " + "INSERT OR IGNORE INTO `hybrid_app_preference`(`value`) VALUES ('BOTH'); " "INSERT OR IGNORE INTO `version` (`number`) VALUES('0'); " "INSERT OR IGNORE INTO `_internal_data` (`db_version_hash`) VALUES(0); " ""; @@ -481,6 +569,7 @@ const std::string kDropSchema = "DROP TABLE IF EXISTS `message`; " "DROP INDEX IF EXISTS `endpoint.fk_endpoint_application1_idx`; " "DROP TABLE IF EXISTS `endpoint`; " + "DROP TABLE IF EXISTS `endpoint_properties`; " "DROP INDEX IF EXISTS `consent_group.fk_consent_group_device1_idx`; " "DROP INDEX IF EXISTS " "`consent_group.fk_consent_group_functional_group1_idx`; " @@ -491,6 +580,9 @@ const std::string kDropSchema = "DROP TABLE IF EXISTS `app_type`; " "DROP TABLE IF EXISTS `request_type`; " "DROP TABLE IF EXISTS `request_subtype`; " + "DROP TABLE IF EXISTS `app_service_types`; " + "DROP TABLE IF EXISTS `app_service_names`; " + "DROP TABLE IF EXISTS `app_service_handled_rpcs`; " "DROP INDEX IF EXISTS `nickname.fk_nickname_application1_idx`; " "DROP TABLE IF EXISTS `nickname`; " "DROP INDEX IF EXISTS `app_level.fk_app_level_language2_idx`; " @@ -532,6 +624,7 @@ const std::string kDropSchema = "`notifications_by_priority.fk_notifications_by_priority_priority1_idx`; " "DROP TABLE IF EXISTS `notifications_by_priority`; " "DROP TABLE IF EXISTS `hmi_level`; " + "DROP TABLE IF EXISTS `hybrid_app_preference`; " "DROP TABLE IF EXISTS `priority`; " "DROP TABLE IF EXISTS `functional_group`; " "DROP TABLE IF EXISTS `module_config`; " @@ -542,6 +635,9 @@ const std::string kDropSchema = "DROP TABLE IF EXISTS `device`; " "DROP TABLE IF EXISTS `_internal_data`; " "DROP TABLE IF EXISTS `_internal_external_consent_status`; " + "DROP TABLE IF EXISTS `vehicle_data`; " + "DROP TABLE IF EXISTS `vehicle_data_item_definition`; " + "DROP TABLE IF EXISTS `vehicle_data_item_parameters`; " "COMMIT; " "VACUUM;"; @@ -550,6 +646,7 @@ const std::string kDeleteData = "DELETE FROM `message`; " "DELETE FROM `module_type`; " "DELETE FROM `endpoint`; " + "DELETE FROM `endpoint_properties`; " "DELETE FROM `consent_group`; " "DELETE FROM `external_consent_status_group`; " "DELETE FROM `external_consent_entities`; " @@ -576,6 +673,9 @@ const std::string kDeleteData = "DELETE FROM `usage_and_error_count`; " "DELETE FROM `device`; " "DELETE FROM `request_type`; " + "DELETE FROM `vehicle_data`; " + "DELETE FROM `vehicle_data_item_definition`; " + "DELETE FROM `vehicle_data_item_parameters`; " "COMMIT; " "VACUUM;"; @@ -583,6 +683,82 @@ const std::string kCheckDBIntegrity = "PRAGMA integrity_check"; const std::string kCheckPgNumber = "PRAGMA page_count"; +const std::string kSelectEndpointProperties = + "SELECT `service`, `version` FROM `endpoint_properties`"; + +const std::string kSelectVehicleDataSchemaVersion = + "SELECT `schema_version` FROM `vehicle_data` "; + +const std::string kSelectVehicleDataItem = + "SELECT * FROM `vehicle_data_item_definition` " + "WHERE `key` = ? AND `name` = ?"; + +const std::string kSelectVehicleDataItemWithVersion = + "SELECT * FROM `vehicle_data_item_definition` " + "WHERE `name` IS ? AND `key` IS ? AND `since` IS ? AND `until` IS ?"; + +const std::string kSelectVehicleDataItemParams = + "SELECT * FROM `vehicle_data_item_parameters` " + "WHERE `parent_name` = ? AND `parent_key` = ?"; + +const std::string kSelectCompositeVehicleDataItemsKey = + "SELECT DISTINCT `parent_name`, `parent_key` FROM " + "`vehicle_data_item_parameters` " + "LEFT JOIN " + "(SELECT DISTINCT `param_name`, `param_key` FROM " + "`vehicle_data_item_parameters`) `vdi_params` ON " + "`vehicle_data_item_parameters`.`parent_name` = `vdi_params`.`param_name` " + "AND " + "`vehicle_data_item_parameters`.`parent_key` = `vdi_params`.`param_key` " + "WHERE `vdi_params`.`param_key` IS NULL"; + +const std::string kSelectPrimitiveVehicleDataItems = + "SELECT * FROM `vehicle_data_item_definition` " + "LEFT JOIN ( " + "SELECT `parent_name`, `parent_key` FROM `vehicle_data_item_parameters` " + "UNION " + "SELECT `param_name`, `param_key` FROM `vehicle_data_item_parameters`) " + "`vdi_params` ON " + "`vehicle_data_item_definition`.`name` = `vdi_params`.`parent_name` " + "AND " + "`vehicle_data_item_definition`.`key` = `vdi_params`.`parent_key` " + "WHERE `vdi_params`.`parent_key` IS NULL"; + +const std::string kInsertVehicleDataSchemaVersion = + "UPDATE `vehicle_data` SET `schema_version` = ?"; + +const std::string kInsertEndpointVersion = + "INSERT OR REPLACE INTO `endpoint_properties`(`service`, " + "`version`) " + "VALUES(?, ?)"; + +const std::string kInsertVehicleDataItem = + "INSERT INTO `vehicle_data_item_definition` (" + " `name`, " + " `type`, " + " `key`, " + " `mandatory`, " + " `array`, " + " `since`, " + " `until`, " + " `removed`, " + " `deprecated`, " + " `minvalue`, " + " `maxvalue`, " + " `minsize`, " + " `maxsize`, " + " `minlength`, " + " `maxlength`) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "; + +const std::string kInsertVehicleDataItemParams = + "INSERT INTO `vehicle_data_item_parameters` (" + " `parent_name`, " + " `parent_key`, " + " `param_name`, " + " `param_key`) " + "VALUES (?, ?, ?, ?) "; + const std::string kSelectRpc = "SELECT DISTINCT `rpc`.`parameter` FROM `rpc` " " JOIN `app_group` AS `g` ON (`g`.`functional_group_id` = " @@ -605,12 +781,10 @@ const std::string kSetNotFirstRun = const std::string kSelectEndpoint = "SELECT `url`, `application_id` FROM `endpoint` WHERE `service` = ? "; -const std::string kSelectLockScreenIcon = - "SELECT `url` FROM `endpoint` WHERE `service` = ? AND `application_id` = ?"; - const std::string kInsertFunctionalGroup = - "INSERT INTO `functional_group` (`id`, `name`, `user_consent_prompt`) " - " VALUES (?, ?, ?)"; + "INSERT INTO `functional_group` (`id`, `name`, `user_consent_prompt`, " + "`encryption_required`) " + " VALUES (?, ?, ?, ?)"; const std::string kInsertRpc = "INSERT INTO `rpc` (`name`, `hmi_level_value`, `functional_group_id`) " @@ -628,8 +802,12 @@ const std::string kInsertRpcWithParameter = const std::string kInsertApplication = "INSERT OR IGNORE INTO `application` (`id`, `priority_value`, " - "`is_revoked`, `memory_kb`," - " `heart_beat_timeout_ms`) VALUES (?,?,?,?,?)"; + "`is_revoked`, `memory_kb`, `heart_beat_timeout_ms`, `certificate`, " + "`hybrid_app_preference_value`, `endpoint`, `enabled`, `auth_token`, " + "`cloud_transport_type`, `icon_url`, `allow_unknown_rpc_passthrough`, " + "`encryption_required`) " + "VALUES " + "(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; const std::string kInsertAppGroup = "INSERT INTO `app_group` (`application_id`, `functional_group_id`)" @@ -645,18 +823,25 @@ const std::string kInsertRequestType = "INSERT OR IGNORE INTO `request_type` (`application_id`, `request_type`) " "VALUES (?, ?)"; -const std::string kInsertOmittedRequestType = - "INSERT INTO `request_type` (`application_id`) " - "VALUES (?)"; - const std::string kInsertRequestSubType = "INSERT INTO `request_subtype` (`application_id`, " "`request_subtype`) " "VALUES (?, ?)"; -const std::string kInsertOmittedRequestSubType = - "INSERT INTO `request_subtype` (`application_id`) " - "VALUES (?)"; +const std::string kInsertAppServiceTypes = + "INSERT INTO `app_service_types` (`id`, " + "`service_type`, `application_id`) " + "VALUES (?, ?, ?)"; + +const std::string kInsertAppServiceNames = + "INSERT INTO `app_service_names` (`service_type_id`, " + "`service_name`) " + "VALUES (?, ?)"; + +const std::string kInsertAppServiceHandledRpcs = + "INSERT INTO `app_service_handled_rpcs` (`service_type_id`, " + "`function_id`) " + "VALUES (?, ?)"; const std::string kUpdateVersion = "UPDATE `version` SET `number`= ?"; @@ -676,7 +861,7 @@ const std::string kUpdateModuleConfig = " `exchange_after_x_kilometers` = ?, `exchange_after_x_days` = ?, " " `timeout_after_x_seconds` = ?, `vehicle_make` = ?, " " `vehicle_model` = ?, `vehicle_year` = ?, `preloaded_date` = ?, " - " `certificate` = ? "; + " `certificate` = ?, lock_screen_dismissal_enabled = ?"; const std::string kInsertEndpoint = "INSERT INTO `endpoint` (`service`, `url`, `application_id`) " @@ -727,7 +912,8 @@ const std::string kSelectModuleConfig = "SELECT `preloaded_pt`, `exchange_after_x_ignition_cycles`, " " `exchange_after_x_kilometers`, `exchange_after_x_days`, " " `timeout_after_x_seconds`, `vehicle_make`," - " `vehicle_model`, `vehicle_year`, `preloaded_date`, `certificate` " + " `vehicle_model`, `vehicle_year`, `preloaded_date`, `certificate`, " + " `lock_screen_dismissal_enabled` " " FROM `module_config`"; const std::string kSelectEndpoints = @@ -744,7 +930,7 @@ const std::string kSelectAppLevels = "SELECT `application_id` FROM `app_level`"; const std::string kSelectDeviceData = "SELECT * FROM `device`"; const std::string kSelectFunctionalGroups = - "SELECT `id`,`name`, `user_consent_prompt` " + "SELECT `id`,`name`, `user_consent_prompt`, `encryption_required` " "FROM `functional_group`"; const std::string kSelectAllRpcs = @@ -760,7 +946,11 @@ const std::string kSelectUserMsgsVersion = const std::string kSelectAppPolicies = "SELECT `id`, `priority_value`, `memory_kb`, " - " `heart_beat_timeout_ms` FROM `application`"; + " `heart_beat_timeout_ms`, `certificate`, `hybrid_app_preference_value`, " + " `endpoint`, `enabled`, `auth_token`, `cloud_transport_type`, `icon_url`, " + " `allow_unknown_rpc_passthrough`, `encryption_required` " + "FROM " + " `application`"; const std::string kCollectFriendlyMsg = "SELECT * FROM `message`"; @@ -787,6 +977,21 @@ const std::string kSelectRequestSubTypes = "`application_id` " "= ?"; +const std::string kSelectAppServiceTypes = + "SELECT `id`, `service_type` FROM `app_service_types` WHERE " + "`application_id` " + "= ?"; + +const std::string kSelectAppServiceNames = + "SELECT DISTINCT `service_name` FROM `app_service_names` WHERE " + "`service_type_id` " + "= ?"; + +const std::string kSelectAppServiceHandledRpcs = + "SELECT DISTINCT `function_id` FROM `app_service_handled_rpcs` WHERE " + "`service_type_id` " + "= ?"; + const std::string kSelectSecondsBetweenRetries = "SELECT `value` FROM `seconds_between_retry` ORDER BY `index`"; @@ -834,6 +1039,19 @@ const std::string kDeleteRequestType = "DELETE FROM `request_type`"; const std::string kDeleteRequestSubType = "DELETE FROM `request_subtype`"; +const std::string kDeleteAppServiceTypes = "DELETE FROM `app_service_types`"; + +const std::string kDeleteAppServiceNames = "DELETE FROM `app_service_names`"; + +const std::string kDeleteAppServiceHandledRpcs = + "DELETE FROM `app_service_handled_rpcs`"; + +const std::string kDeleteVehicleDataItems = + "DELETE FROM `vehicle_data_item_definition`"; + +const std::string kDeleteVehicleDataItemParams = + "DELETE FROM `vehicle_data_item_parameters`"; + const std::string kSelectApplicationRevoked = "SELECT `is_revoked` FROM `application` WHERE `id` = ?"; @@ -857,15 +1075,22 @@ const std::string kDeleteAppGroupByApplicationId = const std::string kInsertApplicationFull = "INSERT OR IGNORE INTO `application` (`id`, `keep_context`, `steal_focus`, " - " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, " - "`is_predata`, " - " `memory_kb`, `heart_beat_timeout_ms`) " - " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, " + " `is_predata`, `memory_kb`, `heart_beat_timeout_ms`, " + " `certificate`, `hybrid_app_preference_value`, `endpoint`, `enabled`, " + " `auth_token`, `cloud_transport_type`, `icon_url`, " + "`allow_unknown_rpc_passthrough`, `encryption_required`) " + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; const std::string kSelectApplicationFull = "SELECT `keep_context`, `steal_focus`, `default_hmi`, `priority_value`, " " `is_revoked`, `is_default`, `is_predata`, `memory_kb`," - " `heart_beat_timeout_ms` FROM `application` WHERE `id` = ?"; + " `heart_beat_timeout_ms`, `certificate`, `hybrid_app_preference_value`, " + " `endpoint`, `enabled`, `auth_token`, `cloud_transport_type`, " + "`icon_url`, " + " `allow_unknown_rpc_passthrough`, `encryption_required` " + "FROM `application` " + "WHERE `id` = ?"; const std::string kSelectDBVersion = "SELECT `db_version_hash` from `_internal_data`"; |