summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2026-06-29 09:33:57 +0100
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2026-06-29 09:33:57 +0100
commit26eda4262fa99888e254e9c19b40c04b2a29a75c (patch)
treec1f2fdeb8d36d9e663b5a2f25842b7b59574e822 /src
parentad2a2ff05af8df1ba552d906e377afa345a449a7 (diff)
downloadwebstat-26eda4262fa99888e254e9c19b40c04b2a29a75c.tar.bz2
webstat-26eda4262fa99888e254e9c19b40c04b2a29a75c.tar.xz
webstat-26eda4262fa99888e254e9c19b40c04b2a29a75c.zip
Fix uniqueness of entities
Should be unique for value and type, they're not just strings, they can be different things with the same value... Albeit rarely.
Diffstat (limited to 'src')
-rw-r--r--src/schema.sql2
-rw-r--r--src/sql/hostUpsert.sql2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/schema.sql b/src/schema.sql
index 6f28f2d..0062538 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -40,7 +40,7 @@ CREATE TABLE entities(
CONSTRAINT pk_entities PRIMARY KEY (id)
);
-CREATE UNIQUE INDEX uni_entities_value ON entities(MD5(value));
+CREATE UNIQUE INDEX uni_entities_value ON entities(MD5(value), type);
CREATE INDEX idx_entities_retryinsert ON entities(id)
WHERE
diff --git a/src/sql/hostUpsert.sql b/src/sql/hostUpsert.sql
index d5ee11d..5c8be1e 100644
--- a/src/sql/hostUpsert.sql
+++ b/src/sql/hostUpsert.sql
@@ -1,7 +1,7 @@
INSERT INTO entities(type, value, detail)
VALUES ('host', $1, jsonb_build_object('sysname', $2::text, 'release', $3::text,
'version', $4::text, 'machine', $5::text, 'domainname', $6::text))
-ON CONFLICT (md5(value))
+ON CONFLICT (md5(value), type)
DO UPDATE SET
detail = jsonb_build_object('sysname', $2::text, 'release', $3::text, 'version',
$4::text, 'machine', $5::text, 'domainname', $6::text)