Re: LIKE predicate and '\' character - Mailing list pgsql-hackers
From | Andy Hallam |
---|---|
Subject | Re: LIKE predicate and '\' character |
Date | |
Msg-id | 9se3tt$1dkl$1@news.tht.net Whole thread Raw |
In response to | Re: LIKE predicate and '\' character (Karel Zak <zakkr@zf.jcu.cz>) |
List | pgsql-hackers |
I have since found out that Postgres treats \ as the default LIKE escape character. (Courtesy Stephan Szabo) I will learn to live with this 'feature'. Thanks. Andy "Andy Hallam" <ahm@exel.co.uk> wrote in message news:9se3qn$1dju$1@news.tht.net... > Did you actually read my mail posting??? > > > I sent a previous mail with regard to using the '\' (backslash) character > in > > an SQL SELECT statement. > > The outcome was that postgres does not escape the '\' itself - I need to > do > > it myself before submitting the SQL - fair enough, I now do this. > > I already know what you have just tried to explain to me. > > My question is not about having to escape a '\' character but the fact that > the behaviour is not consistent when using the LIKE predicate. I.e - you > have to escape the escape when using LIKE. > > Andy. > > > > > > > "Karel Zak" <zakkr@zf.jcu.cz> wrote in message > news:20011107151110.C6354@zf.jcu.cz... > > On Wed, Nov 07, 2001 at 12:56:46PM -0000, Andy Hallam wrote: > > > > The PostgreSQL parser "eat" one '\' on arbitrary place in query. You > > you want put '\' to some function (operator) you must use '\\'. > > > > test=# select '\\'; > > ?column? > > ---------- > > \ > > (1 row) > > > > test=# select '\\\\'; > > ?column? > > ---------- > > \\ > > (1 row) > > > > test=# select 'hello\\pg' like 'hello\\pg'; > > ?column? > > ---------- > > f > > (1 row) > > > > test=# select 'hello\\pg' like 'hello\\\\pg'; > > ?column? > > ---------- > > t > > (1 row) > > > > Karel > > > > > > > PostgreSQL - 7.1.3 (installed on Linux 2.4.2-2) > > > PSQLODBC.DLL - 07.01.0007 > > > Visual C++ - 6.0 > > > > > > I sent a previous mail with regard to using the '\' (backslash) > character in > > > an SQL SELECT statement. > > > The outcome was that postgres does not escape the '\' itself - I need to > do > > > it myself before submitting the SQL - fair enough, I now do this. > > > > > > i.e > > > instead of > > > mydb=# SELECT * FROM users WHERE id = 'WORKGROUP\me'; > > > I now do > > > mydb=# SELECT * FROM users WHERE id = 'WORKGROUP\\me'; > > > > > > BUT, if I use the LIKE predicate I have to escape the escape. > > > > > > i.e > > > mydb=# SELECT * FROM users WHERE id LIKE 'WORKGROUP\\\\me'; > > > > > > > > > Now this must be treated as a bug. > > > As you can see it is not an error with the PSQLODBC driver as I ran the > SQL > > > from the command line with the same results. > > > I am presuming that the backend parsing logic around the LIKE prodicate > is > > > ignoring the '\'. > > > > > > Is anyone working on this ?. Can anyone send me a fix, as without this > I'm > > > screwed. > > > > > > Thanks for any help > > > > > > Andy. > > > ahm@exel.co.uk > > > > > > > > > > > > > > > > > > > > > ---------------------------(end of broadcast)--------------------------- > > > TIP 2: you can get off all lists at once with the unregister command > > > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > > > > -- > > Karel Zak <zakkr@zf.jcu.cz> > > http://home.zf.jcu.cz/~zakkr/ > > > > C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > >
pgsql-hackers by date: