[erlang-questions] mnesia secondary index

Chandru <>
Wed Jun 23 10:44:22 CEST 2010


Hi Matt,

On 23 June 2010 00:18, Evans, Matthew <> wrote:

> Hi,
>
> I have a fragmented mnesia table that I need to add a second index to.
>
> It appears that to get this working I need to call mnesia:add_table_index/2
> for each fragment.
>
>
Yes - that is correct.


> Likewise, to do an index read of the fragmented table I need to search each
> fragment in turn:
>

Not really - the following code should do.

dirty_index_read(Tab, SecondaryKey, Pos) ->
    F = fun(T, Sk, P) -> mnesia:index_read(T,Sk,P) end,
    mnesia:activity(async_dirty, F, [Tab, SecondaryKey, Pos], mnesia_frag).

cheers
Chandru


More information about the erlang-questions mailing list