- sqlite3_str_appendf(sql, " where package = %Q", package);
- if (*version) {
- sqlite3_str_appendf(sql, " and version = %Q", version);
+ sqlite3_str_appendall(sql, " where true");
+
+ if (pkgstr) {
+ int release;
+ char version[32];
+ char package[32];
+
+ zpm_parse_package(pkgstr, package, version, &release);
+ if (*package != 0) {
+ sqlite3_str_appendf(sql, " and package = %Q",
+ package);
+ }
+ if (*version != 0) {
+ sqlite3_str_appendf(sql, " and version = %Q",
+ version);
+ }
+ if (release != 0) {
+ sqlite3_str_appendf(sql, " and release = %d",
+ release);
+ }