avoid SELECT * in link metadata store (#30833)
* avoid SELECT * in link metadata store * Address PR comment: define column names once and reuse
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
701ddc896a
Коммит
eb8aaba1bf
@@ -16,10 +16,28 @@ import (
|
||||
|
||||
type SqlLinkMetadataStore struct {
|
||||
*SqlStore
|
||||
|
||||
linkMetadataColumns []string
|
||||
linkMetadataQuery sq.SelectBuilder
|
||||
}
|
||||
|
||||
func newSqlLinkMetadataStore(sqlStore *SqlStore) store.LinkMetadataStore {
|
||||
return &SqlLinkMetadataStore{sqlStore}
|
||||
s := &SqlLinkMetadataStore{
|
||||
SqlStore: sqlStore,
|
||||
linkMetadataColumns: []string{
|
||||
"Hash",
|
||||
"URL",
|
||||
"Timestamp",
|
||||
"Type",
|
||||
"Data",
|
||||
},
|
||||
}
|
||||
|
||||
s.linkMetadataQuery = s.getQueryBuilder().
|
||||
Select(s.linkMetadataColumns...).
|
||||
From("LinkMetadata")
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
func (s SqlLinkMetadataStore) Save(metadata *model.LinkMetadata) (*model.LinkMetadata, error) {
|
||||
@@ -38,7 +56,7 @@ func (s SqlLinkMetadataStore) Save(metadata *model.LinkMetadata) (*model.LinkMet
|
||||
|
||||
query := s.getQueryBuilder().
|
||||
Insert("LinkMetadata").
|
||||
Columns("Hash", "URL", "Timestamp", "Type", "Data").
|
||||
Columns(s.linkMetadataColumns...).
|
||||
Values(metadata.Hash, metadata.URL, metadata.Timestamp, metadata.Type, metadataBytes)
|
||||
|
||||
if s.DriverName() == model.DatabaseDriverMysql {
|
||||
@@ -62,9 +80,7 @@ func (s SqlLinkMetadataStore) Save(metadata *model.LinkMetadata) (*model.LinkMet
|
||||
|
||||
func (s SqlLinkMetadataStore) Get(url string, timestamp int64) (*model.LinkMetadata, error) {
|
||||
var metadata model.LinkMetadata
|
||||
query, args, err := s.getQueryBuilder().
|
||||
Select("*").
|
||||
From("LinkMetadata").
|
||||
query, args, err := s.linkMetadataQuery.
|
||||
Where(sq.Eq{"URL": url, "Timestamp": timestamp}).
|
||||
ToSql()
|
||||
if err != nil {
|
||||
|
||||
Ссылка в новой задаче
Block a user