I found the problem, and it is all my fault. I was calling the insert function with the wrong combination of parameters, so naturally it didn't find the item. It is working fine now, although I do think I needed to mark the function as VOLATILE, which I think helped.
Thanks to all for the help. Susan On Thu, Apr 17, 2014 at 10:33 AM, Vincent Veyron < vincent.vey...@libremen.org> wrote: > On Thu, 17 Apr 2014 10:02:00 -0700 > Susan Cassidy <susan.cass...@decisionsciencescorp.com> wrote: > > > I moved the code in the function inline into the code, and I still cannot > > find the newly inserted id the next time through the loop. > > I suppose you use DBD::Pg, whose current default isolation transaction > level is ``Serializable'' > > Don't know if it applies, but the Postgresql's documentation says this : > > SERIALIZABLE > > All statements of the current transaction can only see rows committed > before the first query or data-modification statement was executed in this > transaction. If a pattern of reads and writes among concurrent serializable > transactions would create a situation which could not have occurred for any > serial (one-at-a-time) execution of those transactions, one of them will be > rolled back with a serialization_failure SQLSTATE. > > -- > Regards, Vincent Veyron > > http://libremen.com/ > Legal case, contract and insurance claim management software >