dendrite/roomserver/storage/sqlite3
kegsay ed04eed441
Fix sqlite migration issues (#1960)
* Do not store 'null' in the database for empty JSON arrays

This can cause issues, though it should be noted that the majority
of the time this will marshal/unmarshal just fine, see
https://play.golang.org/p/Doe2NZUgv7Q

* bugfix: sqlite migration should handle create events as having no 'before' snapshot

The state snapshot for any given event in the roomserver represents the state _before_
the event. For the create event, this is nothing, so the state snapshot nid should be 0.

In some cases this wasn't happening, resulting in a nice mix of possible options including:
 - A state snapshot without any state blocks `[]` or `null`.
 - A state snapshot with a single state block with a single event, the create event, causing
   a circular loop. This is incorrect as it represents the state before the event, not after.

* Add state key check
2021-08-04 17:08:17 +01:00
..
deltas Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
event_json_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
event_state_keys_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
event_types_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
events_table.go Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
invite_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
membership_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
previous_events_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
published_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
redactions_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
room_aliases_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
rooms_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00
state_block_table.go Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
state_block_table_test.go Support sqlite in addition to postgres (#869) 2020-02-13 17:27:33 +00:00
state_snapshot_table.go Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
storage.go Only include go-sqlite3 on the relevant binaries (#1900) 2021-07-20 11:18:14 +01:00
transactions_table.go Factor out StatementList to `sqlutil` and use it in `userapi` 2021-07-28 18:30:04 +01:00