[erlang-questions] Add a field to a record

Lloyd R. Prentice lloyd@REDACTED
Tue Sep 22 16:22:59 CEST 2015


Many thanks, Michael and Marc!

Another useful brick in my ever so slowly growing edifice of Erlang lore.

All the best,

Lloyd


Sent from my iPad

> On Sep 18, 2015, at 4:20 AM, Marc Worrell <marc@REDACTED> wrote:
> 
> Hi Lloyd,
> 
> That is a very common situation.
> 
> We have two tactics to handle that:
> 
> 1) Just let it crash and then restart with the new definition
> 2) If (1) is not acceptable, use module/function that can “upgrade” your record.
> 
> Example of #2:
> 
>    upgrade(#anything{} = Rec) -> Rec;
>    upgrade({anything, Field1, Field2}) -> #anything{field1=Field1, field2=Field2}.
> 
> And then, if you receive a record from old(er) code/nodes or a backing store, first “upgrade” your record before you do anything with it.
> 
>    do_something(Rec0) ->
>        Rec = upgrade(Rec0),
>        … your code with Rec …
> 
> - Marc
> 
> 
>> On 18 sep. 2015, at 00:16, lloyd@REDACTED wrote:
>> 
>> Hello,
>> 
>> I understand that it would be better to use maps if you anticipate adding fields to a record.
>> 
>> But suppose you didn't anticipate and you've been merrily adding data to your db when you discover--- oops! I need another field.
>> 
>> e.g. You have: 
>>      -record anything, {
>>           field1,
>>           field2
>>         }
>> 
>>     and you discover that you really need:
>>      -record anything, {
>>           field1,
>>           new_field,
>>           field2
>>         }
>> 
>> Is there a cunning trick or technique to make the change without losing data?
>> 
>> Thanks,
>> 
>> LRP
>> 
>> 
>> *********************************************
>> My books:
>> 
>> THE GOSPEL OF ASHES
>> http://thegospelofashes.com
>> 
>> Strength is not enough. Do they have the courage 
>> and the cunning? Can they survive long enough to 
>> save the lives of millions?  
>> 
>> FREEIN' PANCHO
>> http://freeinpancho.com
>> 
>> A community of misfits help a troubled boy find his way 
>> 
>> AYA TAKEO
>> http://ayatakeo.com
>> 
>> Star-crossed love, war and power in an alternative 
>> universe
>> 
>> Available through Amazon or by request from your 
>> favorite bookstore
>> 
>> 
>> **********************************************
>> 
>> 
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
> 



More information about the erlang-questions mailing list