<div dir="auto"><div>If I know that I shall only receive a single value result, I write</div><div dir="auto"><br></div><div dir="auto">{atomic, [Value]} = mnesia:transaction(...)</div><div dir="auto"><br></div><div dir="auto">This has the side effect of neatly terminating the process if we didn't get exactly one value back as a result. And that allows me to catch the error and decide what to do about it.</div><div dir="auto"><br></div><div dir="auto">If you want to write defensively, then something that discriminates between the results may be appropriate. </div><div dir="auto"><br></div><div dir="auto">case mnesia:transaction(...) of</div><div dir="auto">    {aborted, Reason} -> ...;</div><div dir="auto">    {atomic, []} -> ...;</div><div dir="auto">    {atomic, [Value]} -> ...;</div><div dir="auto">    {atomic, Values} -> ...</div><div dir="auto">end</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto">Robby</div><div dir="auto"><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On 15 Nov 2017 21:04,  <<a href="mailto:lloyd@writersglen.com">lloyd@writersglen.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
The result of a mnesia read transaction looks like this:<br>
<br>
   {atomic, Results} where result is either a populated list [value1, ... valueN] or, an empty list [].<br>
<br>
If the table is initialized as set, then the returned list will contain at most one value, e.g:<br>
<br>
  [value].<br>
<br>
If I want to use of the value in a function or to populate another record, I need to extract the value from the list.<br>
<br>
I've tried various ways to do this, but they all seem clumsy:<br>
<br>
E.g.<br>
<br>
[MyValue]<br>
<br>
hd[vlaue]<br>
<br>
confirm([]) -><br>
    not_found;<br>
confirm([Value]) -><br>
    Value;<br>
confirm(Value) -><br>
    Value.<br>
<br>
Does there happen to be a preferred/conventional/best-<wbr>practices way to do this?<br>
<br>
Many thanks,<br>
<br>
LRP<br>
<br>
<br>
<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
</blockquote></div><br></div></div></div>