On Sunday 02 March 2003 18:55, Tom Lane wrote:
> Adam Haberlach <adam@newsnipple.com> writes:
> > It seems that the implementation is for the libs to
> > do a BEGIN on connect and after every transaction -- is
> > this normal. Is there a way to keep it from causing
> > problems with vaccuums?
>
> This is horrible practice for a number of reasons, not only its effect
> on VACUUM. Consider what you will get from now(), for example. A new
> BEGIN should only be issued when you are ready to issue the first
> command of the next transaction.
>
> If that hasn't been fixed yet in the dbd driver, I would recommend
> fixing it there.
The default DBD::Pg behaviour is AutoCommit On, and AFAIK
has always been that way. The DBD::Pg driver will only
begin a transaction if AutoCommit was explicitly set to Off
or $dbh->begin_work() was executed by the application.
perldoc DBD::Pg contains more info.
Ian Barwick
barwick@gmx.net