+int __get_metadata_filter_condition(gpointer data, char **condition,
+ GList **params)
+{
+ pkgmgrinfo_metadata_node_x *node = (pkgmgrinfo_metadata_node_x *)data;
+ char buf[MAX_QUERY_LEN];
+ size_t len = 0;
+
+ snprintf(buf, sizeof(buf), "(package_app_app_metadata.md_key=?");
+ len += strlen("(package_app_app_metadata.md_key=?");
+ if (node->value) {
+ strncat(buf, " AND package_app_app_metadata.md_value=?",
+ sizeof(buf) - len - 1);
+ len += strlen(" AND package_app_app_metadata.md_value=?");
+ }
+ strncat(buf, ")", sizeof(buf) - len - 1);
+ len += strlen(")");
+
+ *condition = strdup(buf);
+ *params = g_list_append(*params, strdup(node->key));
+ if (node->value)
+ *params = g_list_append(*params, strdup(node->value));
+
+ return E_PMINFO_APPINFO_JOIN_METADATA;
+}
+