Fix bug with RETURN DIFF in rpc methods

This commit is contained in:
Tobie Morgan Hitchcock 2020-09-21 09:20:22 +01:00
parent d8c53da443
commit 347e271984

View file

@ -155,17 +155,17 @@ func (r *rpc) Change(c *fibre.Context, class string, thing interface{}, data map
func (r *rpc) Modify(c *fibre.Context, class string, thing interface{}, data []interface{}) (interface{}, error) {
switch thing := thing.(type) {
case *fibre.RPCNull:
return db.Execute(c, "UPDATE $class DIFF $data RETURN DIFF", map[string]interface{}{
return db.Execute(c, "UPDATE $class DIFF $data RETURN AFTER", map[string]interface{}{
"class": sql.NewTable(class),
"data": data,
})
case []interface{}:
return db.Execute(c, "UPDATE $batch DIFF $data RETURN DIFF", map[string]interface{}{
return db.Execute(c, "UPDATE $batch DIFF $data RETURN AFTER", map[string]interface{}{
"batch": sql.NewBatch(class, thing),
"data": data,
})
default:
return db.Execute(c, "UPDATE $thing DIFF $data RETURN DIFF", map[string]interface{}{
return db.Execute(c, "UPDATE $thing DIFF $data RETURN AFTER", map[string]interface{}{
"thing": sql.NewThing(class, thing),
"data": data,
})