Skip to content

Commit 7fba70a

Browse files
committed
remove agent triggers
1 parent f7126a3 commit 7fba70a

File tree

5 files changed

+4
-166
lines changed

5 files changed

+4
-166
lines changed

simplexmq.cabal

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ library
169169
Simplex.Messaging.Agent.Store.SQLite
170170
Simplex.Messaging.Agent.Store.SQLite.Common
171171
Simplex.Messaging.Agent.Store.SQLite.DB
172-
Simplex.Messaging.Agent.Store.SQLite.Functions
173172
Simplex.Messaging.Agent.Store.SQLite.Migrations
174173
Simplex.Messaging.Agent.Store.SQLite.Migrations.App
175174
Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220101_initial

src/Simplex/Messaging/Agent/Store/Postgres/Migrations/M20250815_service_certs.hs

Lines changed: 3 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ module Simplex.Messaging.Agent.Store.Postgres.Migrations.M20250815_service_certs
44

55
import Data.Text (Text)
66
import qualified Data.Text as T
7-
import Simplex.Messaging.Agent.Store.Postgres.Migrations.Util
87
import Text.RawString.QQ (r)
98

109
m20250815_service_certs :: Text
1110
m20250815_service_certs =
12-
createXorHashFuncs
13-
<> T.pack
14-
[r|
11+
T.pack
12+
[r|
1513
CREATE TABLE client_services(
1614
user_id BIGINT NOT NULL REFERENCES users ON UPDATE RESTRICT ON DELETE CASCADE,
1715
host TEXT NOT NULL,
@@ -29,86 +27,15 @@ CREATE UNIQUE INDEX idx_server_certs_user_id_host_port ON client_services(user_i
2927
CREATE INDEX idx_server_certs_host_port ON client_services(host, port);
3028

3129
ALTER TABLE rcv_queues ADD COLUMN rcv_service_assoc SMALLINT NOT NULL DEFAULT 0;
32-
33-
CREATE FUNCTION update_aggregates(p_user_id BIGINT, p_host TEXT, p_port TEXT, p_change BIGINT, p_rcv_id BYTEA) RETURNS VOID
34-
LANGUAGE plpgsql
35-
AS $$
36-
BEGIN
37-
UPDATE client_services
38-
SET service_queue_count = service_queue_count + p_change,
39-
service_queue_ids_hash = xor_combine(service_queue_ids_hash, public.digest(p_rcv_id, 'md5'))
40-
WHERE user_id = p_user_id AND host = p_host AND port = p_port;
41-
END;
42-
$$;
43-
44-
CREATE FUNCTION on_rcv_queue_insert() RETURNS TRIGGER
45-
LANGUAGE plpgsql
46-
AS $$
47-
BEGIN
48-
IF NEW.rcv_service_assoc != 0 AND NEW.deleted = 0 THEN
49-
PERFORM update_aggregates(NEW.user_id, NEW.host, NEW.port, 1, NEW.rcv_id);
50-
END IF;
51-
RETURN NEW;
52-
END;
53-
$$;
54-
55-
CREATE FUNCTION on_rcv_queue_delete() RETURNS TRIGGER
56-
LANGUAGE plpgsql
57-
AS $$
58-
BEGIN
59-
IF OLD.rcv_service_assoc != 0 AND OLD.deleted = 0 THEN
60-
PERFORM update_aggregates(OLD.user_id, OLD.host, OLD.port, -1, OLD.rcv_id);
61-
END IF;
62-
RETURN OLD;
63-
END;
64-
$$;
65-
66-
CREATE FUNCTION on_rcv_queue_update() RETURNS TRIGGER
67-
LANGUAGE plpgsql
68-
AS $$
69-
BEGIN
70-
IF OLD.rcv_service_assoc != 0 AND OLD.deleted = 0 THEN
71-
IF NOT (NEW.rcv_service_assoc != 0 AND NEW.deleted = 0) THEN
72-
PERFORM update_aggregates(OLD.user_id, OLD.host, OLD.port, -1, OLD.rcv_id);
73-
END IF;
74-
ELSIF NEW.rcv_service_assoc != 0 AND NEW.deleted = 0 THEN
75-
PERFORM update_aggregates(NEW.user_id, NEW.host, NEW.port, 1, NEW.rcv_id);
76-
END IF;
77-
RETURN NEW;
78-
END;
79-
$$;
80-
81-
CREATE TRIGGER tr_rcv_queue_insert
82-
AFTER INSERT ON rcv_queues
83-
FOR EACH ROW EXECUTE PROCEDURE on_rcv_queue_insert();
84-
85-
CREATE TRIGGER tr_rcv_queue_delete
86-
AFTER DELETE ON rcv_queues
87-
FOR EACH ROW EXECUTE PROCEDURE on_rcv_queue_delete();
88-
89-
CREATE TRIGGER tr_rcv_queue_update
90-
AFTER UPDATE ON rcv_queues
91-
FOR EACH ROW EXECUTE PROCEDURE on_rcv_queue_update();
92-
|]
30+
|]
9331

9432
down_m20250815_service_certs :: Text
9533
down_m20250815_service_certs =
9634
T.pack
9735
[r|
98-
DROP TRIGGER tr_rcv_queue_insert ON rcv_queues;
99-
DROP TRIGGER tr_rcv_queue_delete ON rcv_queues;
100-
DROP TRIGGER tr_rcv_queue_update ON rcv_queues;
101-
102-
DROP FUNCTION on_rcv_queue_insert;
103-
DROP FUNCTION on_rcv_queue_delete;
104-
DROP FUNCTION on_rcv_queue_update;
105-
106-
DROP FUNCTION update_aggregates;
107-
10836
ALTER TABLE rcv_queues DROP COLUMN rcv_service_assoc;
10937

11038
DROP INDEX idx_server_certs_host_port;
11139
DROP INDEX idx_server_certs_user_id_host_port;
11240
DROP TABLE client_services;
11341
|]
114-
<> dropXorHashFuncs

src/Simplex/Messaging/Agent/Store/SQLite.hs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,12 @@ import qualified Database.SQLite3 as SQLite3
5656
import Simplex.Messaging.Agent.Store.Migrations (DBMigrate (..), sharedMigrateSchema)
5757
import qualified Simplex.Messaging.Agent.Store.SQLite.Migrations as Migrations
5858
import Simplex.Messaging.Agent.Store.SQLite.Common
59-
import Simplex.Messaging.Agent.Store.SQLite.Functions (registerFunctions)
6059
import qualified Simplex.Messaging.Agent.Store.SQLite.DB as DB
6160
import Simplex.Messaging.Agent.Store.Shared (Migration (..), MigrationConfirmation (..), MigrationError (..))
6261
import Simplex.Messaging.Util (ifM, safeDecodeUtf8)
6362
import System.Directory (copyFile, createDirectoryIfMissing, doesFileExist)
6463
import System.FilePath (takeDirectory)
65-
import UnliftIO.Exception (bracketOnError, onException, throwIO)
64+
import UnliftIO.Exception (bracketOnError, onException)
6665
import UnliftIO.MVar
6766
import UnliftIO.STM
6867

@@ -114,7 +113,6 @@ connectDB path key track = do
114113
PRAGMA secure_delete = ON;
115114
PRAGMA auto_vacuum = FULL;
116115
|]
117-
registerFunctions db' >>= either (\e -> putStrLn ("functions: " <> show e) >> throwIO (userError $ show e)) pure
118116

119117
closeDBStore :: DBStore -> IO ()
120118
closeDBStore st@DBStore {dbClosed} =

src/Simplex/Messaging/Agent/Store/SQLite/Functions.hs

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20250815_service_certs.hs

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -25,60 +25,11 @@ CREATE UNIQUE INDEX idx_server_certs_user_id_host_port ON client_services(user_i
2525
CREATE INDEX idx_server_certs_host_port ON client_services(host, port);
2626

2727
ALTER TABLE rcv_queues ADD COLUMN rcv_service_assoc INTEGER NOT NULL DEFAULT 0;
28-
29-
CREATE TRIGGER tr_rcv_queue_insert
30-
AFTER INSERT ON rcv_queues
31-
FOR EACH ROW
32-
WHEN NEW.rcv_service_assoc != 0 AND NEW.deleted = 0
33-
BEGIN
34-
UPDATE client_services
35-
SET service_queue_count = service_queue_count + 1,
36-
service_queue_ids_hash = chat_xor_combine(service_queue_ids_hash, chat_md5hash(NEW.rcv_id))
37-
WHERE user_id = NEW.user_id AND host = NEW.host AND port = NEW.port;
38-
END;
39-
40-
CREATE TRIGGER tr_rcv_queue_delete
41-
AFTER DELETE ON rcv_queues
42-
FOR EACH ROW
43-
WHEN OLD.rcv_service_assoc != 0 AND OLD.deleted = 0
44-
BEGIN
45-
UPDATE client_services
46-
SET service_queue_count = service_queue_count - 1,
47-
service_queue_ids_hash = chat_xor_combine(service_queue_ids_hash, chat_md5hash(OLD.rcv_id))
48-
WHERE user_id = OLD.user_id AND host = OLD.host AND port = OLD.port;
49-
END;
50-
51-
CREATE TRIGGER tr_rcv_queue_update_remove
52-
AFTER UPDATE ON rcv_queues
53-
FOR EACH ROW
54-
WHEN OLD.rcv_service_assoc != 0 AND OLD.deleted = 0 AND NOT (NEW.rcv_service_assoc != 0 AND NEW.deleted = 0)
55-
BEGIN
56-
UPDATE client_services
57-
SET service_queue_count = service_queue_count - 1,
58-
service_queue_ids_hash = chat_xor_combine(service_queue_ids_hash, chat_md5hash(OLD.rcv_id))
59-
WHERE user_id = OLD.user_id AND host = OLD.host AND port = OLD.port;
60-
END;
61-
62-
CREATE TRIGGER tr_rcv_queue_update_add
63-
AFTER UPDATE ON rcv_queues
64-
FOR EACH ROW
65-
WHEN NEW.rcv_service_assoc != 0 AND NEW.deleted = 0 AND NOT (OLD.rcv_service_assoc != 0 AND OLD.deleted = 0)
66-
BEGIN
67-
UPDATE client_services
68-
SET service_queue_count = service_queue_count + 1,
69-
service_queue_ids_hash = chat_xor_combine(service_queue_ids_hash, chat_md5hash(NEW.rcv_id))
70-
WHERE user_id = NEW.user_id AND host = NEW.host AND port = NEW.port;
71-
END;
7228
|]
7329

7430
down_m20250815_service_certs :: Query
7531
down_m20250815_service_certs =
7632
[sql|
77-
DROP TRIGGER tr_rcv_queue_insert;
78-
DROP TRIGGER tr_rcv_queue_delete;
79-
DROP TRIGGER tr_rcv_queue_update_remove;
80-
DROP TRIGGER tr_rcv_queue_update_add;
81-
8233
ALTER TABLE rcv_queues DROP COLUMN rcv_service_assoc;
8334

8435
DROP INDEX idx_server_certs_host_port;

0 commit comments

Comments
 (0)