Thread

  1. PostgreSQL 6.4.2 locale regexp and like problem

    Petr Hubeny <psh@capitol.cz> — 1999-02-04T09:43:03Z

    Hi,
    
    I've recently found an interesting problem with using czech locale
    and the regular expressions matching beginning of the line. I traced
    the problem and found it is caused by the optimalization within 
    function makeIndexable, especially in the way the string match_most is
    constructed. What happens? The expression
    
    text ~ '^regexp'
    
    is rewritten into
    
    ( text ~ '^regexp' ) AND ( text >= 'regexp' ) AND ( text >= 'regexp\377' )
    
    ( N.B.: The same applies for expression "text LIKE 'match%'". )
    
    HOWEVER, in czech locale is 'regexp\377' < 'regexp' ! So the expression
    is doomed to be false.
    
    So I'd like to ask you: Is there any general (read: locale independent)
    way to create a 'match_most' string that would allow for such optimalization?
    
    Thanks for your patience,
    
    Psh
    
    -- 
    
    Mgr. Petr Hubený				ICQ UIN: 12472987