File 0712-Polish-mnesia-user-guide.patch of Package erlang

From ec312d2dfe5f09650425f942e5e022eda80a1420 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20W=C4=85sowski?= <michal@erlang.org>
Date: Mon, 16 Dec 2024 17:15:20 +0100
Subject: [PATCH] Polish mnesia user guide

---
 lib/mnesia/doc/guides/mnesia_app_a.md |  76 ++++----
 lib/mnesia/doc/guides/mnesia_app_b.md | 242 +++++++++++++-------------
 lib/mnesia/doc/guides/mnesia_app_c.md | 113 ++++++------
 lib/mnesia/doc/guides/mnesia_chap2.md | 127 +++++++-------
 lib/mnesia/doc/guides/mnesia_chap3.md |  20 +--
 lib/mnesia/doc/guides/mnesia_chap4.md |   4 +-
 lib/mnesia/doc/guides/mnesia_chap5.md |  91 +++++-----
 lib/mnesia/doc/guides/mnesia_chap7.md |  34 ++--
 lib/mnesia/doc/src/bup.erl            |  98 +++++------
 lib/mnesia/doc/src/company.erl        | 186 ++++++++++----------
 lib/mnesia/doc/src/company_o.erl      |  48 ++---
 lib/mnesia/doc/src/company_o.hrl      |  17 +-
 lib/mnesia/src/mnesia.erl             |   2 +-
 13 files changed, 532 insertions(+), 526 deletions(-)

diff --git a/lib/mnesia/doc/src/bup.erl b/lib/mnesia/doc/src/bup.erl
index 9815dc1795..40c88bb0e6 100644
--- a/lib/mnesia/doc/src/bup.erl
+++ b/lib/mnesia/doc/src/bup.erl
@@ -25,8 +25,8 @@
         ]).
 
 -export([
-	 count/1,
-	 display/1
+         count/1,
+         display/1
         ]).
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -40,9 +40,7 @@ change_node_name(Mod, From, To, Source, Target) ->
            (Node) -> Node
         end,
     Convert =
-        fun({schema, db_nodes, Nodes}, Acc) ->
-                {[{schema, db_nodes, lists:map(Switch,Nodes)}], Acc};
-           ({schema, version, Version}, Acc) ->
+        fun({schema, version, Version}, Acc) ->
                 {[{schema, version, Version}], Acc};
            ({schema, cookie, Cookie}, Acc) ->
                 {[{schema, cookie, Cookie}], Acc};
@@ -84,21 +82,21 @@ test() ->
 
 test(Nodes)->
     AllNodes = (Nodes -- [node()]) ++ [node()],
-    case length(AllNodes)  of
+    case length(AllNodes) of
         Length when Length > 1 ->
-	    OldBup = "old.BUP",
-	    NewBup = "new.BUP",
+            OldBup = "old.BUP",
+            NewBup = "new.BUP",
             Res = (catch test2(AllNodes, OldBup, NewBup)),
-	    case Res of
+            case Res of
                 {'EXIT', Reason} ->
-		    file:delete(OldBup),
-		    file:delete(NewBup),
-		    {error, Reason};
+                    file:delete(OldBup),
+                    file:delete(NewBup),
+                    {error, Reason};
                 ok ->
-		    ok = count(NewBup),
-		    file:delete(OldBup),
-		    file:delete(NewBup),
-		    ok
+                    ok = count(NewBup),
+                    file:delete(OldBup),
+                    file:delete(NewBup),
+                    ok
             end;
         _ ->
             {error,{"Must run on at least one other node",AllNodes}}
@@ -159,15 +157,15 @@ count(BupFile) ->
     Mod = mnesia:system_info(backup_module),
     State = #state{counter_tab = CounterTab, size_tab = SizeTab},
     case mnesia:traverse_backup(BupFile, Mod, dummy, read_only, fun incr/2, State) of
-	{ok, State2} ->
-	    Res = display(State2),
-	    ets:delete(CounterTab),
-	    ets:delete(SizeTab),
-	    Res;
-	{error, Reason} ->	
-	    ets:delete(CounterTab),
-	    ets:delete(SizeTab),
-	    {error, Reason}
+        {ok, State2} ->
+            Res = display(State2),
+            ets:delete(CounterTab),
+            ets:delete(SizeTab),
+            Res;
+        {error, Reason} ->	
+            ets:delete(CounterTab),
+            ets:delete(SizeTab),
+            {error, Reason}
     end.
 
 incr(Rec, State) ->
@@ -184,20 +182,20 @@ incr(Rec, State) ->
 
 incr_counter(T, Counter) ->
     case catch ets:update_counter(T, Counter, 1) of
-	{'EXIT', _} ->
-	    ets:insert(T, {Counter, 1});
-	_ ->
-	    ignore
+        {'EXIT', _} ->
+            ets:insert(T, {Counter, 1});
+        _ ->
+            ignore
     end.
 
 max_size(T, Tab, Key, Size) ->
     case catch ets:lookup_element(T, Tab, 2) of
-	{'EXIT', _} ->
-	    ets:insert(T, {Tab, Size, Key});
-	OldSize when OldSize < Size ->
-	    ets:insert(T, {Tab, Size, Key});
-	_ ->
-	    ignore
+        {'EXIT', _} ->
+            ets:insert(T, {Tab, Size, Key});
+        OldSize when OldSize < Size ->
+            ets:insert(T, {Tab, Size, Key});
+        _ ->
+            ignore
     end.
 
 %% Displays the statistics found in the ets table
@@ -205,20 +203,20 @@ display(State) ->
     CounterTab = State#state.counter_tab,
     Tabs = [T || {{_, T}, _} <- match_tab(CounterTab, schema)],
     io:format("~w tables with totally: ~w records, ~w keys, ~w bytes~n",
-	      [length(Tabs),
-	       State#state.n_records,
-	       ets:info(CounterTab, size),
-	       State#state.acc_size]),	       
+              [length(Tabs),
+               State#state.n_records,
+               ets:info(CounterTab, size),
+               State#state.acc_size]),
     display(State, lists:sort(Tabs)).
 
 display(State, [Tab | Tabs]) ->
     Counters = match_tab(State#state.counter_tab, Tab),
     io:format("~-10w     records in table ~w~n", [length(Counters), Tab]),
     Fun = fun({_Oid, Val}) when Val < 5 ->
-		  ignore;
-	     ({Oid, Val}) ->
-		  io:format("~-10w *** records with key ~w~n", [Val, Oid])
-	  end,
+                  ignore;
+             ({Oid, Val}) ->
+                  io:format("~-10w *** records with key ~w~n", [Val, Oid])
+          end,
     lists:foreach(Fun, Counters),
     display_size(State#state.size_tab, Tab),
     display(State, Tabs);
@@ -230,11 +228,11 @@ match_tab(T, Tab) ->
 
 display_size(T, Tab) ->
     case catch ets:lookup(T, Tab) of
-	[] ->
-	    ignore;
-	[{_, Size, Key}] when Size > 1000 ->
-	    io:format("~-10w --- bytes occupied by largest record ~w~n",
-		      [Size, {Tab, Key}]);
-	[{_, _, _}] ->
-	    ignore
+        [] ->
+            ignore;
+        [{_, Size, Key}] when Size > 1000 ->
+            io:format("~-10w --- bytes occupied by largest record ~w~n",
+                      [Size, {Tab, Key}]);
+        [{_, _, _}] ->
+            ignore
     end.
diff --git a/lib/mnesia/doc/src/company.erl b/lib/mnesia/doc/src/company.erl
index fc04aa77bf..af298d23c5 100644
--- a/lib/mnesia/doc/src/company.erl
+++ b/lib/mnesia/doc/src/company.erl
@@ -46,7 +46,7 @@ init() ->
                                   {attributes, record_info(fields, in_proj)}]).
 
 %0
-    
+
 %1
 
 insert_emp(Emp, DeptId, ProjNames) ->
@@ -64,24 +64,24 @@ mk_projs(Ename, [ProjName|Tail]) ->
     mnesia:write(#in_proj{emp = Ename, proj_name = ProjName}),
     mk_projs(Ename, Tail);
 mk_projs(_, []) -> ok.
-    
+
 
 %1
 
 %2
 females() ->
     F = fun() ->
-		Q = qlc:q([E#employee.name || E <- mnesia:table(employee),
-					      E#employee.sex == female]),
-		qlc:e(Q)
-	end,
+                Q = qlc:q([E#employee.name || E <- mnesia:table(employee),
+                                              E#employee.sex == female]),
+                qlc:e(Q)
+        end,
     mnesia:transaction(F).
 %2
 %20
 all_females() ->
     F = fun() ->
-		Female = #employee{sex = female, name = '$1', _ = '_'},
-		mnesia:select(employee, [{Female, [], ['$1']}])
+                Female = #employee{sex = female, name = '$1', _ = '_'},
+                mnesia:select(employee, [{Female, [], ['$1']}])
         end,
     mnesia:transaction(F).
 %20
@@ -91,17 +91,17 @@ g() -> l.
 %3
 female_bosses() ->
     H1 = qlc:q( [{Atdep#at_dep.dept_id,E} ||
-		    E <- mnesia:table(employee),
-		    E#employee.sex == female,
-		    Atdep <- mnesia:table(at_dep),
-		    Atdep#at_dep.emp == E#employee.emp_no]
+                    E <- mnesia:table(employee),
+                    E#employee.sex == female,
+                    Atdep <- mnesia:table(at_dep),
+                    Atdep#at_dep.emp == E#employee.emp_no]
               ),
 
     H2 = qlc:q( [{Mgr#manager.emp,E} ||
-		    {AtdepDeptId, E} <- H1,
-		    Mgr <- mnesia:table(manager),
-		    AtdepDeptId == Mgr#manager.dept]
-	      ),
+                    {AtdepDeptId, E} <- H1,
+                    Mgr <- mnesia:table(manager),
+                    AtdepDeptId == Mgr#manager.dept]
+              ),
 
     Q = qlc:q( [{E#employee.name, Boss#employee.name} ||
                    {MgrEmp,E} <- H2,
@@ -116,7 +116,7 @@ raise_females(Amount) ->
     F = fun() ->
                 Q = qlc:q([E || E <- mnesia:table(employee),
                                 E#employee.sex == female]),
-		Fs = qlc:e(Q),
+                Fs = qlc:e(Q),
                 over_write(Fs, Amount)
         end,
     mnesia:transaction(F).
@@ -153,16 +153,16 @@ bad_raise(Eno, Raise) ->
         end,
     mnesia:transaction(F).
 %6
-                       
+
 %9
 get_emps(Salary, Dep) ->
-    Q = qlc:q( 
+    Q = qlc:q(
           [E || E <- mnesia:table(employee),
                 At <- mnesia:table(at_dep),
                 E#employee.salary > Salary,
                 E#employee.emp_no == At#at_dep.emp,
                 At#at_dep.dept_id == Dep]
-	 ),
+         ),
     F = fun() -> qlc:e(Q) end,
     mnesia:transaction(F).
 %9
@@ -177,7 +177,7 @@ get_emps2(Salary, Dep) ->
                 filter_deps(High, Alldeps, Dep)
         end,
     mnesia:transaction(F).
-                
+
 
 filter([E|Tail], Salary) ->
     if 
@@ -212,7 +212,7 @@ search_deps(_Name, _Tail, _Dep) ->
 %10
 
 
-                
+
 %11
 bench1() ->
     Me = #employee{emp_no= 104732,
@@ -236,33 +236,33 @@ dotimes(I, F) ->
     F(), dotimes(I-1, F).
 
 %11
-    
-    
 
-    
-            
+
+
+
+
 %12
 
 dist_init() ->
     mnesia:create_table(employee,
-                         [{ram_copies, [a@gin, b@skeppet]},
-                          {attributes, record_info(fields,
-						   employee)}]),
+                        [{ram_copies, [a@gin, b@skeppet]},
+                         {attributes, record_info(fields,
+                                                  employee)}]),
     mnesia:create_table(dept,
-                         [{ram_copies, [a@gin, b@skeppet]},
-                          {attributes, record_info(fields, dept)}]),
+                        [{ram_copies, [a@gin, b@skeppet]},
+                         {attributes, record_info(fields, dept)}]),
     mnesia:create_table(project,
-                         [{ram_copies, [a@gin, b@skeppet]},
-                          {attributes, record_info(fields, project)}]),
-    mnesia:create_table(manager, [{type, bag}, 
+                        [{ram_copies, [a@gin, b@skeppet]},
+                         {attributes, record_info(fields, project)}]),
+    mnesia:create_table(manager, [{type, bag},
                                   {ram_copies, [a@gin, b@skeppet]},
                                   {attributes, record_info(fields,
-							   manager)}]),
+                                                           manager)}]),
     mnesia:create_table(at_dep,
-                         [{ram_copies, [a@gin, b@skeppet]},
-                          {attributes, record_info(fields, at_dep)}]),
+                        [{ram_copies, [a@gin, b@skeppet]},
+                         {attributes, record_info(fields, at_dep)}]),
     mnesia:create_table(in_proj,
-                        [{type, bag}, 
+                        [{type, bag},
                          {ram_copies, [a@gin, b@skeppet]},
                          {attributes, record_info(fields, in_proj)}]).
 %12
@@ -271,8 +271,8 @@ dist_init() ->
 remove_proj(ProjName) ->
     F = fun() ->
                 Ip = qlc:e(qlc:q([X || X <- mnesia:table(in_proj),
-				       X#in_proj.proj_name == ProjName]
-				)),
+                                       X#in_proj.proj_name == ProjName]
+                                )),
                 mnesia:delete({project, ProjName}),
                 del_in_projs(Ip)
         end,
@@ -284,7 +284,7 @@ del_in_projs([Ip|Tail]) ->
 del_in_projs([]) ->
     done.
 %13
-        
+
 %14
 sync() ->
     case mnesia:wait_for_tables(tabs(), 10000) of
@@ -314,69 +314,69 @@ panic(X) -> exit({panic, X}).
 
 
 fill_tables() ->
-    Emps = 
+    Emps =
         [
-	 {employee, 104465, "Johnson Torbjorn",   1, male, 99184, {242,038}},
-	 {employee, 107912, "Carlsson Tuula",     2, female,94556, {242,056}},
-	 {employee, 114872, "Dacker Bjarne",      3, male, 99415, {221,035}},
-	 {employee, 104531, "Nilsson Hans",       3, male, 99495, {222,026}},
-	 {employee, 104659, "Tornkvist Torbjorn", 2, male, 99514, {222,022}},
-	 {employee, 104732, "Wikstrom Claes",     2, male, 99586, {221,015}},
-	 {employee, 117716, "Fedoriw Anna",       1, female,99143, {221,031}},
-	 {employee, 115018, "Mattsson Hakan",     3, male, 99251, {203,348}}
+         {employee, 104465, "Johnson Torbjorn",   1, male, 99184, {242,038}},
+         {employee, 107912, "Carlsson Tuula",     2, female,94556, {242,056}},
+         {employee, 114872, "Dacker Bjarne",      3, male, 99415, {221,035}},
+         {employee, 104531, "Nilsson Hans",       3, male, 99495, {222,026}},
+         {employee, 104659, "Tornkvist Torbjorn", 2, male, 99514, {222,022}},
+         {employee, 104732, "Wikstrom Claes",     2, male, 99586, {221,015}},
+         {employee, 117716, "Fedoriw Anna",       1, female,99143, {221,031}},
+         {employee, 115018, "Mattsson Hakan",     3, male, 99251, {203,348}}
         ],
 
     Dept = [
-	    {dept, 'B/SF',  "Open Telecom Platform"},
-	    {dept, 'B/SFP', "OTP - Product Development"},
-	    {dept, 'B/SFR', "Computer Science Laboratory"}
-	   ],
+            {dept, 'B/SF',  "Open Telecom Platform"},
+            {dept, 'B/SFP', "OTP - Product Development"},
+            {dept, 'B/SFR', "Computer Science Laboratory"}
+           ],
 
     Projects = [
-		{project, erlang, 1},
-		{project, otp, 2},
-		{project, beam, 3},
-		{project, mnesia, 5},
-		{project, wolf, 6},
-		{project, documentation, 7},
-		{project, www, 8}
-	       ],
+                {project, erlang, 1},
+                {project, otp, 2},
+                {project, beam, 3},
+                {project, mnesia, 5},
+                {project, wolf, 6},
+                {project, documentation, 7},
+                {project, www, 8}
+               ],
 
     Manager = [
-	       {manager, 104465, 'B/SF'},
-	       {manager, 104465, 'B/SFP'},
-	       {manager, 114872, 'B/SFR'}
-	      ],
+               {manager, 104465, 'B/SF'},
+               {manager, 104465, 'B/SFP'},
+               {manager, 114872, 'B/SFR'}
+              ],
 
     At_dep = [
-	      {at_dep, 104465, 'B/SF'},
-	      {at_dep, 107912, 'B/SF'},
-	      {at_dep, 114872, 'B/SFR'},
-	      {at_dep, 104531, 'B/SFR'},
-	      {at_dep, 104659, 'B/SFR'},
-	      {at_dep, 104732, 'B/SFR'},
-	      {at_dep, 117716, 'B/SFP'},
-	      {at_dep, 115018, 'B/SFP'}
-	     ],
+              {at_dep, 104465, 'B/SF'},
+              {at_dep, 107912, 'B/SF'},
+              {at_dep, 114872, 'B/SFR'},
+              {at_dep, 104531, 'B/SFR'},
+              {at_dep, 104659, 'B/SFR'},
+              {at_dep, 104732, 'B/SFR'},
+              {at_dep, 117716, 'B/SFP'},
+              {at_dep, 115018, 'B/SFP'}
+             ],
 
     In_proj = [
-	       {in_proj, 104465, otp},
-	       {in_proj, 107912, otp},
-	       {in_proj, 114872, otp},
-	       {in_proj, 104531, otp},
-	       {in_proj, 104531, mnesia},
-	       {in_proj, 104545, wolf},
-	       {in_proj, 104659, otp},
-	       {in_proj, 104659, wolf},
-	       {in_proj, 104732, otp},
-	       {in_proj, 104732, mnesia},
-	       {in_proj, 104732, erlang},
-	       {in_proj, 117716, otp},
-	       {in_proj, 117716, documentation},
-	       {in_proj, 115018, otp},
-	       {in_proj, 115018, mnesia}
-	      ],
-    
+               {in_proj, 104465, otp},
+               {in_proj, 107912, otp},
+               {in_proj, 114872, otp},
+               {in_proj, 104531, otp},
+               {in_proj, 104531, mnesia},
+               {in_proj, 104545, wolf},
+               {in_proj, 104659, otp},
+               {in_proj, 104659, wolf},
+               {in_proj, 104732, otp},
+               {in_proj, 104732, mnesia},
+               {in_proj, 104732, erlang},
+               {in_proj, 117716, otp},
+               {in_proj, 117716, documentation},
+               {in_proj, 115018, otp},
+               {in_proj, 115018, mnesia}
+              ],
+
     [mnesia:dirty_write(W) || W <- Emps],
     [mnesia:dirty_write(W) || W <- Dept],
     [mnesia:dirty_write(W) || W <- Projects],
@@ -384,5 +384,5 @@ fill_tables() ->
     [mnesia:dirty_write(W) || W <- Manager],
     [mnesia:dirty_write(W) || W <- At_dep],
     [mnesia:dirty_write(W) || W <- In_proj],
-    
+
     ok.
diff --git a/lib/mnesia/doc/src/company_o.erl b/lib/mnesia/doc/src/company_o.erl
index b4b3638596..37cbe10b11 100644
--- a/lib/mnesia/doc/src/company_o.erl
+++ b/lib/mnesia/doc/src/company_o.erl
@@ -44,50 +44,50 @@ init() ->
                         [{attributes, record_info(fields, project)}]).
 
 %0
-    
+
 
 
 %1
 
 insert_emp(Emp, DeptId, ProjNames) ->
     Fun = fun() ->
-                  mnesia:write(Emp#employee{dept = DeptId, 
-					    projects = ProjNames})
+                  mnesia:write(Emp#employee{dept = DeptId,
+                                            projects = ProjNames})
           end,
     mnesia:transaction(Fun).
 
 
 %1
- 
+
 %2
 females() ->
     F = fun() ->
-		Q = qlc:q([E#employee.name || E <- mnesia:table(employee),
-					      E#employee.sex == female]),
-		qlc:e(Q)
-	end,
+                Q = qlc:q([E#employee.name || E <- mnesia:table(employee),
+                                              E#employee.sex == female]),
+                qlc:e(Q)
+        end,
     mnesia:transaction(F).
 %2
 
 %3
 female_bosses() ->
-    F = fun() -> qlc:e(qlc:q( 
-			 [{E#employee.name, Boss#employee.name} ||
-			     E <- mnesia:table(employee),
-			     Boss <- mnesia:table(employee),
-			     Boss#employee.emp_no == E#employee.manager,
-			     E#employee.sex == female]
-			))
+    F = fun() -> qlc:e(qlc:q(
+                         [{E#employee.name, Boss#employee.name} ||
+                             E <- mnesia:table(employee),
+                             Boss <- mnesia:table(employee),
+                             Boss#employee.emp_no == E#employee.manager,
+                             E#employee.sex == female]
+                        ))
         end,
     mnesia:transaction(F).
 
-                    
+
 %4
 raise_females(Amount) ->
     F = fun() ->
-		Q = qlc:q([E || E <- mnesia:table(employee),
+                Q = qlc:q([E || E <- mnesia:table(employee),
                                 E#employee.sex == female]),
-		Fs = qlc:e(Q),
+                Fs = qlc:e(Q),
                 over_write(Fs, Amount)
         end,
     mnesia:transaction(F).
@@ -124,14 +124,14 @@ bad_raise(Eno, Raise) ->
         end,
     mnesia:transaction(F).
 %6
-                       
+
 %9
 get_emps(Salary, Dep) ->
-    Q = qlc:q( 
+    Q = qlc:q(
           [E || E <- mnesia:table(employee),
                 E#employee.salary > Salary,
                 E#employee.dept == Dep]
-	 ),
+         ),
     F = fun() -> qlc:e(Q) end,
     transaction(F).
 %9
@@ -142,10 +142,10 @@ get_emps2(Salary, Dep) ->
     Epat = Epat0#employee{dept = Dep},
     F = fun() ->
                 All = mnesia:match_object(Epat),
-		[E || E <-All, E#employee.salary > Salary ]
-	end,
+                [E || E <-All, E#employee.salary > Salary ]
+        end,
     mnesia:transaction(F).
-                
+
 
 %10
 
diff --git a/lib/mnesia/doc/src/company_o.hrl b/lib/mnesia/doc/src/company_o.hrl
index bd1cc506f0..f1c15b004f 100644
--- a/lib/mnesia/doc/src/company_o.hrl
+++ b/lib/mnesia/doc/src/company_o.hrl
@@ -19,15 +19,14 @@
 
 %0
 -record(employee, {emp_no,
-		   name,
-		   salary,
-		   sex,
-		   phone,
-		   room_no,
-		   dept,
-		   projects,
-		   manager}).
-		   
+                   name,
+                   salary,
+                   sex,
+                   phone,
+                   room_no,
+                   dept,
+                   projects,
+                   manager}).
 
 -record(dept, {id, 
                name}).
diff --git a/lib/mnesia/src/mnesia.erl b/lib/mnesia/src/mnesia.erl
index 0788e57a94..6d41a89fa6 100644
--- a/lib/mnesia/src/mnesia.erl
+++ b/lib/mnesia/src/mnesia.erl
@@ -3366,7 +3366,7 @@ mini_info() ->
     Running = system_info(running_db_nodes),
     io:format("running db nodes   = ~w~n", [Running]),
     All = mnesia_lib:all_nodes(),
-    io:format("stopped db nodes   = ~w ~n", [All -- Running]).
+    io:format("stopped db nodes   = ~w~n", [All -- Running]).
 
 display_system_info(Held, Queued, TmInfo, Uncertain) ->
     mini_info(),
-- 
2.43.0

openSUSE Build Service is sponsored by