diff options
author | Dan Gudmundsson <[email protected]> | 2014-11-26 11:10:13 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2014-11-26 11:10:13 +0100 |
commit | 3fe044dec08ccca9469c5d8b8bec1892072212f0 (patch) | |
tree | aee49993eac86ecfb81fc2ab00650c63d17ce6bf /lib/mnesia/src/mnesia.erl | |
parent | 748de459e6e3ff5cf574eb0d4be126aa2e529206 (diff) | |
parent | dff52d0b26869caab886c82f71f0b11cbcdd33b1 (diff) | |
download | otp-3fe044dec08ccca9469c5d8b8bec1892072212f0.tar.gz otp-3fe044dec08ccca9469c5d8b8bec1892072212f0.tar.bz2 otp-3fe044dec08ccca9469c5d8b8bec1892072212f0.zip |
Merge branch 'dgud/mnesia/match_object_bug/OTP-12304' into maint
* dgud/mnesia/match_object_bug/OTP-12304:
mnesia: Fix match_object bug
Diffstat (limited to 'lib/mnesia/src/mnesia.erl')
-rw-r--r-- | lib/mnesia/src/mnesia.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/mnesia/src/mnesia.erl b/lib/mnesia/src/mnesia.erl index b7d80c1370..8f14831ad3 100644 --- a/lib/mnesia/src/mnesia.erl +++ b/lib/mnesia/src/mnesia.erl @@ -1140,10 +1140,12 @@ match_object(_Tid, _Ts, Tab, Pat, _LockKind) -> add_written_match(S, Pat, Tab, Objs) -> Ops = find_ops(S, Tab, Pat), - add_match(Ops, Objs, val({Tab, setorbag})). + FixedRes = add_match(Ops, Objs, val({Tab, setorbag})), + MS = ets:match_spec_compile([{Pat, [], ['$_']}]), + ets:match_spec_run(FixedRes, MS). find_ops(S, Tab, Pat) -> - GetWritten = [{{{Tab, '_'}, Pat, write}, [], ['$_']}, + GetWritten = [{{{Tab, '_'}, '_', write}, [], ['$_']}, {{{Tab, '_'}, '_', delete}, [], ['$_']}, {{{Tab, '_'}, Pat, delete_object}, [], ['$_']}], ets:select(S, GetWritten). |