]> git.ipfire.org Git - pakfire.git/commitdiff
db: Create its own type
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Jun 2025 10:45:27 +0000 (10:45 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Jun 2025 10:45:27 +0000 (10:45 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/db.c
src/pakfire/db.h
src/pakfire/pakfire.c
src/pakfire/transaction.c
tests/libpakfire/db.c

index 822823b0cb6f9a468b983b6600fd910aa0b29289..74d4984751709e56184c238103869e3135d87146 100644 (file)
@@ -66,7 +66,7 @@ static void logging_callback(void* data, int r, const char* msg) {
                sqlite3_errstr(r), msg);
 }
 
-static int pakfire_db_check_table(struct pakfire_db* db, const char* table) {
+static int pakfire_db_check_table(pakfire_db* db, const char* table) {
        sqlite3_stmt* stmt = NULL;
        int r;
 
@@ -113,7 +113,7 @@ ERROR:
        return r;
 }
 
-static sqlite3_value* pakfire_db_get(struct pakfire_db* db, const char* key) {
+static sqlite3_value* pakfire_db_get(pakfire_db* db, const char* key) {
        sqlite3_stmt* stmt = NULL;
        sqlite3_value* val = NULL;
        int r;
@@ -168,7 +168,7 @@ ERROR:
        return val;
 }
 
-static char* pakfire_db_get_string(struct pakfire_db* db, const char* key) {
+static char* pakfire_db_get_string(pakfire_db* db, const char* key) {
        char* s = NULL;
 
        // Fetch the value from the database
@@ -191,7 +191,7 @@ ERROR:
        return s;
 }
 
-static int pakfire_db_set_string(struct pakfire_db* db, const char* key, const char* val) {
+static int pakfire_db_set_string(pakfire_db* db, const char* key, const char* val) {
        sqlite3_stmt* stmt = NULL;
        int r;
 
@@ -237,7 +237,7 @@ ERROR:
        return r;
 }
 
-static int pakfire_db_set_int(struct pakfire_db* db, const char* key, int val) {
+static int pakfire_db_set_int(pakfire_db* db, const char* key, int val) {
        sqlite3_stmt* stmt = NULL;
        int r;
 
@@ -283,7 +283,7 @@ ERROR:
        return r;
 }
 
-static time_t pakfire_read_modification_time(struct pakfire_db* db) {
+static time_t pakfire_read_modification_time(pakfire_db* db) {
        time_t t = 0;
 
        // Fetch the value from the database
@@ -298,7 +298,7 @@ static time_t pakfire_read_modification_time(struct pakfire_db* db) {
        return t;
 }
 
-static int pakfire_update_modification_time(struct pakfire_db* db) {
+static int pakfire_update_modification_time(pakfire_db* db) {
        // Get the current time in UTC
        time_t t = time(NULL);
 
@@ -313,7 +313,7 @@ static int pakfire_update_modification_time(struct pakfire_db* db) {
        return r;
 }
 
-static int pakfire_db_execute(struct pakfire_db* db, const char* stmt) {
+static int pakfire_db_execute(pakfire_db* db, const char* stmt) {
        int r;
 
        DEBUG(db->ctx, "Executing database query: %s\n", stmt);
@@ -330,11 +330,11 @@ static int pakfire_db_execute(struct pakfire_db* db, const char* stmt) {
        return r;
 }
 
-static int pakfire_db_begin_transaction(struct pakfire_db* db) {
+static int pakfire_db_begin_transaction(pakfire_db* db) {
        return pakfire_db_execute(db, "BEGIN TRANSACTION");
 }
 
-static int pakfire_db_commit(struct pakfire_db* db) {
+static int pakfire_db_commit(pakfire_db* db) {
        /*
                If the database was opened in read-write mode, we will store the
                timestamp of the latest modification to compare whether the database
@@ -349,7 +349,7 @@ static int pakfire_db_commit(struct pakfire_db* db) {
        return pakfire_db_execute(db, "COMMIT");
 }
 
-static int pakfire_db_rollback(struct pakfire_db* db) {
+static int pakfire_db_rollback(pakfire_db* db) {
        return pakfire_db_execute(db, "ROLLBACK");
 }
 
@@ -357,12 +357,12 @@ static int pakfire_db_rollback(struct pakfire_db* db) {
        This function performs any fast optimization and tries to truncate the WAL log file
        to keep the database as compact as possible on disk.
 */
-static void pakfire_db_optimize(struct pakfire_db* db) {
+static void pakfire_db_optimize(pakfire_db* db) {
        pakfire_db_execute(db, "PRAGMA optimize");
        pakfire_db_execute(db, "PRAGMA wal_checkpoint = TRUNCATE");
 }
 
-static void pakfire_db_free(struct pakfire_db* db) {
+static void pakfire_db_free(pakfire_db* db) {
        if (db->handle) {
                // Optimize the database before it is being closed
                pakfire_db_optimize(db);
@@ -382,7 +382,7 @@ static void pakfire_db_free(struct pakfire_db* db) {
        free(db);
 }
 
-static int pakfire_db_get_schema(struct pakfire_db* db) {
+static int pakfire_db_get_schema(pakfire_db* db) {
        // Fetch the schema version
        sqlite3_value* value = pakfire_db_get(db, "schema");
        if (!value)
@@ -396,7 +396,7 @@ static int pakfire_db_get_schema(struct pakfire_db* db) {
        return schema;
 }
 
-static int pakfire_db_create_schema(struct pakfire_db* db) {
+static int pakfire_db_create_schema(pakfire_db* db) {
        int r;
 
        // Create settings table
@@ -532,7 +532,7 @@ static int pakfire_db_create_schema(struct pakfire_db* db) {
        return 0;
 }
 
-static int pakfire_db_migrate_to_schema_8(struct pakfire_db* db) {
+static int pakfire_db_migrate_to_schema_8(pakfire_db* db) {
        // packages: Drop build_id column
 
        // Add foreign keys
@@ -542,7 +542,7 @@ static int pakfire_db_migrate_to_schema_8(struct pakfire_db* db) {
        return 0;
 }
 
-static int pakfire_db_migrate_schema(struct pakfire_db* db) {
+static int pakfire_db_migrate_schema(pakfire_db* db) {
        int r;
 
        while (db->schema < CURRENT_SCHEMA) {
@@ -593,7 +593,7 @@ ROLLBACK:
        return 1;
 }
 
-static int pakfire_db_check_arch(struct pakfire_db* db) {
+static int pakfire_db_check_arch(pakfire_db* db) {
        const char* arch = NULL;
        char* db_arch = NULL;
        int r = 0;
@@ -627,7 +627,7 @@ ERROR:
        return r;
 }
 
-static int pakfire_db_setup(struct pakfire_db* db) {
+static int pakfire_db_setup(pakfire_db* db) {
        int r;
 
        // Setup logging
@@ -685,8 +685,8 @@ static int pakfire_db_setup(struct pakfire_db* db) {
        return 0;
 }
 
-int pakfire_db_open(struct pakfire_db** db, struct pakfire* pakfire, int flags) {
-       struct pakfire_db* self = NULL;
+int pakfire_db_open(pakfire_db** db, struct pakfire* pakfire, int flags) {
+       pakfire_db* self = NULL;
        int sqlite3_flags = 0;
        int r;
 
@@ -753,13 +753,13 @@ ERROR:
        return r;
 }
 
-struct pakfire_db* pakfire_db_ref(struct pakfire_db* db) {
+pakfire_db* pakfire_db_ref(pakfire_db* db) {
        db->nrefs++;
 
        return db;
 }
 
-struct pakfire_db* pakfire_db_unref(struct pakfire_db* db) {
+pakfire_db* pakfire_db_unref(pakfire_db* db) {
        if (--db->nrefs > 0)
                return db;
 
@@ -768,7 +768,7 @@ struct pakfire_db* pakfire_db_unref(struct pakfire_db* db) {
        return NULL;
 }
 
-static unsigned long pakfire_db_integrity_check(struct pakfire_db* db) {
+static unsigned long pakfire_db_integrity_check(pakfire_db* db) {
        sqlite3_stmt* stmt = NULL;
        int r;
 
@@ -815,7 +815,7 @@ static unsigned long pakfire_db_integrity_check(struct pakfire_db* db) {
        return errors;
 }
 
-static unsigned long pakfire_db_foreign_key_check(struct pakfire_db* db) {
+static unsigned long pakfire_db_foreign_key_check(pakfire_db* db) {
        sqlite3_stmt* stmt = NULL;
        int r;
 
@@ -865,7 +865,7 @@ static unsigned long pakfire_db_foreign_key_check(struct pakfire_db* db) {
 /*
        This function performs an integrity check of the database
 */
-int pakfire_db_check(struct pakfire_db* db) {
+int pakfire_db_check(pakfire_db* db) {
        int r;
 
        // Perform integrity check
@@ -882,7 +882,7 @@ int pakfire_db_check(struct pakfire_db* db) {
 }
 
 // Returns the number of packages installed
-ssize_t pakfire_db_packages(struct pakfire_db* db) {
+ssize_t pakfire_db_packages(pakfire_db* db) {
        sqlite3_stmt* stmt = NULL;
        ssize_t packages = -1;
 
@@ -917,7 +917,7 @@ static void pakfire_db_add_userinstalled(struct pakfire* pakfire, const char* na
        queue_push2(&pool->pooljobs, SOLVER_USERINSTALLED|SOLVER_SOLVABLE_NAME, id);
 }
 
-static int pakfire_db_add_dependencies(struct pakfire_db* db, unsigned long id, struct pakfire_package* pkg) {
+static int pakfire_db_add_dependencies(pakfire_db* db, unsigned long id, struct pakfire_package* pkg) {
        sqlite3_stmt* stmt = NULL;
        char** list = NULL;
        int r = 1;
@@ -992,7 +992,7 @@ END:
        return r;
 }
 
-static int pakfire_db_bind_checksum(struct pakfire_db* db, sqlite3_stmt* stmt,
+static int pakfire_db_bind_checksum(pakfire_db* db, sqlite3_stmt* stmt,
                const int field, struct pakfire_file* file, const enum pakfire_hash_type type) {
        const unsigned char* checksum = NULL;
        size_t checksum_length = 0;
@@ -1011,7 +1011,7 @@ static int pakfire_db_bind_checksum(struct pakfire_db* db, sqlite3_stmt* stmt,
        return sqlite3_bind_blob(stmt, field, checksum, checksum_length, NULL);
 }
 
-static int pakfire_db_add_files(struct pakfire_db* db, unsigned long id, pakfire_archive* archive) {
+static int pakfire_db_add_files(pakfire_db* db, unsigned long id, pakfire_archive* archive) {
        struct pakfire_filelist* filelist = NULL;
        sqlite3_stmt* stmt = NULL;
        int r;
@@ -1273,7 +1273,7 @@ END:
        return r;
 }
 
-static int pakfire_db_add_scriptlets(struct pakfire_db* db, unsigned long id, pakfire_archive* archive) {
+static int pakfire_db_add_scriptlets(pakfire_db* db, unsigned long id, pakfire_archive* archive) {
        sqlite3_stmt* stmt = NULL;
        size_t size;
        int r = 1;
@@ -1349,7 +1349,7 @@ END:
        return r;
 }
 
-int pakfire_db_add_package(struct pakfire_db* db,
+int pakfire_db_add_package(pakfire_db* db,
                struct pakfire_package* pkg, pakfire_archive* archive, int userinstalled) {
        enum pakfire_hash_type hash_type = PAKFIRE_HASH_UNDEFINED;
        const unsigned char* checksum = NULL;
@@ -1704,7 +1704,7 @@ ERROR:
        return r;
 }
 
-int pakfire_db_remove_package(struct pakfire_db* db, struct pakfire_package* pkg) {
+int pakfire_db_remove_package(pakfire_db* db, struct pakfire_package* pkg) {
        sqlite3_stmt* stmt = NULL;
        int r = 1;
 
@@ -1764,7 +1764,7 @@ ERROR:
        return r;
 }
 
-struct pakfire_scriptlet* pakfire_db_get_scriptlet(struct pakfire_db* db,
+struct pakfire_scriptlet* pakfire_db_get_scriptlet(pakfire_db* db,
                struct pakfire_package* pkg, const char* type) {
        struct pakfire_scriptlet* scriptlet = NULL;
        sqlite3_stmt* stmt = NULL;
@@ -1826,7 +1826,7 @@ ERROR:
        return scriptlet;
 }
 
-static int pakfire_db_load_package(struct pakfire_db* db, struct pakfire_repo* repo, sqlite3_stmt* stmt) {
+static int pakfire_db_load_package(pakfire_db* db, struct pakfire_repo* repo, sqlite3_stmt* stmt) {
        struct pakfire_package* pkg = NULL;
        int r = 1;
 
@@ -2059,7 +2059,7 @@ ERROR:
        return r;
 }
 
-int pakfire_db_load(struct pakfire_db* db, struct pakfire_repo* repo) {
+int pakfire_db_load(pakfire_db* db, struct pakfire_repo* repo) {
        sqlite3_stmt* stmt = NULL;
        int r = 1;
 
@@ -2199,7 +2199,7 @@ ERROR:
        return r;
 }
 
-static int pakfire_db_load_file_checksum(struct pakfire_db* db, struct pakfire_file* file,
+static int pakfire_db_load_file_checksum(pakfire_db* db, struct pakfire_file* file,
                sqlite3_stmt* stmt, const enum pakfire_hash_type type, const int field) {
        // Fetch checksum
        const unsigned char* checksum = sqlite3_column_blob(stmt, field);
@@ -2215,7 +2215,7 @@ static int pakfire_db_load_file_checksum(struct pakfire_db* db, struct pakfire_f
        return pakfire_file_set_checksum(file, type, checksum, checksum_length);
 }
 
-static int pakfire_db_load_file(struct pakfire_db* db, struct pakfire_filelist* filelist,
+static int pakfire_db_load_file(pakfire_db* db, struct pakfire_filelist* filelist,
                sqlite3_stmt* stmt) {
        struct pakfire_file* file = NULL;
        int r;
@@ -2338,7 +2338,7 @@ ERROR:
        return r;
 }
 
-int pakfire_db_filelist(struct pakfire_db* db, struct pakfire_filelist** filelist) {
+int pakfire_db_filelist(pakfire_db* db, struct pakfire_filelist** filelist) {
        struct pakfire_filelist* list = NULL;
        sqlite3_stmt* stmt = NULL;
        int r;
@@ -2420,7 +2420,7 @@ ERROR:
        return r;
 }
 
-int pakfire_db_package_filelist(struct pakfire_db* db, struct pakfire_filelist** filelist,
+int pakfire_db_package_filelist(pakfire_db* db, struct pakfire_filelist** filelist,
                struct pakfire_package* pkg) {
        struct pakfire_filelist* fl = NULL;
        sqlite3_stmt* stmt = NULL;
index cc85fd2b3d7a850499e569545dd2fea2f1fd4b32..2ab6c61a59474dff1081d1a2c0248261c082dc80 100644 (file)
 #include <pakfire/repo.h>
 #include <pakfire/scriptlet.h>
 
-struct pakfire_db;
+typedef struct pakfire_db pakfire_db;
 
 enum {
        PAKFIRE_DB_READONLY  = 0,
        PAKFIRE_DB_READWRITE = (1 << 0),
 };
 
-int pakfire_db_open(struct pakfire_db** db, struct pakfire* pakfire, int flags);
+int pakfire_db_open(pakfire_db** db, struct pakfire* pakfire, int flags);
 
-struct pakfire_db* pakfire_db_ref(struct pakfire_db* db);
-struct pakfire_db* pakfire_db_unref(struct pakfire_db* db);
+pakfire_db* pakfire_db_ref(pakfire_db* db);
+pakfire_db* pakfire_db_unref(pakfire_db* db);
 
-int pakfire_db_check(struct pakfire_db* db);
+int pakfire_db_check(pakfire_db* db);
 
-ssize_t pakfire_db_packages(struct pakfire_db* db);
+ssize_t pakfire_db_packages(pakfire_db* db);
 
-int pakfire_db_add_package(struct pakfire_db* db, struct pakfire_package* pkg,
+int pakfire_db_add_package(pakfire_db* db, struct pakfire_package* pkg,
        pakfire_archive* archive, int userinstalled);
-int pakfire_db_remove_package(struct pakfire_db* db, struct pakfire_package* pkg);
+int pakfire_db_remove_package(pakfire_db* db, struct pakfire_package* pkg);
 
-int pakfire_db_load(struct pakfire_db* db, struct pakfire_repo* repo);
+int pakfire_db_load(pakfire_db* db, struct pakfire_repo* repo);
 
 struct pakfire_scriptlet* pakfire_db_get_scriptlet(
-       struct pakfire_db* db, struct pakfire_package* pkg, const char* type);
+       pakfire_db* db, struct pakfire_package* pkg, const char* type);
 
-int pakfire_db_filelist(struct pakfire_db* db, struct pakfire_filelist** filelist);
-int pakfire_db_package_filelist(struct pakfire_db* db, struct pakfire_filelist** filelist,
+int pakfire_db_filelist(pakfire_db* db, struct pakfire_filelist** filelist);
+int pakfire_db_package_filelist(pakfire_db* db, struct pakfire_filelist** filelist,
        struct pakfire_package* pkg);
 
 #endif /* PAKFIRE_DB_H */
index ea5d3260a19f67de7b75280d9b7bc5be1ca7066e..500d690509e407993244586f82be31657b3bcba0 100644 (file)
@@ -393,7 +393,7 @@ static int pakfire_setup_pool(struct pakfire* pakfire) {
 
 static int pakfire_load_installed_packages(struct pakfire* self) {
        struct pakfire_repo* repo = NULL;
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        int r;
 
        // Fetch the system repository
@@ -1861,7 +1861,7 @@ static int pakfire_verify(struct pakfire* pakfire, int *changed) {
 }
 
 static int pakfire_check_files(struct pakfire* pakfire,
-               struct pakfire_db* db, struct pakfire_filelist* errors) {
+               pakfire_db* db, struct pakfire_filelist* errors) {
        struct pakfire_filelist* filelist = NULL;
        int r;
 
@@ -1881,7 +1881,7 @@ ERROR:
 }
 
 int pakfire_check(struct pakfire* pakfire, struct pakfire_filelist* errors) {
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        int r;
 
        // Open database in read-only mode and try to load all installed packages
index 479c97713a982dca88992508ef378e1cff0590fb..2f949e63331f89e1d4eec93fee006c6321c00505 100644 (file)
@@ -1300,7 +1300,7 @@ static int pakfire_transaction_verify(struct pakfire_transaction* transaction,
 }
 
 static int pakfire_transaction_run_script(struct pakfire_transaction* transaction,
-               struct pakfire_db* db, const char* type, struct pakfire_package* pkg, pakfire_archive* archive) {
+               pakfire_db* db, const char* type, struct pakfire_package* pkg, pakfire_archive* archive) {
        struct pakfire_scriptlet* scriptlet = NULL;
 
        // Fetch scriptlet from archive if possible
@@ -1361,7 +1361,7 @@ ERROR:
 }
 
 static int pakfire_transaction_erase(struct pakfire_transaction* transaction,
-               struct pakfire_db* db, struct pakfire_package* pkg) {
+               pakfire_db* db, struct pakfire_package* pkg) {
        struct pakfire_filelist* filelist = NULL;
        int r;
 
@@ -1486,7 +1486,7 @@ static int pakfire_transaction_apply_systemd_tmpfiles(
 }
 
 static int pakfire_transaction_run_step(struct pakfire_transaction* transaction,
-               struct pakfire_db* db, const enum pakfire_actions action, struct pakfire_package* pkg, pakfire_archive* archive) {
+               pakfire_db* db, const enum pakfire_actions action, struct pakfire_package* pkg, pakfire_archive* archive) {
        if (!pkg) {
                errno = EINVAL;
                return 1;
@@ -1683,7 +1683,7 @@ static int pakfire_transaction_run_step(struct pakfire_transaction* transaction,
 }
 
 static int pakfire_transaction_run_steps(struct pakfire_transaction* transaction,
-               struct pakfire_db* db, enum pakfire_actions action) {
+               pakfire_db* db, enum pakfire_actions action) {
        int r = 0;
 
        // Update status
@@ -1846,7 +1846,7 @@ static int pakfire_usrmove(pakfire_ctx* ctx, struct pakfire* pakfire) {
 
 static int pakfire_transaction_perform(struct pakfire_transaction* transaction) {
        struct pakfire_repo* repo = NULL;
-       struct pakfire_db* db;
+       pakfire_db* db;
        size_t total_size = 0;
        int r;
 
index a056f7c9ae3aa50b095bb6b8d56b09cdd1cd51ef..8e622a3af6799a9591771453d89cbb4cc8bed9ab 100644 (file)
@@ -27,7 +27,7 @@
 #include "../testsuite.h"
 
 static int test_open_ro(const struct test* t) {
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        int r = EXIT_FAILURE;
 
        ASSERT_SUCCESS(pakfire_db_open(&db, t->pakfire, PAKFIRE_DB_READONLY));
@@ -43,7 +43,7 @@ FAIL:
 }
 
 static int test_open_rw(const struct test* t) {
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        int r = EXIT_FAILURE;
 
        ASSERT_SUCCESS(pakfire_db_open(&db, t->pakfire, PAKFIRE_DB_READWRITE));
@@ -59,7 +59,7 @@ FAIL:
 }
 
 static int test_check(const struct test* t) {
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        int r = EXIT_FAILURE;
 
        ASSERT_SUCCESS(pakfire_db_open(&db, t->pakfire, PAKFIRE_DB_READWRITE));
@@ -79,7 +79,7 @@ FAIL:
 
 static int test_add_package(const struct test* t) {
        struct pakfire_package* package = NULL;
-       struct pakfire_db* db = NULL;
+       pakfire_db* db = NULL;
        struct pakfire_repo* repo = NULL;
        pakfire_archive* archive = NULL;
        int r = EXIT_FAILURE;