Add `state_key` and `rejection_reason` to `events` (#11792)
... and start populating them for new events
2 files changed, 31 insertions, 3 deletions
diff --git a/synapse/storage/schema/__init__.py b/synapse/storage/schema/__init__.py
index 75659f931c..7b21c1b96d 100644
--- a/synapse/storage/schema/__init__.py
+++ b/synapse/storage/schema/__init__.py
@@ -56,13 +56,15 @@ Changes in SCHEMA_VERSION = 67:
Changes in SCHEMA_VERSION = 68:
- event_reference_hashes is no longer read.
+ - `events` has `state_key` and `rejection_reason` columns, which are populated for
+ new events.
"""
SCHEMA_COMPAT_VERSION = (
- # we have removed the public_room_list_stream table, so are now incompatible with
- # synapses wth SCHEMA_VERSION < 63.
- 63
+ # we now have `state_key` columns in both `events` and `state_events`, so
+ # now incompatible with synapses wth SCHEMA_VERSION < 66.
+ 66
)
"""Limit on how far the synapse codebase can be rolled back without breaking db compat
diff --git a/synapse/storage/schema/main/delta/68/01event_columns.sql b/synapse/storage/schema/main/delta/68/01event_columns.sql
new file mode 100644
index 0000000000..7c072f972e
--- /dev/null
+++ b/synapse/storage/schema/main/delta/68/01event_columns.sql
@@ -0,0 +1,26 @@
+/* Copyright 2022 The Matrix.org Foundation C.I.C
+ *
+ * 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.
+ */
+
+-- Add new colums to the `events` table which will (one day) make the `state_events`
+-- and `rejections` tables redundant.
+
+ALTER TABLE events
+ -- if this event is a state event, its state key
+ ADD COLUMN state_key TEXT DEFAULT NULL;
+
+
+ALTER TABLE events
+ -- if this event was rejected, the reason it was rejected.
+ ADD COLUMN rejection_reason TEXT DEFAULT NULL;
|