MCPcopy
hub / github.com/mathaou/termdbms / GenerateQuery

Method GenerateQuery

database/sqlite.go:80–108  ·  view source on GitHub ↗
(u *Update)

Source from the content-addressed store, hash-verified

78}
79
80func (db *SQLite) GenerateQuery(u *Update) (string, []string) {
81 var (
82 query string
83 querySkeleton string
84 valueOrder []string
85 )
86
87 placeholder := db.GetPlaceholderForDatabaseType()
88
89 querySkeleton = fmt.Sprintf("UPDATE %s"+
90 " SET %s=%s ", u.TableName, u.Column, placeholder)
91 valueOrder = append(valueOrder, u.Column)
92
93 whereBuilder := strings.Builder{}
94 whereBuilder.WriteString(" WHERE ")
95 uLen := len(u.GetValues())
96 i := 0
97 for k := range u.GetValues() { // keep track of order since maps aren't deterministic
98 assertion := fmt.Sprintf("%s=%s ", k, placeholder)
99 valueOrder = append(valueOrder, k)
100 whereBuilder.WriteString(assertion)
101 if uLen > 1 && i < uLen-1 {
102 whereBuilder.WriteString("AND ")
103 }
104 i++
105 }
106 query = querySkeleton + strings.TrimSpace(whereBuilder.String()) + ";"
107 return query, valueOrder
108}

Callers 1

UpdateMethod · 0.95

Calls 3

GetValuesMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected