From 1e190e42c7de9ac70de505958118818990efd03e Mon Sep 17 00:00:00 2001 From: Robur Date: Wed, 30 Jun 2021 10:15:50 +0000 Subject: [PATCH] Builder_db.Job_tag: provide next to add also an update Model: if Job_tag.add fails, use Job_tag.update --- db/builder_db.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/db/builder_db.ml b/db/builder_db.ml index 158ae95..494e921 100644 --- a/db/builder_db.ml +++ b/db/builder_db.ml @@ -157,7 +157,10 @@ module Job_tag = struct let add = Caqti_request.exec Caqti_type.(tup3 id string id) - "INSERT OR REPLACE INTO job_tag (tag, value, job) VALUES (?, ?, ?)" + {| INSERT INTO job_tag (tag, value, job) + VALUES (?1, ?2, ?3) + ON CONFLICT(x) DO UPDATE SET value = ?2 WHERE tag = ?1 AND job = ?3 + |} let get_value = Caqti_request.find