]> nmode's Git Repositories - signal-cli/commitdiff
Fix missing unique constraint on storage_id table
authorAsamK <asamk@gmx.de>
Sun, 18 Feb 2024 21:01:31 +0000 (22:01 +0100)
committerAsamK <asamk@gmx.de>
Sun, 18 Feb 2024 21:01:41 +0000 (22:01 +0100)
lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java
lib/src/main/java/org/asamk/signal/manager/storage/UnknownStorageIdStore.java

index 6cf725a0ffdd7ae0f8a228a6b5ce93986974cbca..014009c45fc42d7d7817c964042ec99c36206121 100644 (file)
@@ -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;
index 6e00ad7560f8763fcdfa0b8efe4a89e325ce7fe8..7538975195108d6fa223f02363a92d532c68ef33 100644 (file)
@@ -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<StorageId> getUnknownStorageIds(Connection connection) throws SQLException {
+    public Set<StorageId> 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());
             }
         }
     }