summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-10-19 13:24:16 +0100
committerSimon MacMullen <simon@rabbitmq.com>2010-10-19 13:24:16 +0100
commit595a7c5b73fe89b5916dc3fba1d75b8ce9189a1a (patch)
treef073b843d2fb5c01b97e68aec4c533e674fa54ce /src
parentfec42446f2b755b9eef1c4bfa0f6df8c7699bc2b (diff)
downloadrabbitmq-server-git-595a7c5b73fe89b5916dc3fba1d75b8ce9189a1a.tar.gz
Use mnesia:transform_table
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_upgrade.erl21
-rw-r--r--src/rabbit_upgrades.erl21
2 files changed, 12 insertions, 30 deletions
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 5f503fa244..62658fbbd1 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -31,7 +31,6 @@
-module(rabbit_upgrade).
-export([maybe_upgrade/1, write_version/1]).
--export([mnesia_alter_column/3]).
-include("rabbit.hrl").
@@ -69,26 +68,6 @@ write_version(Dir) ->
digraph:delete(G),
ok.
-%% -------------------------------------------------------------------
-
-mnesia_alter_column(Table, Column, Fun) ->
- {atomic, _} =
- mnesia:transaction(
- fun() ->
- [mnesia_alter_column_for_key(Table, Column, Key, Fun)
- || Key <- mnesia:all_keys(Table)]
- end),
- ok.
-
-mnesia_alter_column_for_key(Table, Column, Key, Fun) ->
- Vals = mnesia:read(Table, Key, write),
- ok = mnesia:delete(Table, Key, write),
- [mnesia_alter_column_for_value(Table, Column, Val, Fun) || Val <- Vals].
-
-mnesia_alter_column_for_value(Table, Column, Val, Fun) ->
- Val2 = setelement(Column + 1, Val, Fun(element(Column + 1, Val))),
- mnesia:write(Table, Val2, write).
-
%% Graphs ------------------------------------------------------------
load_graph() ->
diff --git a/src/rabbit_upgrades.erl b/src/rabbit_upgrades.erl
index 50c97bb6bb..17a232c304 100644
--- a/src/rabbit_upgrades.erl
+++ b/src/rabbit_upgrades.erl
@@ -38,15 +38,18 @@
%%--------------------------------------------------------------------
-%% TODO this is just a hack, on branch bug23319 this should use the real
-%% permission record
+%% TODO this is just a hack, when branch bug23319 is merged this should use
+%% the real permission record
-record(permission2, {configure, write, read}).
remove_user_scope() ->
- rabbit_upgrade:mnesia_alter_column(
- rabbit_user_permission, 2,
- fun({permission, _Scope, Conf, Write, Read}) ->
- #permission2{configure = Conf,
- write = Write,
- read = Read}
- end).
+ {atomic, ok} = mnesia:transform_table(
+ rabbit_user_permission,
+ fun(Perm = #user_permission{
+ permission = {permission, _Scope, Conf, Write, Read}}) ->
+ Perm#user_permission{
+ permission = #permission2{configure = Conf,
+ write = Write,
+ read = Read}}
+ end,
+ record_info(fields, user_permission)).