<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 <yadav.tirveni@gmail.com> 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 <<a shape="rect" ymailto="mailto:trsibley@uw.edu" href="mailto:trsibley@uw.edu">trsibley@uw.edu</a>> wrote:<div class="yqt2969436948" id="yqtfd76846"><br clear="none">> Use find_or_new instead, and then check $id->in_storage. Make sure to call<br clear="none">> $id->insert when $id->in_storage is false.<br clear="none">><br clear="none">> This is explained in the documentation for find_or_create, starting with “If<br clear="none">> you need to know if an existing row was found or a new one created…”.<br clear="none">><br clear="none">><br clear="none">> On Aug 18, 2017, at 10:34 , Rajeev Prasad <<a shape="rect" ymailto="mailto:rp.neuli@yahoo.com" href="mailto:rp.neuli@yahoo.com">rp.neuli@yahoo.com</a>> wrote:<br clear="none">><br clear="none">> How do we know wether this function 'found' or created whatever was being<br clear="none">> asked to 'find_or_create' ???<br clear="none">><br clear="none">> my $id = $schema<br clear="none">> ->resultset('Node')<br clear="none">> ->find_or_create<br clear="none">> (<br clear="none">> { nodeName => $node },<br clear="none">> { key => 'nodeID' }<br clear="none">> );<br clear="none">> 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>