mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
23 lines
1.2 KiB
SQL
23 lines
1.2 KiB
SQL
-- ── Event mentions ────────────────────────────────────────────────────────────
|
|
-- Conformance: "Channel-less global events and DMs" (#p fan-out). The join to
|
|
-- events MUST carry the community tuple (e.community_id = m.community_id AND
|
|
-- e.id = m.event_id) — bare e.id = m.event_id would leak cross-community
|
|
-- mentions (Max, verified at event.rs:222).
|
|
|
|
CREATE TABLE event_mentions (
|
|
community_id UUID NOT NULL REFERENCES communities(id),
|
|
pubkey_hex VARCHAR(64) NOT NULL,
|
|
event_id BYTEA NOT NULL,
|
|
event_created_at TIMESTAMPTZ NOT NULL,
|
|
channel_id UUID,
|
|
event_kind INT,
|
|
PRIMARY KEY (community_id, pubkey_hex, event_id)
|
|
);
|
|
|
|
CREATE INDEX idx_event_mentions_pubkey_created
|
|
ON event_mentions (community_id, pubkey_hex, event_created_at DESC);
|
|
CREATE INDEX idx_event_mentions_pubkey_kind_created
|
|
ON event_mentions (community_id, pubkey_hex, event_kind, event_created_at DESC);
|
|
CREATE INDEX idx_event_mentions_community_event
|
|
ON event_mentions (community_id, event_id);
|