[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