Fix bug when uploading state with empty state_key

This commit is contained in:
Erik Johnston 2014-12-10 14:02:48 +00:00
parent aae8a37e63
commit 02db7eb209
6 changed files with 29 additions and 88 deletions

View file

@ -39,6 +39,7 @@ from .state import StateStore
from .signatures import SignatureStore
from syutil.base64util import decode_base64
from syutil.jsonutil import encode_canonical_json
from synapse.crypto.event_signing import compute_event_reference_hash
@ -162,7 +163,8 @@ class DataStore(RoomMemberStore, RoomStore,
table="event_json",
values={
"event_id": event.event_id,
"json": json.dumps(event_dict, separators=(',', ':')),
"room_id": event.room_id,
"json": encode_canonical_json(event_dict),
},
or_replace=True,
)

View file

@ -35,11 +35,13 @@ CREATE INDEX IF NOT EXISTS events_room_id ON events (room_id);
CREATE TABLE IF NOT EXISTS event_json(
event_id TEXT NOT NULL,
room_id TEXT NOT NULL,
json BLOB NOT NULL,
CONSTRAINT ev_j_uniq UNIQUE (event_id)
);
CREATE INDEX IF NOT EXISTS event_json_id ON event_json(event_id);
CREATE INDEX IF NOT EXISTS event_json_room_id ON event_json(room_id);
CREATE TABLE IF NOT EXISTS state_events(