From 08dc3a1cdf2ffde03292f9bb09506b1e62c00ea8 Mon Sep 17 00:00:00 2001 From: Olayiwola Odunsi Date: Fri, 17 Dec 2021 16:40:31 +0100 Subject: [PATCH] [GH-19105] - Add helper function to handle columns on reserved names (#19107) Automatic Merge --- store/sqlstore/command_store.go | 13 ++----------- store/sqlstore/compliance_store.go | 13 ++----------- store/sqlstore/store.go | 8 ++++++++ 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/store/sqlstore/command_store.go b/store/sqlstore/command_store.go index cd827e4d1a..5f57c9e723 100644 --- a/store/sqlstore/command_store.go +++ b/store/sqlstore/command_store.go @@ -65,12 +65,7 @@ func (s SqlCommandStore) Save(command *model.Command) (*model.Command, error) { } // Trigger is a keyword - var trigger string - if s.DriverName() == model.DatabaseDriverPostgres { - trigger = `"trigger"` - } else { - trigger = "`Trigger`" - } + trigger := s.toReserveCase("trigger") if _, err := s.GetMasterX().NamedExec(`INSERT INTO Commands (Id, Token, CreateAt, UpdateAt, DeleteAt, CreatorId, TeamId, `+trigger+`, Method, Username, @@ -215,11 +210,7 @@ func (s SqlCommandStore) Update(cmd *model.Command) (*model.Command, error) { Where(sq.Eq{"Id": cmd.Id}) // Trigger is a keyword - if s.DriverName() == model.DatabaseDriverPostgres { - query = query.Set(`"trigger"`, cmd.Trigger) - } else { - query = query.Set("`Trigger`", cmd.Trigger) - } + query = query.Set(s.toReserveCase("trigger"), cmd.Trigger) queryString, args, err := query.ToSql() if err != nil { diff --git a/store/sqlstore/compliance_store.go b/store/sqlstore/compliance_store.go index 314d49a472..96ca4ac5c3 100644 --- a/store/sqlstore/compliance_store.go +++ b/store/sqlstore/compliance_store.go @@ -46,12 +46,7 @@ func (s SqlComplianceStore) Save(compliance *model.Compliance) (*model.Complianc } // DESC is a keyword - var desc string - if s.DriverName() == model.DatabaseDriverPostgres { - desc = `"desc"` - } else { - desc = "`Desc`" - } + desc := s.toReserveCase("desc") query := `INSERT INTO Compliances (Id, CreateAt, UserId, Status, Count, ` + desc + `, Type, StartAt, EndAt, Keywords, Emails) VALUES @@ -81,11 +76,7 @@ func (s SqlComplianceStore) Update(compliance *model.Compliance) (*model.Complia Where(sq.Eq{"Id": compliance.Id}) // DESC is a keyword - if s.DriverName() == model.DatabaseDriverPostgres { - query = query.Set(`"desc"`, compliance.Desc) - } else { - query = query.Set("`Desc`", compliance.Desc) - } + query = query.Set(s.toReserveCase("desc"), compliance.Desc) queryString, args, err := query.ToSql() if err != nil { diff --git a/store/sqlstore/store.go b/store/sqlstore/store.go index b27fe5a4ae..f7a8a235bb 100644 --- a/store/sqlstore/store.go +++ b/store/sqlstore/store.go @@ -1630,3 +1630,11 @@ func (ss *SqlStore) jsonDataType() string { } return "json" } + +func (ss *SqlStore) toReserveCase(str string) string { + if ss.DriverName() == model.DatabaseDriverPostgres { + return fmt.Sprintf("%q", str) + } + + return fmt.Sprintf("`%s`", strings.Title(str)) +}