MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / Update

Function Update

cmd/cql-proxy/resolver/query_builder.go:98–135  ·  view source on GitHub ↗

Update process update query with filter and update object like a mongodb.

(table string, availFields FieldMap, filter map[string]interface{},
	update map[string]interface{}, justOne bool)

Source from the content-addressed store, hash-verified

96
97// Update process update query with filter and update object like a mongodb.
98func Update(table string, availFields FieldMap, filter map[string]interface{},
99 update map[string]interface{}, justOne bool) (
100 statement string, args []interface{}, fields FieldMap, err error) {
101 fields = FieldMap{}
102
103 statement = `UPDATE "` + table + `" `
104
105 // update set segment
106 updateFields, updateStatement, updateArgs, err := ResolveUpdate(update, availFields)
107 if err != nil {
108 err = errors.Wrapf(err, "resolve query update data failed")
109 return
110 }
111 fields.Merge(updateFields)
112 statement += updateStatement
113 args = append(args, updateArgs...)
114
115 // update filter statement
116 filterFields, filterStatement, filterArgs, err := ResolveFilter(filter, availFields)
117 if err != nil {
118 err = errors.Wrapf(err, "resolve query filter failed")
119 return
120 }
121
122 fields.Merge(filterFields)
123 args = append(args, filterArgs...)
124
125 if filterStatement != "" {
126 statement += " WHERE "
127 statement += filterStatement
128 }
129
130 if justOne {
131 statement += " LIMIT 1"
132 }
133
134 return
135}
136
137// Remove process remove query with filter like a mongodb.
138func Remove(table string, availFields FieldMap, filter map[string]interface{}, justOne bool) (

Callers 1

userDataUpdateFunction · 0.92

Calls 3

ResolveUpdateFunction · 0.85
ResolveFilterFunction · 0.85
MergeMethod · 0.80

Tested by

no test coverage detected