----- Original Message -----
From: Sean Legassick <[EMAIL PROTECTED]>
To: Turbine <[EMAIL PROTECTED]>
Sent: Tuesday, June 06, 2000 8:20 PM
Subject: Re: BasePeer Problem


> On Tue, Jun 06, 2000 at 11:10:40AM -0700, John McNally wrote:
> > Can you add a DB method ignoreCaseInOrderBy() similar to toUpperCase()?
And
> > copy the code in the other DB adaptors from toUpperCase to
> > ignoreCaseInOrderBy().
>
> That sounds like the right solution to me...like what I was suggesting
> to replace toUpperCase for case sensitivity in general - the problem
> with toUpperCase is that converting to upper case is a specific
> implementation of a solution to a more general problem - an adaptor
> interface like DB should contain expressions of intent, not expressions
> of specific solutions.
>
> So DB should have:
>
> ignoreCase()
> respectCase()   (which for MySQL adds a 'BINARY' prefix to an expression)
> ignoreCaseInOrderBy()
> respectCaseInOrderBy()
>
> and perhaps others?
>
> If you are going to follow John's suggestion Leon, perhaps you could
> look at adding all these?
>

I'd be happy to.

If it is ok with everybody I'll add the following methods to DB (and
subclasses)

 ignoreCase()
 respectCase()   (which for MySQL adds a 'BINARY' prefix to an expression)
 ignoreCaseInOrderBy()
 respectCaseInOrderBy()

I think ignoreCase() and respectCase() should be abstract but
ignoreCaseInOrderBy() and respectCaseInOrderBy() should by default only call
ignoreCase() and respectCase() respectively.  The need for a separate case
in Order By will probably not arise to often, and implementations that need
this can only override them.  Any comments?

Might also be worthwhile to have a short tutorial of adding new databases
(i.e. subclassing DB), that explains this (and other) issues.  If I can find
the time I'll do a quick first draft of one :-)

Regards
Leon



------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to