diff --git a/roomserver/api/api.go b/roomserver/api/api.go index 1ee1bd449..e6d37e8f1 100644 --- a/roomserver/api/api.go +++ b/roomserver/api/api.go @@ -166,11 +166,6 @@ type RoomserverInternalAPI interface { // PerformForget forgets a rooms history for a specific user PerformForget(ctx context.Context, req *PerformForgetRequest, resp *PerformForgetResponse) error - QueryEventsAfter( - ctx context.Context, - req *QueryEventsAfterEventIDRequest, - res *QueryEventsAfterEventIDesponse, - ) error // Asks for the default room version as preferred by the server. QueryRoomVersionCapabilities( diff --git a/roomserver/api/api_trace.go b/roomserver/api/api_trace.go index a6c03a2ea..16f52abb7 100644 --- a/roomserver/api/api_trace.go +++ b/roomserver/api/api_trace.go @@ -17,11 +17,6 @@ type RoomserverInternalAPITrace struct { Impl RoomserverInternalAPI } -func (t *RoomserverInternalAPITrace) QueryEventsAfter(ctx context.Context, req *QueryEventsAfterEventIDRequest, res *QueryEventsAfterEventIDesponse) error { - util.GetLogger(ctx).Infof("QueryEventsAfter req=%+v res=%+v", js(req), js(res)) - return t.Impl.QueryEventsAfter(ctx, req, res) -} - func (t *RoomserverInternalAPITrace) SetFederationAPI(fsAPI fsAPI.FederationInternalAPI, keyRing *gomatrixserverlib.KeyRing) { t.Impl.SetFederationAPI(fsAPI, keyRing) } diff --git a/roomserver/api/query.go b/roomserver/api/query.go index a937d1e40..96d6711c6 100644 --- a/roomserver/api/query.go +++ b/roomserver/api/query.go @@ -101,17 +101,6 @@ type QueryEventsByIDResponse struct { Events []*gomatrixserverlib.HeaderedEvent `json:"events"` } -// QueryEventsByIDRequest is a request to QueryEventsByID -type QueryEventsAfterEventIDRequest struct { - // The event IDs to look up. - EventIDs string `json:"event_id"` -} - -// QueryEventsByIDResponse is a response to QueryEventsByID -type QueryEventsAfterEventIDesponse struct { - Events []*gomatrixserverlib.ClientEvent `json:"events"` -} - // QueryMembershipForUserRequest is a request to QueryMembership type QueryMembershipForUserRequest struct { // ID of the room to fetch membership from diff --git a/roomserver/internal/api.go b/roomserver/internal/api.go index aa6d24f44..e58f11c13 100644 --- a/roomserver/internal/api.go +++ b/roomserver/internal/api.go @@ -202,11 +202,3 @@ func (r *RoomserverInternalAPI) PerformForget( ) error { return r.Forgetter.PerformForget(ctx, req, resp) } - -func (r *RoomserverInternalAPI) QueryEventsAfter( - ctx context.Context, - req *api.QueryEventsAfterEventIDRequest, - res *api.QueryEventsAfterEventIDesponse, -) error { - return r.Queryer.QueryEventsAfter(ctx, req, res) -} diff --git a/roomserver/internal/query/query.go b/roomserver/internal/query/query.go index 14b581c2f..c8bbe7705 100644 --- a/roomserver/internal/query/query.go +++ b/roomserver/internal/query/query.go @@ -724,23 +724,3 @@ func (r *Queryer) QueryAuthChain(ctx context.Context, req *api.QueryAuthChainReq res.AuthChain = hchain return nil } - -func (r *Queryer) QueryEventsAfter( - ctx context.Context, - req *api.QueryEventsAfterEventIDRequest, - res *api.QueryEventsAfterEventIDesponse, -) error { - eventNIDs, err := r.DB.SelectPreviousEventNIDs(ctx, req.EventIDs) - if err != nil { - return err - } - events, err := r.DB.Events(ctx, eventNIDs) - if err != nil { - return err - } - for _, event := range events { - ev := gomatrixserverlib.ToClientEvent(event.Event, gomatrixserverlib.FormatAll) - res.Events = append(res.Events, &ev) - } - return nil -} diff --git a/roomserver/inthttp/client.go b/roomserver/inthttp/client.go index 9e447dbb3..a61404efe 100644 --- a/roomserver/inthttp/client.go +++ b/roomserver/inthttp/client.go @@ -57,7 +57,6 @@ const ( RoomserverQueryKnownUsersPath = "/roomserver/queryKnownUsers" RoomserverQueryServerBannedFromRoomPath = "/roomserver/queryServerBannedFromRoom" RoomserverQueryAuthChainPath = "/roomserver/queryAuthChain" - RoomserverQueryEventsAfterPath = "/roomserver/queryEventsAfter" ) type httpRoomserverInternalAPI struct { @@ -535,12 +534,5 @@ func (h *httpRoomserverInternalAPI) PerformForget(ctx context.Context, req *api. apiURL := h.roomserverURL + RoomserverPerformForgetPath return httputil.PostJSON(ctx, span, h.httpClient, apiURL, req, res) -} -func (h *httpRoomserverInternalAPI) QueryEventsAfter(ctx context.Context, req *api.QueryEventsAfterEventIDRequest, res *api.QueryEventsAfterEventIDesponse) error { - span, ctx := opentracing.StartSpanFromContext(ctx, "QueryEventsAfter") - defer span.Finish() - - apiURL := h.roomserverURL + RoomserverQueryEventsAfterPath - return httputil.PostJSON(ctx, span, h.httpClient, apiURL, req, res) } diff --git a/roomserver/inthttp/server.go b/roomserver/inthttp/server.go index 65680eb71..691a45830 100644 --- a/roomserver/inthttp/server.go +++ b/roomserver/inthttp/server.go @@ -464,17 +464,4 @@ func AddRoutes(r api.RoomserverInternalAPI, internalAPIMux *mux.Router) { return util.JSONResponse{Code: http.StatusOK, JSON: &response} }), ) - internalAPIMux.Handle(RoomserverQueryEventsAfterPath, - httputil.MakeInternalAPI("queryEventsAfterPath", func(req *http.Request) util.JSONResponse { - request := api.QueryEventsAfterEventIDRequest{} - response := api.QueryEventsAfterEventIDesponse{} - if err := json.NewDecoder(req.Body).Decode(&request); err != nil { - return util.MessageResponse(http.StatusBadRequest, err.Error()) - } - if err := r.QueryEventsAfter(req.Context(), &request, &response); err != nil { - return util.ErrorResponse(err) - } - return util.JSONResponse{Code: http.StatusOK, JSON: &response} - }), - ) } diff --git a/roomserver/storage/interface.go b/roomserver/storage/interface.go index 2aded4288..a9851e05b 100644 --- a/roomserver/storage/interface.go +++ b/roomserver/storage/interface.go @@ -64,7 +64,6 @@ type Database interface { // Look up the Events for a list of numeric event IDs. // Returns a sorted list of events. Events(ctx context.Context, eventNIDs []types.EventNID) ([]types.Event, error) - SelectPreviousEventNIDs(ctx context.Context, eventID string) ([]types.EventNID, error) // Look up snapshot NID for an event ID string SnapshotNIDFromEventID(ctx context.Context, eventID string) (types.StateSnapshotNID, error) // Stores a matrix room event in the database. Returns the room NID, the state snapshot and the redacted event ID if any, or an error. diff --git a/roomserver/storage/postgres/previous_events_table.go b/roomserver/storage/postgres/previous_events_table.go index 48ee8f2f1..bd4e853eb 100644 --- a/roomserver/storage/postgres/previous_events_table.go +++ b/roomserver/storage/postgres/previous_events_table.go @@ -59,14 +59,9 @@ const selectPreviousEventExistsSQL = "" + "SELECT 1 FROM roomserver_previous_events" + " WHERE previous_event_id = $1 AND previous_reference_sha256 = $2" -const selectPreviousEventNIDsSQL = "" + - "SELECT event_nids FROM roomserver_previous_events" + - " WHERE previous_event_id = $1" - type previousEventStatements struct { insertPreviousEventStmt *sql.Stmt selectPreviousEventExistsStmt *sql.Stmt - selectPreviousEventNIDsStmt *sql.Stmt } func createPrevEventsTable(db *sql.DB) error { @@ -80,7 +75,6 @@ func preparePrevEventsTable(db *sql.DB) (tables.PreviousEvents, error) { return s, sqlutil.StatementList{ {&s.insertPreviousEventStmt, insertPreviousEventSQL}, {&s.selectPreviousEventExistsStmt, selectPreviousEventExistsSQL}, - {&s.selectPreviousEventNIDsStmt, selectPreviousEventNIDsSQL}, }.Prepare(db) } @@ -107,18 +101,3 @@ func (s *previousEventStatements) SelectPreviousEventExists( stmt := sqlutil.TxStmt(txn, s.selectPreviousEventExistsStmt) return stmt.QueryRowContext(ctx, eventID, eventReferenceSHA256).Scan(&ok) } - -// SelectPreviousEventNIDs returns all eventNIDs for a given eventID -func (s *previousEventStatements) SelectPreviousEventNIDs(ctx context.Context, txn *sql.Tx, eventID string) ([]types.EventNID, error) { - stmt := sqlutil.TxStmt(txn, s.selectPreviousEventNIDsStmt) - row := stmt.QueryRowContext(ctx, eventID) - var eventNIDs []uint8 - if err := row.Scan(&eventNIDs); err != nil { - return nil, err - } - result := []types.EventNID{} - for _, nid := range eventNIDs { - result = append(result, types.EventNID(nid)) - } - return result, nil -} diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go index 92a915cda..b255cfb3f 100644 --- a/roomserver/storage/shared/storage.go +++ b/roomserver/storage/shared/storage.go @@ -1153,10 +1153,6 @@ func (d *Database) ForgetRoom(ctx context.Context, userID, roomID string, forget }) } -func (d *Database) SelectPreviousEventNIDs(ctx context.Context, eventID string) ([]types.EventNID, error) { - return d.PrevEventsTable.SelectPreviousEventNIDs(ctx, nil, eventID) -} - // FIXME TODO: Remove all this - horrible dupe with roomserver/state. Can't use the original impl because of circular loops // it should live in this package! diff --git a/roomserver/storage/sqlite3/previous_events_table.go b/roomserver/storage/sqlite3/previous_events_table.go index 52af372b5..7304bf0d5 100644 --- a/roomserver/storage/sqlite3/previous_events_table.go +++ b/roomserver/storage/sqlite3/previous_events_table.go @@ -19,7 +19,6 @@ import ( "context" "database/sql" "fmt" - "strconv" "strings" "github.com/matrix-org/dendrite/internal/sqlutil" @@ -54,7 +53,7 @@ const insertPreviousEventSQL = ` const selectPreviousEventNIDsSQL = ` SELECT event_nids FROM roomserver_previous_events - WHERE previous_event_id = $1 + WHERE previous_event_id = $1 AND previous_reference_sha256 = $2 ` // Check if the event is referenced by another event in the table. @@ -130,24 +129,3 @@ func (s *previousEventStatements) SelectPreviousEventExists( stmt := sqlutil.TxStmt(txn, s.selectPreviousEventExistsStmt) return stmt.QueryRowContext(ctx, eventID, eventReferenceSHA256).Scan(&ok) } - -// SelectPreviousEventNIDs returns all eventNIDs for a given eventID -func (s *previousEventStatements) SelectPreviousEventNIDs(ctx context.Context, txn *sql.Tx, eventID string) ([]types.EventNID, error) { - stmt := sqlutil.TxStmt(txn, s.selectPreviousEventNIDsStmt) - row := stmt.QueryRowContext(ctx, eventID) - var eventNIDs string - if err := row.Scan(&eventNIDs); err != nil { - return nil, err - } - result := []types.EventNID{} - nids := strings.Split(eventNIDs, ",") - for _, nid := range nids { - i, err := strconv.Atoi(nid) - if err != nil { - return nil, err - } - result = append(result, types.EventNID(i)) - } - - return result, nil -} diff --git a/roomserver/storage/tables/interface.go b/roomserver/storage/tables/interface.go index 8f7e57932..e3fed700b 100644 --- a/roomserver/storage/tables/interface.go +++ b/roomserver/storage/tables/interface.go @@ -101,7 +101,6 @@ type PreviousEvents interface { // Check if the event reference exists // Returns sql.ErrNoRows if the event reference doesn't exist. SelectPreviousEventExists(ctx context.Context, txn *sql.Tx, eventID string, eventReferenceSHA256 []byte) error - SelectPreviousEventNIDs(ctx context.Context, txn *sql.Tx, eventID string) ([]types.EventNID, error) } type Invites interface {