On 1/2/07, Jim Winstead <[EMAIL PROTECTED]> wrote:

i'm trying to handle a bug report filed against DBD::mysql about getting
this error using the exampe code below.  (http://bugs.mysql.com/24244)

but as far as i can tell, we are handling the AutoCommit attribute
properly, and basically the same as other drivers. looking at the DBI.xs
code, i see this comment:

        /* driver should have intercepted this and either handled it */
        /* or set valuesv to either the 'magic' on or off value.     */

but i can't find any documentation of these magic on and off values, and
the other DBD drivers i've looked at don't appear to be doing anything
special.


DBD::Informix does have to handle AutoCommit rather extensively - it is
extremely painful but necessary.  Some parts of the handling are in
dbdimp.ec, others in dbdattr.ec.  Whether what it does is relevant to MySQL
is more debatable.

However, some Informix databases have transaction support and others do not
(logged vs unlogged databases).  Further, some of those with transaction
support implicitly do autocommit unless you explicitly start a
multi-statement transaction (a simple logged database), and others
implicitly start a transaction and it continues until you explicitly
terminate it (a mode ANSI database).

As you can imagine, dealing with autocommit correctly for all of these is
hard.  For example, if someone connects to an unlogged database with
AutoCommit => 0, DBD::Informix generates an error -- the DB has no
transactions so AutoCommit can only be on.

--
Jonathan Leffler <[EMAIL PROTECTED]>  #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

Reply via email to