From: AsamK Date: Sun, 18 Feb 2024 21:01:31 +0000 (+0100) Subject: Fix missing unique constraint on storage_id table X-Git-Tag: v0.13.0~1 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/cd88e896fa3467209febe7d89487a5e2c16a1dc8 Fix missing unique constraint on storage_id table --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java b/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java index 6cf725a0..014009c4 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java @@ -495,7 +495,7 @@ public class AccountDatabase extends Database { CREATE TABLE storage_id ( _id INTEGER PRIMARY KEY, type INTEGER NOT NULL, - storage_id BLOB NOT NULL + storage_id BLOB UNIQUE NOT NULL ) STRICT; ALTER TABLE group_v1 ADD COLUMN storage_id BLOB; ALTER TABLE group_v1 ADD COLUMN storage_record BLOB; diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/UnknownStorageIdStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/UnknownStorageIdStore.java index 6e00ad75..75389751 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/UnknownStorageIdStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/UnknownStorageIdStore.java @@ -7,6 +7,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; public class UnknownStorageIdStore { @@ -26,7 +27,7 @@ public class UnknownStorageIdStore { } } - public Collection getUnknownStorageIds(Connection connection) throws SQLException { + public Set getUnknownStorageIds(Connection connection) throws SQLException { final var sql = ( """ SELECT s.type, s.storage_id @@ -35,7 +36,7 @@ public class UnknownStorageIdStore { ).formatted(TABLE_STORAGE_ID); try (final var statement = connection.prepareStatement(sql)) { try (var result = Utils.executeQueryForStream(statement, this::getStorageIdFromResultSet)) { - return result.toList(); + return result.collect(Collectors.toSet()); } } }