Re: MySQL Function Naming

[prev] [thread] [next] [lurker] [Date index for 2007/03/21]

From: Aaron Crane
Subject: Re: MySQL Function Naming
Date: 01:08 on 21 Mar 2007
A. Pagaltzis writes:
> Now granted, v5 has finally added a strict mode or whatever it's
> called, where this kind of constraint violation throws an error
> instead of silently mangling your data. But IT TOOK THEM FIVE VERSIONS
> to put that in, AND THEN IT'S STILL NOT THE DEFAULT.

Ah, yes, the "version N+1" problem: everything you think you might want
out of MySQL is supported (somehow, even if brokenly and hatefully) in
the version _after_ the one that's available on your production servers.
(Actually, sometimes MySQL makes it version N+k, to give you some light
relief.)  I believe the "version N+1" phrasing is due to Smylers (the
original poster in this thread), circa 2000.  It's still true.  Seven
years later.  Still true.

> Or here, another case that was recently posted on use.Perl:
> 
>     mysql> CREATE TEMPORARY TABLE the_dates (d DATE NOT NULL DEFAULT '0000-00-00');
>     mysql> INSERT INTO the_dates VALUES ('0000-00-00');
>     mysql> SELECT COUNT(*) FROM the_dates WHERE d IS NOT NULL;
>     +----------+
>     |        1 |
>     +----------+
>     mysql> SELECT COUNT(*) FROM the_dates WHERE d IS NULL;
>     +----------+
>     |        1 |
>     +----------+
> 
> *boggle* HOW does anyone conceive of THAT sort of braindamage?

Yep, saw that a couple of years ago.  (Before hates-software existed, or
I suspect I'd've ranted about it at that time.)  Just for fun, try and
work out what sort of data structure they use that thinks a given value
is simultaneously NULL and not-NULL.  Truly mind-blowing.

> You'll find loads of horror stories like that if you dig in even
> a little.

I'd like to think that I've seen my share of MySQL horror stories.
Disappointingly, MySQL doesn't agree: there's always another one just
a week or two round the corner.  An alarmingly-large proportion of my
commits seem to contain mini-rants about some newly-discovered MySQL
idiocy.

> This stuff is... not even wrong. I mean, I'm starting to have
> trouble even *hating* MySQL anymore. It's like a retard kid that
> you just can't help kinda pitying.

The kindest thing you can say about MySQL is that if you use an unstable
beta release _and_ you carefully configure it to be non-broken to the
extent possible, it's not quite as bad as it was in the MySQL 3.22 days.

But for me it still inspires hate, not pity.

-- 
Aaron Crane
There's stuff above here

Generated at 14:43 on 31 Mar 2007 by mariachi 0.52