[erlang-questions] Selecting X number of items from Mnesia

Ulf Wiger (TN/EAB) <>
Fri Feb 8 11:08:32 CET 2008


Hynek Vychodil skrev:
> Just from qlc manual:
> 
> To return just a few answers cursors can be used. The following code 
> returns no more than five answers using an ETS table for storing the 
> unique answers:
> 
> C = qlc:cursor(qlc:q([X || X <- qlc:append(QH1, QH2)],{unique,true})),
> R = qlc:next_answers(C, 5),
> ok = qlc:delete_cursor(C),
> R.

Note, thought, that this will be much more costly than using
select() with a limit on number of matching objects.

The cursor support needs to create a temporary store, which in
the case of QLC is solved using a separate process. This will
involve quite some copying.

BR,
Ulf W



> 
> On Feb 8, 2008 9:06 AM, Ulf Wiger < <mailto:>> 
> wrote:
> 
>     I'd have to check on how to do it with QLC, but using
>     mnesia:select(Tab, MatchSpec, NObjs, Lock), you
>     can quite easily pull the N first objects from an
>     ordered_set table.
> 
>     BR,
>     Ulf W
> 
>     2008/2/8, Dave Bryson < <mailto:>>:
>      > I apologize in advance for the newbie question!
>      >
>      > I'm trying to treat an mnesia table as a FIFO queue. What I'd like to
>      > be able to do is pull X number of items off the head of the list
>      > returned by a query. There's no conditional values to isolate the
>      > records - I just want the top X number of records.  Is there an
>      > efficient way to do this with qlc?
>      >
>      > Thanks in advance!
>      >
>      > Dave
>      > _______________________________________________
>      > erlang-questions mailing list
>      >  <mailto:>
>      > http://www.erlang.org/mailman/listinfo/erlang-questions
>      >
>     _______________________________________________
>     erlang-questions mailing list
>      <mailto:>
>     http://www.erlang.org/mailman/listinfo/erlang-questions
> 
> 
> 
> 
> -- 
> --Hynek (Pichi) Vychodil
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list