From c1514190edde500b2ab2b2d168b69f0b5b096803 Mon Sep 17 00:00:00 2001
From: Libor Peltan <libor.peltan@nic.cz>
Date: Tue, 2 Feb 2021 19:47:07 +0100
Subject: [PATCH] catalog refactor/transfer: backward compatibility with prev
 db format

---
 src/knot/zone/catalog.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/knot/zone/catalog.c b/src/knot/zone/catalog.c
index ca81361ae0..fbee7b083d 100644
--- a/src/knot/zone/catalog.c
+++ b/src/knot/zone/catalog.c
@@ -251,7 +251,15 @@ int catalog_del(catalog_t *cat, const knot_dname_t *member, uint32_t ord)
 		return KNOT_EINVAL;
 	}
 	MDB_val key = knot_lmdb_make_key("BNI", 0, member, ord);
-	knot_lmdb_del_prefix(cat->rw_txn, &key);
+
+	// backward compatibility with Knot 3.0
+	MDB_val key30 = { key.mv_size - sizeof(ord), key.mv_data };
+	if (ord == 0 && knot_lmdb_find(cat->rw_txn, &key30, KNOT_LMDB_EXACT)) {
+		knot_lmdb_del_cur(cat->rw_txn);
+	} else {
+
+		knot_lmdb_del_prefix(cat->rw_txn, &key);
+	}
 	free(key.mv_data);
 	return cat->rw_txn->ret;
 }
-- 
GitLab