(values []interface{}, omitZero bool)
| 1136 | } |
| 1137 | |
| 1138 | func (q *Query) update(values []interface{}, omitZero bool) (Result, error) { |
| 1139 | if q.stickyErr != nil { |
| 1140 | return nil, q.stickyErr |
| 1141 | } |
| 1142 | |
| 1143 | model, err := q.newModel(values) |
| 1144 | if err != nil { |
| 1145 | return nil, err |
| 1146 | } |
| 1147 | |
| 1148 | c := q.ctx |
| 1149 | |
| 1150 | if q.tableModel != nil { |
| 1151 | c, err = q.tableModel.BeforeUpdate(c) |
| 1152 | if err != nil { |
| 1153 | return nil, err |
| 1154 | } |
| 1155 | } |
| 1156 | |
| 1157 | query := NewUpdateQuery(q, omitZero) |
| 1158 | res, err := q.returningQuery(c, model, query) |
| 1159 | if err != nil { |
| 1160 | return nil, err |
| 1161 | } |
| 1162 | |
| 1163 | if q.tableModel != nil { |
| 1164 | err = q.tableModel.AfterUpdate(c) |
| 1165 | if err != nil { |
| 1166 | return nil, err |
| 1167 | } |
| 1168 | } |
| 1169 | |
| 1170 | return res, nil |
| 1171 | } |
| 1172 | |
| 1173 | func (q *Query) returningQuery(c context.Context, model Model, query interface{}) (Result, error) { |
| 1174 | if !q.hasReturning() { |
no test coverage detected