summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2015-08-04 14:37:09 +0100
committerDavid Baker <dave@matrix.org>2015-08-04 14:37:09 +0100
commitc77048e12f032842cebbb0f1a0639bb62db88418 (patch)
tree9f9f29aa34f422d081ccef3fa177dd4362a45adb /synapse/storage
parentDon't try & check the username if we don't have one (which we won't if it's b... (diff)
downloadsynapse-c77048e12f032842cebbb0f1a0639bb62db88418.tar.xz
Add endpoint that proxies ID server request token and errors if the given email is in use on this Home Server.
Diffstat (limited to 'synapse/storage')
-rw-r--r--synapse/storage/schema/delta/22/user_threepids_unique.sql19
1 files changed, 19 insertions, 0 deletions
diff --git a/synapse/storage/schema/delta/22/user_threepids_unique.sql b/synapse/storage/schema/delta/22/user_threepids_unique.sql
new file mode 100644
index 0000000000..87edfa454c
--- /dev/null
+++ b/synapse/storage/schema/delta/22/user_threepids_unique.sql
@@ -0,0 +1,19 @@
+CREATE TABLE IF NOT EXISTS user_threepids2 (
+    user_id TEXT NOT NULL,
+    medium TEXT NOT NULL,
+    address TEXT NOT NULL,
+    validated_at BIGINT NOT NULL,
+    added_at BIGINT NOT NULL,
+    CONSTRAINT medium_address UNIQUE (medium, address)
+);
+
+INSERT INTO user_threepids2
+	SELECT * FROM user_threepids WHERE added_at IN (
+		SELECT max(added_at) FROM user_threepids GROUP BY medium, address
+	)
+;
+
+DROP TABLE user_threepids;
+ALTER TABLE user_threepids2 RENAME TO user_threepids;
+
+CREATE INDEX user_threepids_user_id ON user_threepids(user_id);