diff options
author | Mark Haines <mjark@negativecurvature.net> | 2015-08-20 10:04:04 +0100 |
---|---|---|
committer | Mark Haines <mjark@negativecurvature.net> | 2015-08-20 10:04:04 +0100 |
commit | a0b8e5f2fec1982af20fdafc454047067058fd51 (patch) | |
tree | e6b02b94d49fc3ddb3c5ee7793bbc729e3fb5027 /synapse/storage/schema | |
parent | Merge pull request #232 from matrix-org/erikj/appservice_joined_rooms (diff) | |
parent | Check absent before trying to access keys (diff) | |
download | synapse-a0b8e5f2fec1982af20fdafc454047067058fd51.tar.xz |
Merge pull request #211 from matrix-org/email_in_use
Changes for unique emails
Diffstat (limited to 'synapse/storage/schema')
-rw-r--r-- | synapse/storage/schema/delta/22/user_threepids_unique.sql | 19 |
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); |