Thread: Proper quoting of \e ?
Hello ! We have a database in SQL_ASCII in postgres 7.2.1 which contains among other information document titles which are automatically retrieved. I took care of quoting "`" but recently stumpled about "\e" which I have problems working with. Example (in psql, but in php it is the same): SELECT title from written_by where title like 'An equation of state {\%'; title ------------------------------------------------------------------------------------------------- An equation of state {\em \`a la} Carnahan-Starling for a five-dimensional fluid of hard hyperspheres (1 row) works, but if I take one character more (or, later, the entire title), it does not: SELECT title from written_by where title like 'An equation of state {\e%'; title ------- (0 rows) I tried various variations (like \\e and simmilar) and looked through the interactive docs but did not find anything. Unfortunately I could not search through the list archives because of some problems with the backend database. Thanks for any pointers Helge -- Helge Kreutzmann, Dipl.-Phys. Helge.Kreutzmann@itp.uni-hannover.de gpg signed mail preferred gpg-key: fingerkreutzm@rigel.itp.uni-hannover.de 64bit GNU powered http://www.itp.uni-hannover.de/~kreutzm Help keep free software "libre": http://www.freepatents.org/ -- Helge Kreutzmann, Dipl.-Phys. Helge.Kreutzmann@itp.uni-hannover.de gpg signed mail preferred gpg-key: fingerkreutzm@rigel.itp.uni-hannover.de 64bit GNU powered http://www.itp.uni-hannover.de/~kreutzm Help keep free software "libre": http://www.freepatents.org/
Helge Kreutzmann wrote: -- Start of PGP signed section. > Hello ! > We have a database in SQL_ASCII in postgres 7.2.1 which contains among > other information document titles which are automatically retrieved. > I took care of quoting "`" but recently stumpled about "\e" which I > have problems working with. Example (in psql, but in php it is the same): > > SELECT title from written_by where title like 'An equation of state {\%'; > title > ------------------------------------------------------------------------------------------------- > An equation of state {\em \`a la} Carnahan-Starling for a five-dimensional fluid of hard hyperspheres > (1 row) > > works, but if I take one character more (or, later, the entire title), > it does not: > > SELECT title from written_by where title like 'An equation of state {\e%'; I noticed you escaped the % in the first query, but not the second. No idea how that effects things. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
On Thu, Apr 25, 2002 at 11:47:16AM -0400, Bruce Momjian wrote: > > I took care of quoting "`" but recently stumpled about "\e" which I > > have problems working with. Example (in psql, but in php it is the same): > > > > SELECT title from written_by where title like 'An equation of state {\%'; > > title > > ------------------------------------------------------------------------------------------------- > > An equation of state {\em \`a la} Carnahan-Starling for a five-dimensional fluid of hard hyperspheres > > (1 row) > > > > works, but if I take one character more (or, later, the entire title), > > it does not: > > > > SELECT title from written_by where title like 'An equation of state {\e%'; > > I noticed you escaped the % in the first query, but not the second. No > idea how that effects things. Well, the "\" is part of the strings to be outputed, so I did not intend to quota anything. If I replace \ to \\ in my first query, I get also no result. Greetings Helge -- Helge Kreutzmann, Dipl.-Phys. Helge.Kreutzmann@itp.uni-hannover.de gpg signed mail preferred gpg-key: fingerkreutzm@rigel.itp.uni-hannover.de 64bit GNU powered http://www.itp.uni-hannover.de/~kreutzm Help keep free software "libre": http://www.freepatents.org/
Helge Kreutzmann wrote: > Well, the "\" is part of the strings to be outputed, so I did not > intend to quota anything. If I replace \ to \\ in my first query, I > get also no result. > I think you need 4 '\'s: test=# create table written_by(title text); CREATE test=# insert into written_by values('An equation of state {\\em \\\`a la} Carnahan-Starling'); INSERT 16661 1 test=# select * from written_by; title ----------------------------------------------------- An equation of state {\em \`a la} Carnahan-Starling (1 row) test=# SELECT title from written_by where title like 'An equation of state {\\\\e%'; title ----------------------------------------------------- An equation of state {\em \`a la} Carnahan-Starling (1 row) This is because the string literal parser reduces '\\\\' to '\\', and then the backend function which implements LIKE interprets '\\' as '\'. HTH, Joe