Do we want Bugzilla to be case-sensitive or

Max Kanat-Alexander mkanat at bugzilla.org
Thu Nov 3 21:25:36 UTC 2005


On Thu, 2005-11-03 at 13:10 -0800, Benton, Kevin wrote:
> For things like product and component names, in PostgreSQL, you could
> decide to store it in two forms, one already converted to lower case,
> and another in mixed-case format.

	Yeah, we discussed this as an option. :-) Believe me, Tomas and I went
over everything. I could show you our ICQ logs, this was the one
"unsolvable" problem we ran into.

	That option doesn't work out really well, it creates a lot of
complexity.

> One other way to get around the
> problem entirely is to enforce or not enforce duplicate inserts for all
> records that differ only by case.

	Yes, that's the solution that I was going to adopt. See
https://bugzilla.mozilla.org/show_bug.cgi?id=300417

> Since I'm
> hearing you say that PostgreSQL doesn't support case-insensitive
> searches globally, we need to find a way to address that quirk.

	Yes, I know. :-) And I'm saying that there *is* a way to address the
quirk, and it's far too expensive in terms of code complexity, so it's
going to remain a quirk.

> One
> possible solution is to ask the PostgreSQL developers for that ability.

	I would love that. We'd probably see it around PostgreSQL 8.3 or 8.4 or
even PostgreSQL 9, some years down the road. Feel free to suggest it,
though.

> Since we haven't supported PostgreSQL until now, asking users to upgrade
> to a very recent version seems fair to me.

	One of the reasons that people want to use PostgreSQL is that they have
it installed already, so they could have an older version. That's why I
decided to support 7.3 as the minimum. (Also, 8 was brand new when I
first really got into the code side of this in Bugzilla.)

> On the other hand,
> creating a class to deal with all the databases so that programmers
> developers who really don't care about the quirks of one over another
> can do it without caring seems very wise.

	Yes. There are many classes like that, on CPAN. I investigated a lot of
them, they didn't serve our particular needs, really. It's possible that
one of them would work, with a lot of extra code from us.

> Personally, I thought that getting rid of DB.pm wasn't such a hot idea.

	We didn't get rid of DB.pm. Oh, you mean that there was a proposal to
do so?

> In this model, only that module would
> need to be updated in order to handle new databases (or new database
> versions).

	Right, which is how it is. In fact, usually that module doesn't even
need to be updated, just a new one needs to be added.

> Do I think comparisons should be case insensitive?  From a process
> management perspective, hands-down yes I think searches should be case
> insensitive except in very rare circumstances.

	I agree with you fully. If you can find a way to do that *without
adding 100% to the complexity of Bugzilla code*, then I'm all for it. I
really would like that. I'm just not going to force every contributor
and every reviewer to ALWAYS put $dbh->sql_istrcmp('field', '?') where
they really just mean "field = ?" in their SQL.

	I'm not saying that I *want* PostgreSQL Bugzilla to be case sensitive.
I'm saying that PostgreSQL Bugzilla *is* case sensitive, and it's a
WONTFIX until we have a decent way of fixing it.

	-Max
-- 
http://www.everythingsolved.com/
Competent, Friendly Bugzilla Services. And Everything Else, too.




More information about the developers mailing list