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 {
|
type SqlLinkMetadataStore struct {
|
||||||
*SqlStore
|
*SqlStore
|
||||||
|
|
||||||
|
linkMetadataColumns []string
|
||||||
|
linkMetadataQuery sq.SelectBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
func newSqlLinkMetadataStore(sqlStore *SqlStore) store.LinkMetadataStore {
|
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) {
|
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().
|
query := s.getQueryBuilder().
|
||||||
Insert("LinkMetadata").
|
Insert("LinkMetadata").
|
||||||
Columns("Hash", "URL", "Timestamp", "Type", "Data").
|
Columns(s.linkMetadataColumns...).
|
||||||
Values(metadata.Hash, metadata.URL, metadata.Timestamp, metadata.Type, metadataBytes)
|
Values(metadata.Hash, metadata.URL, metadata.Timestamp, metadata.Type, metadataBytes)
|
||||||
|
|
||||||
if s.DriverName() == model.DatabaseDriverMysql {
|
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) {
|
func (s SqlLinkMetadataStore) Get(url string, timestamp int64) (*model.LinkMetadata, error) {
|
||||||
var metadata model.LinkMetadata
|
var metadata model.LinkMetadata
|
||||||
query, args, err := s.getQueryBuilder().
|
query, args, err := s.linkMetadataQuery.
|
||||||
Select("*").
|
|
||||||
From("LinkMetadata").
|
|
||||||
Where(sq.Eq{"URL": url, "Timestamp": timestamp}).
|
Where(sq.Eq{"URL": url, "Timestamp": timestamp}).
|
||||||
ToSql()
|
ToSql()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user