<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div>hi Triveni ji,</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503276054089_9632">I have not encountered the 'race cond.' yet in various scripts. (but) if you explain to me how to break find and replace into a transaction. I would consider that. I am not very good at DBIx, i just happen to use it.</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503276054089_9651">Thank you.</div><div dir="ltr">Rajeev<br></div><div id="yui_3_16_0_ym19_1_1503276054089_9583"><span></span></div> <div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 13px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"><font face="Arial" size="2"> On Sunday, August 20, 2017 6:08 AM, tirveni yadav &lt;yadav.tirveni@gmail.com&gt; wrote:<br></font></div>  <br><br> <div class="y_msg_container"><div dir="ltr">On Sat, Aug 19, 2017 at 12:07 AM, Thomas Sibley &lt;<a shape="rect" ymailto="mailto:trsibley@uw.edu" href="mailto:trsibley@uw.edu">trsibley@uw.edu</a>&gt; wrote:<div class="yqt2969436948" id="yqtfd76846"><br clear="none">&gt; Use find_or_new instead, and then check $id-&gt;in_storage.&nbsp; Make sure to call<br clear="none">&gt; $id-&gt;insert when $id-&gt;in_storage is false.<br clear="none">&gt;<br clear="none">&gt; This is explained in the documentation for find_or_create, starting with “If<br clear="none">&gt; you need to know if an existing row was found or a new one created…”.<br clear="none">&gt;<br clear="none">&gt;<br clear="none">&gt; On Aug 18, 2017, at 10:34 , Rajeev Prasad &lt;<a shape="rect" ymailto="mailto:rp.neuli@yahoo.com" href="mailto:rp.neuli@yahoo.com">rp.neuli@yahoo.com</a>&gt; wrote:<br clear="none">&gt;<br clear="none">&gt; How do we know wether this function 'found' or created whatever was being<br clear="none">&gt; asked to 'find_or_create' ???<br clear="none">&gt;<br clear="none">&gt; my $id = $schema<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp;  -&gt;resultset('Node')<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp;  -&gt;find_or_create<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp;  (<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  { nodeName =&gt; $node },<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  { key =&gt; 'nodeID' }<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp;  );<br clear="none">&gt; how do we know wether $id was already existing in table?</div><br clear="none"><br clear="none"><br clear="none">I would suggest that you avoid find_or_create, unless you know what<br clear="none">are you are doing.<br clear="none">find_or_create is subject to Race condition as well.<br clear="none"><br clear="none">Hence, best to do it inside a transaction.<br clear="none"><br clear="none">Or keep it simple and do a find and then create inside a transaction.<br clear="none"><br clear="none"><br clear="none">-- <br clear="none">Regards,<br clear="none"><br clear="none">Tirveni Yadav<br clear="none"><br clear="none">www.bael.io<br clear="none"><br clear="none">What is this Universe ? From what it arises ? Into what does it go?<br clear="none">In freedom it arises, In freedom it rests and into freedom it melts away.<br clear="none">Upanishads.</div><br><br></div>  </div> </div>  </div></div></body></html>