Mnemosyne

Ulf Wiger <>
Tue Oct 30 17:49:28 CET 2001


On Tue, 30 Oct 2001, Sean Hinde wrote:

>In R8B ets you can specify the number of rows which are
>returned from a match or select call so you could do a match on
>each record type in turn with ets:match(Tab, Pattern Max_rows)
>where Max_rows is set to 1.
>
>Unfortunately mnesia doesn't support this addition to ets but I
>dare say that might follow sometime. Meanwhile you can do ets
>operations directly on local mnesia tables so long as you don't
>want any transaction safety.

Actually, mnesia _does_ support select() in R8B:

  mnesia:select(Tab, MatchPattern)
  mnesia:select(Tab, MatchPattern, LockKind)
  mnesia:dirty_select(Tab, MatchPattern)

It's even documented.  (:
>From
http://www.erlang.org/doc/r8b/lib/mnesia-4.0/doc/html/mnesia.html#select%3

"For example to find the names of all male persons with an age
over 30 in table Tab do:

  MatchHead = #person{name='$1', sex=male, age='$2', _='_'},
       Guard = {'>', '$2', 30},
       Result = '$1',
       mnesia:select(Tab,[{MatchHead, [Guard], [Result]}]),"

/Uffe
-- 
Ulf Wiger                                    tfn: +46  8 719 81 95
Senior System Architect                      mob: +46 70 519 81 95
Strategic Product & System Management    ATM Multiservice Networks
Data Backbone & Optical Services Division      Ericsson Telecom AB




More information about the erlang-questions mailing list