[erlang-questions] mnesia:table_info(Table, size) returns 0 for remote tables

Ulf Wiger (TN/EAB) <>
Thu Jun 5 09:57:12 CEST 2008


Serge Aleynikov wrote:
> I ran into this non-intuitive behavior of the mnesia:table_info(Table, 
> size) function.  Unlike other calls of the mnesia:table_info/2 family 
> this one returns 0 if a table is not local.
>
> The work around is to do:
> Node = mnesia:table_info(Table, where_to_read),
> rpc:call(Node, mnesia, table_info, [Table, size]).
>
> Though, it's not clear to me why the caller of mnesia:table_info/2 has 
> to go though this trouble.  Can this be fixed?
>
> Serge
>   

You can use the mnesia_frag callback:

Eshell V5.5.4  (abort with ^G)
()1> mnesia:start().
ok
()2> mnesia:create_table(t2,[{ram_copies,[]}]).
{atomic,ok}
()3> mnesia:table_info(t2,size).
0
()4> mnesia:activity(transaction,fun() -> 
mnesia:table_info(t2,size) end,mnesia_frag).
1
()5>


BR,
Ulf W



More information about the erlang-questions mailing list