dendrite/syncapi/storage
Kegsay a25d477cdb
Initial syncapi storage refactor to share pq/sqlite code (#1030)
* Initial syncapi storage refactor to share pq/sqlite code

This goes down a different route than https://github.com/matrix-org/dendrite/pull/985
which tried to even reduce the boilerplate of `ExecContext` etc. The previous pattern
fails badly when there are subtle differences in parameters and hence the shared
boilerplate to read from `QueryContext` breaks. Rather than attacking it at that level,
the main place where we want to reuse code is for the `syncserver.go` itself - the
database implementation which has lots of complex logic. So instead, this commit:
 - Makes `invites_table.go` an interface.
 - Makes `SyncServerDatasource` use that interface
 - This means some functions are now identical for pq/sqlite, so factor them out
   to a temporary `shared.Database` struct which will grow until it replaces all of
   `SyncServerDatasource`.

* Missing files
2020-05-13 17:28:42 +01:00
..
postgres Initial syncapi storage refactor to share pq/sqlite code (#1030) 2020-05-13 17:28:42 +01:00
shared Initial syncapi storage refactor to share pq/sqlite code (#1030) 2020-05-13 17:28:42 +01:00
sqlite3 Initial syncapi storage refactor to share pq/sqlite code (#1030) 2020-05-13 17:28:42 +01:00
tables Initial syncapi storage refactor to share pq/sqlite code (#1030) 2020-05-13 17:28:42 +01:00
interface.go syncapi: Rename and split out tokens (#1025) 2020-05-13 12:14:50 +01:00
storage.go Limit database connections (#980, #564) (#998) 2020-05-01 13:34:53 +01:00
storage_test.go syncapi: Rename and split out tokens (#1025) 2020-05-13 12:14:50 +01:00
storage_wasm.go Limit database connections (#980, #564) (#998) 2020-05-01 13:34:53 +01:00