Parse value from database for lib rpk 68/304368/1
authorIlho Kim <ilho159.kim@samsung.com>
Tue, 16 Jan 2024 11:26:28 +0000 (20:26 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Tue, 16 Jan 2024 11:27:08 +0000 (20:27 +0900)
Change-Id: I97bade44316b67e65cc6c1cfeddcf352db5ecf89
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/server/pkginfo_internal.cc

index 334d354..00816e2 100644 (file)
@@ -270,10 +270,10 @@ int GetResAllowedPackages(const tizen_base::Database& db, const char* pkgid,
 }
 
 int GetResInfo(const tizen_base::Database& db, const char* pkgid,
-    char** res_type, char** res_version,
+    char** res_type, char** res_version, char** lib,
     GList** res_allowed_packages) {
   auto q = tizen_base::Database::Sql(
-      "SELECT DISTINCT res_type, res_version "
+      "SELECT DISTINCT res_type, res_version, lib "
       "FROM package_res_info WHERE package=?")
       .Bind(pkgid);
   auto r = db.Exec(q);
@@ -291,6 +291,7 @@ int GetResInfo(const tizen_base::Database& db, const char* pkgid,
 
   *res_type = GetCString(0, *rec);
   *res_version = GetCString(1, *rec);
+  *lib = GetCString(2, *rec);
 
   return PMINFO_R_OK;
 }
@@ -472,6 +473,8 @@ int DoGetPkgInfo(const tizen_base::Database& db, uid_t uid,
     ", (SELECT res_type FROM package_res_info WHERE pi.package=package)";
   static const char query_res_version[] =
     ", (SELECT res_version FROM package_res_info WHERE pi.package=package)";
+  static const char query_res_lib[] =
+    ", (SELECT lib FROM package_res_info WHERE pi.package=package)";
   static const char query_from_clause[] = " FROM package_info as pi";
   int ret = PMINFO_R_ERROR;
   char* tmp_record = nullptr;
@@ -508,6 +511,7 @@ int DoGetPkgInfo(const tizen_base::Database& db, uid_t uid,
   if (flag & PMINFO_PKGINFO_GET_RES_INFO) {
     query += query_res_type;
     query += query_res_version;
+    query += query_res_lib;
   }
 
   query += query_from_clause;
@@ -638,7 +642,7 @@ int DoGetPkgInfo(const tizen_base::Database& db, uid_t uid,
 
     if (flag & PMINFO_PKGINFO_GET_RES_INFO) {
       if (GetResInfo(db, info->package, &info->res_type,
-          &info->res_version, &info->res_allowed_packages) < 0) {
+          &info->res_version, &info->lib, &info->res_allowed_packages) < 0) {
         return PMINFO_R_ERROR;
       }
     }