Re: DBI/DBD::Pg and transactions - Mailing list pgsql-general

From Roderick A. Anderson
Subject Re: DBI/DBD::Pg and transactions
Date
Msg-id 469E8625.5010804@acm.org
Whole thread Raw
In response to Re: DBI/DBD::Pg and transactions  ("Greg Sabino Mullane" <greg@turnstep.com>)
Responses Re: DBI/DBD::Pg and transactions  (Alan Hodgson <ahodgson@simkin.ca>)
List pgsql-general
Greg Sabino Mullane wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: RIPEMD160
>
>
>> Will a $sth->execute()
>> of a "SELECT ... FOR UPDATE" statement allow me to update the selected
>> records using
>> $uth->execute( ... )
>> if $sth and $uth are both created/prepared from the same database handle
>> "$dbh"?
>
> You are allowed to update either way, but the lock created by the first
> execute will be in place for the second, as long as those statement handles
> are from the same $dbh (database handle).

So how would I update selected rows (tuples) from the first execute a
"SELECT ... FOR UPDATE" with the second.


*The rest of the story:*

This script will be run via cron.

It will query a table for orders that are ready.  It may take longer
than the cron interval to process the orders and some of the orders may
be left as ready ie. not done.

If the order gets done I need to update it's row (tuple) as done.

In the mean time if the script gets triggered again and the first
instance isn't finished the second needs to not be able to select those
records already being handled.

Which then, suddenly like a smack on top of the head, makes me think of
how to select using the same "SELECT ... FOR UPDATE" query only those
non-locked records.

Man this is getting deeper every time I look at it.


Rod
--
  In general, connecting via DBI
> always gives you one connection unless you explicitly create a second one
> by calling DBI->connect.
>
> - --
> Greg Sabino Mullane greg@turnstep.com
> End Point Corporation
> PGP Key: 0x14964AC8 200707181533
> http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
>
>
> -----BEGIN PGP SIGNATURE-----
>
> iD8DBQFGnmspvJuQZxSWSsgRAxjIAJ0TRN5bTs9s1/Z3/YC/rzGdpEhWiACg11Ca
> sdXpTplc1laTXywTrd+8nBw=
> =5iA0
> -----END PGP SIGNATURE-----
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>                http://archives.postgresql.org/


pgsql-general by date:

Previous
From: Michael Glaesemann
Date:
Subject: Re: Need help optimizing this query
Next
From: Alan Hodgson
Date:
Subject: Re: DBI/DBD::Pg and transactions