The thing about IGNORE that makes it different from other
ignore-bad-data things is that you have to explicitly say you want to
ignore duplicates.  (Except for LOAD DATA LOCAL INFILE, and maybe the
protocol hacking is already eliminating the need for that?)

It's really quite useful when you're cleaning up crappy data, which I
have done a lot of.

Or when you're restarting something that failed partway through.
Ditto, done a lot of that.

I don't see the harm in it, since it's not one of those on-by-default
things; rather I see it as a useful extension like ON DUPLICATE KEY
UPDATE, or some of the other non-relational extensions I proposed in
an earlier thread.

$0.02 :-)

INSERT IGNORE's used heavily in mogilefs... this is partially because we avoid syncronization for a lot of events. So INSERT IGNORE becomes a ghetto syncronization primitive. Other parts of the system heavily use SELECT GET_LOCK/RELEASE_LOCK.

To mogilefs, it doesn't matter if two processes attempt to queue the same FID for deletion, the first one in will win the race, and if both win (FID is dequeued before the second process drops it in) the row will be parsed as an already-deleted item and ignored.

Probably a bizarre abuse in an edge case, but it's handy to be able to blindly do that instead of tiptoeing to avoid breaking replication.

-Dormando

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to