From 990f0a55295ce9690a1df76b07f49863e769fcc7 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 8 Jul 2026 19:02:19 +0100 Subject: [PATCH] chore(coderd/database): remove unused UpdateChatMessageByID query (#27099) Removes the `UpdateChatMessageByID` query. Its only non-generated reference was its own dbauthz coverage test, so it is dead code. > Generated by Coder Agents on behalf of @johnstcn. --- coderd/database/dbauthz/dbauthz.go | 16 -------- coderd/database/dbauthz/dbauthz_test.go | 17 -------- coderd/database/dbmetrics/querymetrics.go | 8 ---- coderd/database/dbmock/dbmock.go | 15 ------- coderd/database/querier.go | 1 - coderd/database/queries.sql.go | 49 ----------------------- coderd/database/queries/chats.sql | 11 ----- 7 files changed, 117 deletions(-) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 285e01e61e..dc54eebbe1 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -7289,22 +7289,6 @@ func (q *querier) UpdateChatMCPServerIDs(ctx context.Context, arg database.Updat return q.db.UpdateChatMCPServerIDs(ctx, arg) } -func (q *querier) UpdateChatMessageByID(ctx context.Context, arg database.UpdateChatMessageByIDParams) (database.ChatMessage, error) { - // Authorize update on the parent chat of the edited message. - msg, err := q.db.GetChatMessageByID(ctx, arg.ID) - if err != nil { - return database.ChatMessage{}, err - } - chat, err := q.db.GetChatByID(ctx, msg.ChatID) - if err != nil { - return database.ChatMessage{}, err - } - if err := q.authorizeContext(ctx, policy.ActionUpdate, chat); err != nil { - return database.ChatMessage{}, err - } - return q.db.UpdateChatMessageByID(ctx, arg) -} - func (q *querier) UpdateChatModelConfig(ctx context.Context, arg database.UpdateChatModelConfigParams) (database.ChatModelConfig, error) { if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceDeploymentConfig); err != nil { return database.ChatModelConfig{}, err diff --git a/coderd/database/dbauthz/dbauthz_test.go b/coderd/database/dbauthz/dbauthz_test.go index a98bf28ba6..746fa73f63 100644 --- a/coderd/database/dbauthz/dbauthz_test.go +++ b/coderd/database/dbauthz/dbauthz_test.go @@ -1472,23 +1472,6 @@ func (s *MethodTestSuite) TestChats() { dbm.EXPECT().UpdateChatHeartbeats(gomock.Any(), arg).Return([]uuid.UUID{resultID}, nil).AnyTimes() check.Args(arg).Asserts(rbac.ResourceChat, policy.ActionUpdate).Returns([]uuid.UUID{resultID}) })) - s.Run("UpdateChatMessageByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { - chat := testutil.Fake(s.T(), faker, database.Chat{}) - msg := testutil.Fake(s.T(), faker, database.ChatMessage{ChatID: chat.ID}) - arg := database.UpdateChatMessageByIDParams{ - ID: msg.ID, - ModelConfigID: uuid.NullUUID{UUID: uuid.New(), Valid: true}, - Content: pqtype.NullRawMessage{ - RawMessage: json.RawMessage(`{"blocks":[{"type":"text","text":"updated"}]}`), - Valid: true, - }, - } - updated := testutil.Fake(s.T(), faker, database.ChatMessage{ID: msg.ID, ChatID: chat.ID}) - dbm.EXPECT().GetChatMessageByID(gomock.Any(), msg.ID).Return(msg, nil).AnyTimes() - dbm.EXPECT().GetChatByID(gomock.Any(), chat.ID).Return(chat, nil).AnyTimes() - dbm.EXPECT().UpdateChatMessageByID(gomock.Any(), arg).Return(updated, nil).AnyTimes() - check.Args(arg).Asserts(chat, policy.ActionUpdate).Returns(updated) - })) s.Run("UpdateChatModelConfig", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { config := testutil.Fake(s.T(), faker, database.ChatModelConfig{}) arg := database.UpdateChatModelConfigParams{ diff --git a/coderd/database/dbmetrics/querymetrics.go b/coderd/database/dbmetrics/querymetrics.go index 1558c2edb9..e54a8a5936 100644 --- a/coderd/database/dbmetrics/querymetrics.go +++ b/coderd/database/dbmetrics/querymetrics.go @@ -5185,14 +5185,6 @@ func (m queryMetricsStore) UpdateChatMCPServerIDs(ctx context.Context, arg datab return r0, r1 } -func (m queryMetricsStore) UpdateChatMessageByID(ctx context.Context, arg database.UpdateChatMessageByIDParams) (database.ChatMessage, error) { - start := time.Now() - r0, r1 := m.s.UpdateChatMessageByID(ctx, arg) - m.queryLatencies.WithLabelValues("UpdateChatMessageByID").Observe(time.Since(start).Seconds()) - m.queryCounts.WithLabelValues(httpmw.ExtractHTTPRoute(ctx), httpmw.ExtractHTTPMethod(ctx), "UpdateChatMessageByID").Inc() - return r0, r1 -} - func (m queryMetricsStore) UpdateChatModelConfig(ctx context.Context, arg database.UpdateChatModelConfigParams) (database.ChatModelConfig, error) { start := time.Now() r0, r1 := m.s.UpdateChatModelConfig(ctx, arg) diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go index bc28a85093..521160833e 100644 --- a/coderd/database/dbmock/dbmock.go +++ b/coderd/database/dbmock/dbmock.go @@ -9771,21 +9771,6 @@ func (mr *MockStoreMockRecorder) UpdateChatMCPServerIDs(ctx, arg any) *gomock.Ca return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateChatMCPServerIDs", reflect.TypeOf((*MockStore)(nil).UpdateChatMCPServerIDs), ctx, arg) } -// UpdateChatMessageByID mocks base method. -func (m *MockStore) UpdateChatMessageByID(ctx context.Context, arg database.UpdateChatMessageByIDParams) (database.ChatMessage, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateChatMessageByID", ctx, arg) - ret0, _ := ret[0].(database.ChatMessage) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateChatMessageByID indicates an expected call of UpdateChatMessageByID. -func (mr *MockStoreMockRecorder) UpdateChatMessageByID(ctx, arg any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateChatMessageByID", reflect.TypeOf((*MockStore)(nil).UpdateChatMessageByID), ctx, arg) -} - // UpdateChatModelConfig mocks base method. func (m *MockStore) UpdateChatModelConfig(ctx context.Context, arg database.UpdateChatModelConfigParams) (database.ChatModelConfig, error) { m.ctrl.T.Helper() diff --git a/coderd/database/querier.go b/coderd/database/querier.go index 85e4599b02..cd644a6307 100644 --- a/coderd/database/querier.go +++ b/coderd/database/querier.go @@ -1370,7 +1370,6 @@ type sqlcQuerier interface { // Two summary workers using the same freshness marker are last-write-wins. UpdateChatLastTurnSummary(ctx context.Context, arg UpdateChatLastTurnSummaryParams) (int64, error) UpdateChatMCPServerIDs(ctx context.Context, arg UpdateChatMCPServerIDsParams) (Chat, error) - UpdateChatMessageByID(ctx context.Context, arg UpdateChatMessageByIDParams) (ChatMessage, error) UpdateChatModelConfig(ctx context.Context, arg UpdateChatModelConfigParams) (ChatModelConfig, error) UpdateChatPinOrder(ctx context.Context, arg UpdateChatPinOrderParams) error UpdateChatPlanModeByID(ctx context.Context, arg UpdateChatPlanModeByIDParams) (Chat, error) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 83f4fe96a0..4447961b39 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -11644,55 +11644,6 @@ func (q *sqlQuerier) UpdateChatMCPServerIDs(ctx context.Context, arg UpdateChatM return i, err } -const updateChatMessageByID = `-- name: UpdateChatMessageByID :one -UPDATE - chat_messages -SET - model_config_id = COALESCE($1::uuid, model_config_id), - content = $2::jsonb -WHERE - id = $3::bigint -RETURNING - id, chat_id, model_config_id, created_at, role, content, visibility, input_tokens, output_tokens, total_tokens, reasoning_tokens, cache_creation_tokens, cache_read_tokens, context_limit, compressed, created_by, content_version, total_cost_micros, runtime_ms, deleted, provider_response_id, api_key_id, revision -` - -type UpdateChatMessageByIDParams struct { - ModelConfigID uuid.NullUUID `db:"model_config_id" json:"model_config_id"` - Content pqtype.NullRawMessage `db:"content" json:"content"` - ID int64 `db:"id" json:"id"` -} - -func (q *sqlQuerier) UpdateChatMessageByID(ctx context.Context, arg UpdateChatMessageByIDParams) (ChatMessage, error) { - row := q.db.QueryRowContext(ctx, updateChatMessageByID, arg.ModelConfigID, arg.Content, arg.ID) - var i ChatMessage - err := row.Scan( - &i.ID, - &i.ChatID, - &i.ModelConfigID, - &i.CreatedAt, - &i.Role, - &i.Content, - &i.Visibility, - &i.InputTokens, - &i.OutputTokens, - &i.TotalTokens, - &i.ReasoningTokens, - &i.CacheCreationTokens, - &i.CacheReadTokens, - &i.ContextLimit, - &i.Compressed, - &i.CreatedBy, - &i.ContentVersion, - &i.TotalCostMicros, - &i.RuntimeMs, - &i.Deleted, - &i.ProviderResponseID, - &i.APIKeyID, - &i.Revision, - ) - return i, err -} - const updateChatPinOrder = `-- name: UpdateChatPinOrder :exec WITH target_chat AS ( SELECT diff --git a/coderd/database/queries/chats.sql b/coderd/database/queries/chats.sql index f6b0aba7d4..f5458a835a 100644 --- a/coderd/database/queries/chats.sql +++ b/coderd/database/queries/chats.sql @@ -860,17 +860,6 @@ SELECT RETURNING *; --- name: UpdateChatMessageByID :one -UPDATE - chat_messages -SET - model_config_id = COALESCE(sqlc.narg('model_config_id')::uuid, model_config_id), - content = sqlc.narg('content')::jsonb -WHERE - id = @id::bigint -RETURNING - *; - -- name: UpdateChatByID :one WITH updated_chat AS ( UPDATE