Well, assume a higher level abstraction that does not give clients to
that abstraction access to the raw connection. It only has methods like
update, search, commit, or rollback. What the connection is doing is a
kind of implementation detail.

-----Original Message-----
From: Michael Dykman [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 18, 2007 10:00 AM
To: Robert DiFalco
Cc: Baron Schwartz; mysql@lists.mysql.com
Subject: Re: Rollback on a Transaction with No Updates

I realize that wasn't the question, but it does seem like a lot of
trouble to get the equivalent of setAutoCommit(true);

On 9/17/07, Robert DiFalco <[EMAIL PROTECTED]> wrote:
> Sure, but that wasn't really the question.
>
> -----Original Message-----
> From: Michael Dykman [mailto:[EMAIL PROTECTED]
> Sent: Monday, September 17, 2007 2:56 PM
> To: Robert DiFalco
> Cc: Baron Schwartz; mysql@lists.mysql.com
> Subject: Re: Rollback on a Transaction with No Updates
>
> If your transaction are only 1 query deep, why use them at all?  An 
> individual query is already atomic, regardless of table type/server 
> mode.
>
>  - michael dkyman
>
>
> On 9/17/07, Robert DiFalco <[EMAIL PROTECTED]> wrote:
> > While it is functionally equivalent I wonder if it the code paths 
> > taken are the same. I suppose for both commit and rollback mysql 
> > would
>
> > have to look for any pending work, if there were none both would do
> nothing.
> > That's what makes me think that there is probably no performance 
> > difference between the two. I ask this because my programmers like 
> > to do
> > this:
> >
> >         con = ...
> >         try
> >         {
> >            queryOnlyWith( con );
> >         }
> >         finally
> >         {
> >            con.rollback();
> >         }
> >
> > And I wanted to make sure that this would perform the same and act 
> > the
>
> > same as issuing a commit (unless there was an exception but I'm not 
> > analyzing that case).
> >
> > -----Original Message-----
> > From: Baron Schwartz [mailto:[EMAIL PROTECTED]
> > Sent: Monday, September 17, 2007 2:36 PM
> > To: Robert DiFalco
> > Cc: mysql@lists.mysql.com
> > Subject: Re: Rollback on a Transaction with No Updates
> >
> > Robert DiFalco wrote:
> > > Is there any difference between calling rollback or commit on a 
> > > transaction that did not alter data? For example, not a read-only 
> > > transaction but a transaction that only performed read-only
selects.
> > > Any difference in performance between calling rollback or commit? 
> > > I know they are functionally the same at the high level.
> >
> > The only thing I could think of was possibly rollback would leave 
> > open
>
> > transaction and its read view if you are running in REPEATABLE READ 
> > isolation mode, whereas commit begins a new transaction and discards

> > the read view.  But I just tested that, and both commands start a 
> > new transaction and discard the read view.
> >
> > That's a long way of saying they are functionally equivalent as far 
> > as
>
> > I know, as long as there are no changes to discard.
> >
> > Baron
> >
> >
> >
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
> >
> >
>
>
> --
>  - michael dykman
>  - [EMAIL PROTECTED]
>
>  - All models are wrong.  Some models are useful.
>
>
>


-- 
 - michael dykman
 - [EMAIL PROTECTED]

 - All models are wrong.  Some models are useful.



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to