08 01 25
Добавил счётчик сколько раз изменялось сообщение
This commit is contained in:
parent
8e19486cf5
commit
a2626dfdd0
@ -325,7 +325,7 @@ public class DatabaseInitializer {
|
|||||||
(int) MsgSubType.CONNECTION_UNBLOCK
|
(int) MsgSubType.CONNECTION_UNBLOCK
|
||||||
));
|
));
|
||||||
|
|
||||||
// 9) message_stats (to_block_hash -> BLOB)
|
// 9) message_stats (to_block_hash -> BLOB) + edits_count
|
||||||
st.executeUpdate("""
|
st.executeUpdate("""
|
||||||
CREATE TABLE IF NOT EXISTS message_stats (
|
CREATE TABLE IF NOT EXISTS message_stats (
|
||||||
to_login TEXT NOT NULL,
|
to_login TEXT NOT NULL,
|
||||||
@ -335,6 +335,7 @@ public class DatabaseInitializer {
|
|||||||
|
|
||||||
likes_count INTEGER NOT NULL DEFAULT 0,
|
likes_count INTEGER NOT NULL DEFAULT 0,
|
||||||
replies_count INTEGER NOT NULL DEFAULT 0,
|
replies_count INTEGER NOT NULL DEFAULT 0,
|
||||||
|
edits_count INTEGER NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
UNIQUE (
|
UNIQUE (
|
||||||
to_login,
|
to_login,
|
||||||
@ -417,17 +418,44 @@ public class DatabaseInitializer {
|
|||||||
END;
|
END;
|
||||||
""".formatted((int) MsgSubType.TEXT_REPLY));
|
""".formatted((int) MsgSubType.TEXT_REPLY));
|
||||||
|
|
||||||
// 12) Trigger: EDIT — пометить исходный блок
|
// 12) Trigger: EDIT — пометить исходный блок + увеличить edits_count
|
||||||
st.executeUpdate("""
|
st.executeUpdate("""
|
||||||
CREATE TRIGGER IF NOT EXISTS trg_blocks_edit_apply_ai
|
CREATE TRIGGER IF NOT EXISTS trg_blocks_edit_apply_ai
|
||||||
AFTER INSERT ON blocks
|
AFTER INSERT ON blocks
|
||||||
WHEN NEW.msg_type = 1 AND NEW.msg_sub_type = %d
|
WHEN NEW.msg_type = 1 AND NEW.msg_sub_type = %d
|
||||||
BEGIN
|
BEGIN
|
||||||
|
-- 1) Как раньше: помечаем исходный блок, что его изменили последним edit'ом
|
||||||
UPDATE blocks
|
UPDATE blocks
|
||||||
SET edited_by_block_global_number = NEW.block_global_number
|
SET edited_by_block_global_number = NEW.block_global_number
|
||||||
WHERE login = NEW.login
|
WHERE login = NEW.login
|
||||||
AND bch_name = NEW.bch_name
|
AND bch_name = NEW.bch_name
|
||||||
AND block_global_number = NEW.to_block_global_number;
|
AND block_global_number = NEW.to_block_global_number;
|
||||||
|
|
||||||
|
-- 2) Счётчик edits_count +1 в message_stats (upsert)
|
||||||
|
INSERT INTO message_stats (
|
||||||
|
to_login,
|
||||||
|
to_bch_name,
|
||||||
|
to_block_global_number,
|
||||||
|
to_block_hash,
|
||||||
|
likes_count,
|
||||||
|
replies_count,
|
||||||
|
edits_count
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 3),
|
||||||
|
NEW.to_bch_name,
|
||||||
|
NEW.to_block_global_number,
|
||||||
|
NEW.to_block_hashe,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
WHERE NEW.to_bch_name IS NOT NULL
|
||||||
|
AND length(NEW.to_bch_name) > 3
|
||||||
|
AND NEW.to_block_global_number IS NOT NULL
|
||||||
|
AND NEW.to_block_hashe IS NOT NULL
|
||||||
|
ON CONFLICT(to_login, to_bch_name, to_block_global_number, to_block_hash)
|
||||||
|
DO UPDATE SET
|
||||||
|
edits_count = message_stats.edits_count + 1;
|
||||||
END;
|
END;
|
||||||
""".formatted((int) MsgSubType.TEXT_EDIT));
|
""".formatted((int) MsgSubType.TEXT_EDIT));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user