]> the.earth.li Git - onak.git/blobdiff - keydb/keydb_pg.c
Fix deletion of keys with PostgreSQL backend
[onak.git] / keydb / keydb_pg.c
index 7d59640b0fd2a82189f0411fe2f0d5018c7fdf97..1b58c1a5f27c71f1788c1e7783e70aa60df7b77a 100644 (file)
@@ -290,19 +290,19 @@ static int pg_delete_key(struct onak_dbctx *dbctx,
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_keys WHERE keyid = '%" PRIX64 "'",
+                       "DELETE FROM onak_sigs WHERE signee = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_sigs WHERE signee = '%" PRIX64 "'",
+                       "DELETE FROM onak_uids WHERE keyid = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_uids WHERE keyid = '%" PRIX64 "'",
+                       "DELETE FROM onak_keys WHERE keyid = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
        } else if (PQresultStatus(result) != PGRES_TUPLES_OK) {
@@ -644,6 +644,7 @@ static int pg_iterate_keys(struct onak_dbctx *dbctx,
  * Include the basic keydb routines.
  */
 #define NEED_UPDATEKEYS 1
+#define NEED_GET 1
 #define NEED_GET_FP 1
 #include "keydb.c"
 
@@ -702,8 +703,9 @@ struct onak_dbctx *keydb_pg_init(struct onak_db_config *dbcfg, bool readonly)
        dbctx->cleanupdb                = pg_cleanupdb;
        dbctx->starttrans               = pg_starttrans;
        dbctx->endtrans                 = pg_endtrans;
-       dbctx->fetch_key_id             = pg_fetch_key_id;
+       dbctx->fetch_key                = generic_fetch_key;
        dbctx->fetch_key_fp             = generic_fetch_key_fp;
+       dbctx->fetch_key_id             = pg_fetch_key_id;
        dbctx->fetch_key_text           = pg_fetch_key_text;
        dbctx->store_key                = pg_store_key;
        dbctx->update_keys              = generic_update_keys;