diff --git a/mod/box/box.h b/mod/box/box.h index 5560b742d006c1aa9a7f98b27f8776a18b91f5e3..49fc7359e6096e13a16ff28be192a09591b84a39 100644 --- a/mod/box/box.h +++ b/mod/box/box.h @@ -123,7 +123,8 @@ enum box_mode { _(SELECT_LIMIT, 15) \ _(SELECT, 17) \ _(UPDATE_FIELDS, 19) \ - _(DELETE, 20) + _(DELETE_OLD, 20) \ + _(DELETE, 21) ENUM(messages, MESSAGES); diff --git a/mod/box/box.m b/mod/box/box.m index 420e0dd0678c7bfdbe1d2e6611e63b3fcc7a17b2..afb91ba229daf507cef3dd1c248b0f8ed269e1ab 100644 --- a/mod/box/box.m +++ b/mod/box/box.m @@ -773,7 +773,7 @@ txn_commit(struct box_txn *txn) unlock_tuples(txn); - if (txn->op == DELETE) + if (txn->op == DELETE_OLD || txn->op == DELETE) commit_delete(txn); else commit_replace(txn); @@ -823,6 +823,8 @@ box_dispatch(struct box_txn *txn, struct tbuf *data) break; case DELETE: + txn->flags |= read_u32(data) & BOX_ALLOWED_REQUEST_FLAGS; + case DELETE_OLD: key_len = read_u32(data); if (key_len != 1) tnt_raise(IllegalParams, :"key must be single valued");