Thread: AW: Yet another LIKE-indexing scheme

AW: Yet another LIKE-indexing scheme

From
Zeugswetter Andreas SB
Date:
> On Sat, Sep 02, 2000 at 01:39:47PM -0400, Tom Lane wrote:
> > > So what happens with "WHERE name like 'Czec%`" ?
> > 
> > Our existing code fails because it generates WHERE name >= 
> 'Czec' AND
> > name < 'Czed'; it will therefore not find names beginning 'Czech'
> > because those are in another part of the index, between 'Czeh' and
> > 'Czei'.  But WHERE name >= 'Cze' AND name < 'Czf' would work.
> 
> (OK, I haven't read the previous discussion.  Guilty, m'lud)
> 
> Why should it?  If 'ch' is one letter, then surely 'czech' isn't LIKE
> 'czec%'.  Because 'czec%' has a second c, wheres, 'czech' only has one
> 'c' and one 'ch'?

Indeed an interesting interpretation, but what I guess makes it bogus is
that
words can exist that have a h after the c that do not represent the ch
character.

Andreas


Re: Yet another LIKE-indexing scheme

From
Jules Bean
Date:
On Wed, Sep 06, 2000 at 05:19:46PM +0200, Zeugswetter Andreas SB wrote:
> 
> > On Sat, Sep 02, 2000 at 01:39:47PM -0400, Tom Lane wrote:
> > > > So what happens with "WHERE name like 'Czec%`" ?
> > > 
> > > Our existing code fails because it generates WHERE name >= 
> > 'Czec' AND
> > > name < 'Czed'; it will therefore not find names beginning 'Czech'
> > > because those are in another part of the index, between 'Czeh' and
> > > 'Czei'.  But WHERE name >= 'Cze' AND name < 'Czf' would work.
> > 
> > (OK, I haven't read the previous discussion.  Guilty, m'lud)
> > 
> > Why should it?  If 'ch' is one letter, then surely 'czech' isn't LIKE
> > 'czec%'.  Because 'czec%' has a second c, wheres, 'czech' only has one
> > 'c' and one 'ch'?
> 
> Indeed an interesting interpretation, but what I guess makes it bogus is
> that
> words can exist that have a h after the c that do not represent the ch
> character.

This is an excellent point.

But in that case, how is the collating system to cope?  How can the
computer know which 'ch's are 'ch's and which are 'c''h's (IYSWIM)?

Jules