On Thu, 05 Jan 2006 08:22:01 -0800 Steve Crawford <[EMAIL PROTECTED]> wrote:
> Alan Garrison wrote: > > Russ Brown wrote: > >> Does anyone know where I can find the 'official' definition of > >> what it meant by ACID compliance? > >> > >> We're having a discussion about it that we could do with > >> resolving. In particular, the key point is what it meant by the > >> 'C' part. I maintain that MySQL is not ACID compliant because it > >> will (among other things) swallow integers that don't fit into a > >> column silently and just truncate it, while our DBA (while > >> agreeing that this is not good behaviour) maintains that this is > >> not what the C part means: he says that's just about transaction > >> states (succeed or fail etc). > > I personally read "C" to disallow MySQL's truncation behavior. > Suppose you have a simple/stupid banking database with only one table > listing the amount in the bank for each customer. The manager sums up > the balances to find out how much is in the bank. Meanwhile Larry > owes Jane some money so he has it transferred to her account. The > balance the manager gets should be identical whether she runs the > query before, during or after the transaction. > > Now Jane is a good saver so when Larry transfers the money, MySQL > truncates her account at the max amount allowed by the column-type. > The manager's reports will be incorrect as will Jane's account > balance. Unless Larry and Jane bank at Enron S&L, this is bound to > violate some rule or integrity constraint. > Yes, I agree entirely. Actually, reading the wikipedia definition it looks like what he was talking about is actually covered by the 'A' part of ACID. > But if you and the DBA are in agreement that MySQL behaves badly, why > waste time arguing over which letter in some acronym is pertinent? > Oh, that's a long story. We're a MySQL house that I've been trying to convert to PostgreSQL one way or the other for ages (with no success as yet). Note that the argument isn't about which letter the type truncation applies to, but whether it actually has anything to do with ACID at all in the first place. The key for me is that the result of this argument has an effect on the question: "Is MySQL ACID compliant". If I'm right, it's not (which has political strategic benefits to me). Thanks. -- Russ ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match