]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
lmdb indexops: avoid updating timestamp when there is no change
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 6 Apr 2023 10:19:59 +0000 (12:19 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 28 Apr 2023 11:50:43 +0000 (13:50 +0200)
ext/lmdb-safe/lmdb-typed.hh

index a0e2cefb0d8dd10f0844301bef315f0633052d8d..0e837a60913ea26c6bf81252debf3086b3b8fb2a 100644 (file)
@@ -162,7 +162,11 @@ struct LMDBIndexOps
     auto scombined = makeCombinedKey(keyConv(d_parent->getMember(t)), id);
     MDBInVal combined(scombined);
 
-    txn->put(d_idx, combined, empty, flags);
+    MDBOutVal currentvalue;
+
+    if (txn->get(d_idx, combined, currentvalue) == MDB_NOTFOUND) {
+      txn->put(d_idx, combined, empty, flags);
+    }
   }
 
   void del(MDBRWTransaction& txn, const Class& t, uint32_t id)