diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-11-01 19:10:33 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-11-02 10:36:13 +0000 |
commit | 350f654e7b80ff19d1fdf3861093cef09ccf3ab1 (patch) | |
tree | 2c19dd58dc5ae54ac36d0e4f85fc882bb019c618 /synapse/storage/schema/delta/52 | |
parent | Remove redundant database locks for device list updates (diff) | |
download | synapse-350f654e7b80ff19d1fdf3861093cef09ccf3ab1.tar.xz |
Add unique indexes to a couple of tables
The indexes on device_lists_remote_extremeties can be unique, and they therefore should, to ensure that the db remains consistent.
Diffstat (limited to 'synapse/storage/schema/delta/52')
-rw-r--r-- | synapse/storage/schema/delta/52/device_list_streams_unique_idx.sql | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/synapse/storage/schema/delta/52/device_list_streams_unique_idx.sql b/synapse/storage/schema/delta/52/device_list_streams_unique_idx.sql new file mode 100644 index 0000000000..bfa49e6f92 --- /dev/null +++ b/synapse/storage/schema/delta/52/device_list_streams_unique_idx.sql @@ -0,0 +1,36 @@ +/* Copyright 2018 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +-- register a background update which will create a unique index on +-- device_lists_remote_cache +INSERT into background_updates (update_name, progress_json) + VALUES ('device_lists_remote_cache_unique_idx', '{}'); + +-- and one on device_lists_remote_extremeties +INSERT into background_updates (update_name, progress_json, depends_on) + VALUES ( + 'device_lists_remote_extremeties_unique_idx', '{}', + + -- doesn't really depend on this, but we need to make sure both happen + -- before we drop the old indexes. + 'device_lists_remote_cache_unique_idx' + ); + +-- once they complete, we can drop the old indexes. +INSERT into background_updates (update_name, progress_json, depends_on) + VALUES ( + 'drop_device_list_streams_non_unique_indexes', '{}', + 'device_lists_remote_extremeties_unique_idx' + ); |