]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
add comments dbi
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 11 Nov 2025 14:30:56 +0000 (15:30 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 20 Apr 2026 12:45:13 +0000 (14:45 +0200)
Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
modules/lmdbbackend/lmdbbackend.cc
modules/lmdbbackend/lmdbbackend.hh

index ec9d44c6861b776e8fd38f46b868aeebd2afa0e3..d54f07eba6f66ce4ed622adf8b799bbbc2b1a75b 100644 (file)
@@ -1812,6 +1812,7 @@ std::shared_ptr<LMDBBackend::RecordsRWTransaction> LMDBBackend::getRecordsRWTran
     shard.env = getMDBEnv((getArg("filename") + "-" + std::to_string(id % s_shards)).c_str(),
                           MDB_NOSUBDIR | MDB_NORDAHEAD | d_asyncFlag, 0600, d_mapsize_shards);
     shard.rdbi = shard.env->openDB("records_v5", MDB_CREATE);
+    shard.cdbi = shard.env->openDB("comments_v7", MDB_CREATE);
   }
   auto ret = std::make_shared<RecordsRWTransaction>(shard.env->getRWTransaction());
   ret->db = std::make_shared<RecordsDB>(shard);
@@ -1830,6 +1831,7 @@ std::shared_ptr<LMDBBackend::RecordsROTransaction> LMDBBackend::getRecordsROTran
     shard.env = getMDBEnv((getArg("filename") + "-" + std::to_string(id % s_shards)).c_str(),
                           MDB_NOSUBDIR | MDB_NORDAHEAD | d_asyncFlag, 0600, d_mapsize_shards);
     shard.rdbi = shard.env->openDB("records_v5", MDB_CREATE);
+    shard.cdbi = shard.env->openDB("comments_v7", MDB_CREATE);
   }
 
   if (rwtxn) {
@@ -3468,6 +3470,8 @@ bool LMDBBackend::hasCreatedLocalFiles() const
   // not all of them did.
   // But since this information is for the sake of pdnsutil, this is not
   // really a problem.
+  // However, there is a false positive if we make new databases (dbis) inside
+  // existing LMDB files on disk. This is not easy to avoid.
   return MDBDbi::d_creationCount != 0;
 }
 
index d7f752a4f411aee663bc2e9dd182e649ebf385ea..96d651d1d8d5186382d5c2b324a3a74992f14991 100644 (file)
@@ -300,6 +300,7 @@ private:
   {
     shared_ptr<MDBEnv> env;
     MDBDbi rdbi; // records
+    MDBDbi cdbi; // comments
   };
 
   struct RecordsROTransaction