Thread
-
LIKE 'bla%'
PostgreSQL Bugs List <pgsql-bugs@postgresql.org> — 2000-09-02T09:18:18Z
Henrik Steffen (steffen@city-map.de) reports a bug with a severity of 2 The lower the number the more severe it is. Short Description LIKE 'bla%' Long Description I just wanted to delete a record from a table, using DELETE FROM MYTABLE WHERE NAME LIKE 'Ant%'; knowing that there existed only one record with 'Anton' as name. However, the code above delivered 'DELETE 0' Then I did this: DELETE FROM MYTABLE WHERE NAME LIKE 'Anto%'; which gave 'DELETE 1' Isn't this strange? Sample Code DELETE FROM MYTABLE WHERE NAME LIKE 'Ant%'; <=> DELETE FROM MYTABLE WHERE NAME LIKE 'Anto%'; No file was uploaded with this report
-
Re: LIKE 'bla%'
Tom Lane <tgl@sss.pgh.pa.us> — 2000-09-02T17:18:14Z
pgsql-bugs@postgresql.org writes: > DELETE FROM MYTABLE WHERE NAME LIKE 'Ant%'; > knowing that there existed only one record with 'Anton' as name. > However, the code above delivered 'DELETE 0' > DELETE FROM MYTABLE WHERE NAME LIKE 'Anto%'; > which gave 'DELETE 1' > Isn't this strange? Yup. What PG version are you using, and are you running it with a non-English LOCALE setting? Is there an index on the NAME column? I suspect you are running into another variant of the problem we've had for a long time concerning how to derive upper and lower index boundes for a LIKE string. In ASCII locale it's pretty easy: name >= 'Ant' AND name < 'Anu' can be used to scan the index for all entries that might match the given LIKE pattern. But in non-ASCII locales with complicated collation rules that method tends to fail. See the pgsql-hackers mailing lists; latest go-round was thread Sigh, LIKE indexing is *still* broken in foreign locales in early June 2000. At the moment I don't think we know a bulletproof solution, other than not using indexes for LIKE, which won't make people happy either ... regards, tom lane