summary refs log tree commit diff
path: root/synapse/storage/schema
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-12-01 18:41:32 +0000
committerMark Haines <mark.haines@matrix.org>2015-12-01 18:41:32 +0000
commit95f30ecd1f90cd143c908589b600742148491c15 (patch)
tree8752ad58e1eae5963adc83093111a096cb76cf7f /synapse/storage/schema
parentMerge pull request #400 from matrix-org/daniel/versioning (diff)
downloadsynapse-95f30ecd1f90cd143c908589b600742148491c15.tar.xz
Add API for setting account_data globaly or on a per room basis
Diffstat (limited to 'synapse/storage/schema')
-rw-r--r--synapse/storage/schema/delta/26/account_data.sql23
1 files changed, 23 insertions, 0 deletions
diff --git a/synapse/storage/schema/delta/26/account_data.sql b/synapse/storage/schema/delta/26/account_data.sql
index 3198a0d29c..48ad9cc6b8 100644
--- a/synapse/storage/schema/delta/26/account_data.sql
+++ b/synapse/storage/schema/delta/26/account_data.sql
@@ -15,3 +15,26 @@
 
 
 ALTER TABLE private_user_data_max_stream_id RENAME TO account_data_max_stream_id;
+
+
+CREATE TABLE IF NOT EXISTS account_data(
+    user_id TEXT NOT NULL,
+    account_data_type TEXT NOT NULL, -- The type of the account_data.
+    stream_id BIGINT NOT NULL, -- The version of the account_data.
+    content TEXT NOT NULL,  -- The JSON content of the account_data
+    CONSTRAINT account_data_uniqueness UNIQUE (user_id, account_data_type)
+);
+
+
+CREATE TABLE IF NOT EXISTS room_account_data(
+    user_id TEXT NOT NULL,
+    room_id TEXT NOT NULL,
+    account_data_type TEXT NOT NULL, -- The type of the account_data.
+    stream_id BIGINT NOT NULL, -- The version of the account_data.
+    content TEXT NOT NULL,  -- The JSON content of the account_data
+    CONSTRAINT room_account_data_uniqueness UNIQUE (user_id, room_id, account_data_type)
+);
+
+
+CREATE INDEX account_data_stream_id on account_data(user_id, stream_id);
+CREATE INDEX room_account_data_stream_id on room_account_data(user_id, stream_id);