[MM-62145] Migrating SELECT * queries for system_store.go (#29821)

* Step 1: Migrate any SELECT * queries written as strings into builder queries.

* Step 2: Migrate any instances of SELECT * into explicitly enumerating the needed columns

* revert `GetByName` to read from master as opposed to master.

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Matheus
2025-01-23 07:06:36 -08:00
коммит произвёл GitHub
родитель 835b276ff0
Коммит 291fe10784

Просмотреть файл

@@ -16,10 +16,14 @@ import (
type SqlSystemStore struct {
*SqlStore
systemSelectQuery sq.SelectBuilder
}
func newSqlSystemStore(sqlStore *SqlStore) store.SystemStore {
return &SqlSystemStore{sqlStore}
s := SqlSystemStore{SqlStore: sqlStore}
s.systemSelectQuery = s.getQueryBuilder().Select("Name", "Value").From("Systems")
return &s
}
func (s SqlSystemStore) Save(system *model.System) error {
@@ -68,7 +72,8 @@ func (s SqlSystemStore) Get() (model.StringMap, error) {
systems := []model.System{}
props := make(model.StringMap)
if err := s.GetReplica().Select(&systems, "SELECT * FROM Systems"); err != nil {
query := s.systemSelectQuery
if err := s.GetReplica().SelectBuilder(&systems, query); err != nil {
return nil, errors.Wrap(err, "failed to get System list")
}
@@ -81,7 +86,8 @@ func (s SqlSystemStore) Get() (model.StringMap, error) {
func (s SqlSystemStore) GetByName(name string) (*model.System, error) {
var system model.System
if err := s.GetMaster().Get(&system, "SELECT * FROM Systems WHERE Name = ?", name); err != nil {
query := s.systemSelectQuery.Where(sq.Eq{"Name": name})
if err := s.GetMaster().GetBuilder(&system, query); err != nil {
if err == sql.ErrNoRows {
return nil, store.NewErrNotFound("System", fmt.Sprintf("name=%s", system.Name))
}
@@ -112,8 +118,8 @@ func (s SqlSystemStore) InsertIfExists(system *model.System) (_ *model.System, e
defer finalizeTransactionX(tx, &err)
var origSystem model.System
if err := tx.Get(&origSystem, `SELECT * FROM Systems
WHERE Name = ?`, system.Name); err != nil && err != sql.ErrNoRows {
query := s.systemSelectQuery.Where(sq.Eq{"Name": system.Name})
if err := tx.GetBuilder(&origSystem, query); err != nil && err != sql.ErrNoRows {
return nil, errors.Wrapf(err, "failed to get system property with name=%s", system.Name)
}