Mnesia: Tables on the fly.

Chris Pressey cpressey@REDACTED
Wed Jul 3 08:47:27 CEST 2002


On Tue, 02 Jul 2002 18:57:41 -0500
"martin logan" <martinjlogan@REDACTED> wrote:

> Hello All, I seem to be facing a small problem having to do with mnesia.
> I have the following code:
> 
> % definitions of all the tables we are going to create
>     MappingTabDef = [{type, set}, {ram_copies, [node()]}, {attributes, 
> record_info(fields, mapping)}],
> % More tables here.
> 
> % create the tables
> mnesia:create_table(mapping, MappingTabDef),
> % Create more tables here
> 
> 
> I would like to replace that with somthing like the following:
> Tables = [{mapping, ram_copies}|T],
> 
> Fun = fun({Table, StoreType}) ->            create_table([{type, set}, 
> {StoreType, [node()]}, {attributes, record_info(fields, Table)}] end,
> 
> lists:foreach(Fun, Tables),
> 
> When I statically define everything as illustrated in the first example 
> things work perfectly. Unfortunatly the second bit of code blows up
> every time.  Does anyone understand why?

record_info only works at compile-time.  (The record name must be a
literal constant).

-Chris



More information about the erlang-questions mailing list