Chris Ochs wrote:
> My program starts a transaction, does about 20 inserts, then commits. When
> I replace once of the inserts with a function that does the insert, when I
> do the commit I get this message:
>
> WARNING: there is no transaction in progress
>
> The inserts all commit fine. Do functions used through DBD::Pg do something
> like turn on autocommit after a function is called?
Is your function calling 'commit' itself? If so, it could be committing
before your SQL statement issues the 'commit', thus attempting to commit
a transaction which doesn't exist any more.
DBD::Pg defaults to "AutoCommit" behaviour, unless you explicitly turn
it off:
my $dbh = DBI->connect (
"DBI:Pg:dbname=database", "user" , "password",
{AutoCommit => 0}
);
HTH
Alex Satrapa