MOD amélioration de la vitesse de euphorik_bd:messages (mais toujours en O(n)). Cette...
[euphorik.git] / modules / erl / euphorik_bd_admin.erl
index d9e9cc7..a5a69f1 100644 (file)
@@ -84,6 +84,7 @@ create_tables() ->
       {disc_copies, [node()]}
    ]),
    mnesia:create_table(minichat, [
+      {type, ordered_set},
       {attributes, record_info(fields, minichat)},
       {disc_copies, [node()]}
    ]),
@@ -110,11 +111,11 @@ create_tables() ->
 % mis à part car lors de la reprise de données avec load_textfile les indexes ne sont pas recréés
 creer_indexes() ->
    mnesia:add_table_index(minichat, auteur_id),
-   mnesia:add_table_index(minichat, troll_id),
    mnesia:add_table_index(reponse_minichat, cible),
    mnesia:add_table_index(user, cookie),
    mnesia:add_table_index(user, login),
-   mnesia:add_table_index(troll, date_post).
+   mnesia:add_table_index(troll, date_post),\r
+   mnesia:add_table_index(troll, id_minichat).
    
    
 % Connexion à la base de données de yaws sur overnux
@@ -262,7 +263,6 @@ patch(1) ->
    end;\r
 % 2 -> 3\r
 patch(2) ->\r
-   % traitement de la table troll\r
    mnesia:transform_table(\r
       troll,\r
       fun({troll, Id_troll, Id_user, Date_create, Date_post, Content}) ->\r
@@ -275,8 +275,17 @@ patch(2) ->
       end,\r
       record_info(fields, troll),\r
       user\r
-   )\r
-   TODO...\r
+   ),\r
+   mnesia:del_table_index(minichat, troll_id),\r
+   mnesia:transform_table(\r
+      minichat,\r
+      fun({minichat, Id, Auteur_id, Date, Pseudo, Contenu, _Troll_id, Racine_id}) ->\r
+         {minichat, Id, Auteur_id, Date, Pseudo, Contenu, Racine_id}\r
+      end,\r
+      record_info(fields, troll),\r
+      user\r
+   ),   \r
+   creer_indexes(). % uniquement pour l'indice sur id_minichat de la table troll\r
    \r
 
 % crée un backup dont le nom est fournit dans le repertoire backups qui se trouve dans le repertoire de la BD.