From dd28c4b4d739ac66609ff0bf4834caee325c885c Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Mon, 22 Sep 2025 20:41:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D1=8B?= =?UTF-8?q?,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=BE=D1=82=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D1=8E?= =?UTF-8?q?=D1=82=20=D0=B0=D0=B2=D1=82=D0=BE=D0=B8=D0=BD=D0=BA=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=20=D0=B2=20=D1=81=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B0=D0=B5,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=81=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BF=D1=8B=D1=82=D0=BA=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D1=83=D1=89=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B5=D0=B9=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/cdcdb/dblite.d | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/source/cdcdb/dblite.d b/source/cdcdb/dblite.d index 416f817..f5a0f6b 100644 --- a/source/cdcdb/dblite.d +++ b/source/cdcdb/dblite.d @@ -285,8 +285,10 @@ public: auto queryResult = sql( q{ INSERT INTO blobs (sha256, z_sha256, size, z_size, content, zstd) - VALUES (?,?,?,?,?,?) - ON CONFLICT (sha256) DO NOTHING + SELECT ?1,?2,?3,?4,?5,?6 + WHERE NOT EXISTS ( + SELECT 1 FROM blobs WHERE sha256 = ?1 + ) RETURNING sha256 }, blob.sha256[], @@ -305,8 +307,11 @@ public: { auto queryResult = sql( q{ - INSERT INTO processes (name) VALUES (?) - ON CONFLICT(name) DO NOTHING + INSERT INTO processes (name) + SELECT ?1 + WHERE NOT EXISTS ( + SELECT 1 FROM processes WHERE name = ?1 + ) }, name ); @@ -318,8 +323,11 @@ public: { auto queryResult = sql( q{ - INSERT INTO files (name) VALUES (?) - ON CONFLICT(name) DO NOTHING + INSERT INTO files (name) + SELECT ?1 + WHERE NOT EXISTS ( + SELECT 1 FROM files WHERE name = ?1 + ) }, name ); @@ -332,8 +340,10 @@ public: auto queryResult = sql( q{ INSERT INTO users (uid, name) - VALUES (?, ?) - ON CONFLICT(uid) DO NOTHING; + SELECT ?1,?2 + WHERE NOT EXISTS ( + SELECT 1 FROM users WHERE uid = ?1 + ) }, uid, name );