[Yum-devel] [PATCH 1/5] Add function to delete a package from the db

James Bowes jbowes at redhat.com
Mon Jun 11 12:16:31 UTC 2007


---
 db.c |   39 +++++++++++++++++++++++++++++++++++++++
 db.h |    5 +++++
 2 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/db.c b/db.c
index 019faac..6983d49 100644
--- a/db.c
+++ b/db.c
@@ -525,6 +525,45 @@ yum_db_package_write (sqlite3 *db, sqlite3_stmt *handle, Package *p)
 }
 
 sqlite3_stmt *
+yum_db_package_erase_prepare (sqlite3 *db, GError **err)
+{
+    int rc;
+    sqlite3_stmt *handle = NULL;
+    const char *query;
+
+    query = "DELETE FROM packages WHERE pkgId = ?";
+
+    rc = sqlite3_prepare (db, query, -1, &handle, NULL);
+    if (rc != SQLITE_OK) {
+        g_set_error (err, YUM_DB_ERROR, YUM_DB_ERROR,
+                     "Can not prepare packages removal: %s",
+                     sqlite3_errmsg (db));
+        sqlite3_finalize (handle);
+        handle = NULL;
+    }
+
+    return handle;
+}
+
+void
+yum_db_package_erase (sqlite3 *db,
+                      sqlite3_stmt *handle,
+                      const char *pkgId)
+{
+    int rc;
+
+    sqlite3_bind_text (handle, 1,  pkgId, -1, SQLITE_STATIC);
+
+    rc = sqlite3_step (handle);
+    sqlite3_reset (handle);
+
+    if (rc != SQLITE_DONE) {
+        g_critical ("Error removing package from SQL: %s",
+                    sqlite3_errmsg (db));
+    }
+}
+
+sqlite3_stmt *
 yum_db_dependency_prepare (sqlite3 *db,
                            const char *table,
                            GError **err)
diff --git a/db.h b/db.h
index a91d329..789abb1 100644
--- a/db.h
+++ b/db.h
@@ -49,6 +49,11 @@ void          yum_db_package_write          (sqlite3 *db,
                                              sqlite3_stmt *handle,
                                              Package *p);
 
+sqlite3_stmt *yum_db_package_erase_prepare (sqlite3 *db, GError **err);
+void          yum_db_package_erase         (sqlite3 *db,
+                                            sqlite3_stmt *handle,
+                                            const char *pkgId);
+
 sqlite3_stmt *yum_db_dependency_prepare     (sqlite3 *db,
                                              const char *table,
                                              GError **err);
-- 
1.5.2.1.938.gac3b4




More information about the Yum-devel mailing list