Обсуждение: tsearch2 error msg
search=# select to_tsquery('foo bar'); ERROR: syntax error Might want to enhance that message to include the information that it's parsing the tsquery that's failing? I originally had it as part of a much larger query, and it took me a while to remember that it's tsearch that spits out that very generic error message. //Magnus
> Might want to enhance that message to include the information that it's > parsing the tsquery that's failing? I originally had it as part of a > much larger query, and it took me a while to remember that it's tsearch > that spits out that very generic error message. It possible, but not for 8.2 :( BTW, try # select plainto_tsquery('foo bar'); plainto_tsquery ----------------- 'foo' & 'bar' (1 row) It parses plain text and makes tsquery. Function exists only in 8.2 - some later we add docs about changes in tsearch2. -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/
> > Might want to enhance that message to include the information > that > > it's parsing the tsquery that's failing? I originally had it as > part > > of a much larger query, and it took me a while to remember that > it's > > tsearch that spits out that very generic error message. > It possible, but not for 8.2 :( Ok :-( Might want to put on TIDI? > BTW, try > # select plainto_tsquery('foo bar'); > plainto_tsquery > ----------------- > 'foo' & 'bar' > (1 row) > > It parses plain text and makes tsquery. Function exists only in 8.2 > - some later we add docs about changes in tsearch2. Ah, just what i've been looking for. The tsearch2 enhancements in 8.2 just get better and better :-) (And I'm working on 8.2beta, so it's not a problem) //Magnus
On Tue, 3 Oct 2006, Magnus Hagander wrote: >> BTW, try >> # select plainto_tsquery('foo bar'); >> plainto_tsquery >> ----------------- >> 'foo' & 'bar' >> (1 row) >> >> It parses plain text and makes tsquery. Function exists only in 8.2 >> - some later we add docs about changes in tsearch2. Current docs, covering 8.2 is available from http://www.sai.msu.su/~megera/wiki/tsearch2slides Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
On Oct 3, 2006, at 10:49 , Oleg Bartunov wrote: > On Tue, 3 Oct 2006, Magnus Hagander wrote: > >>> BTW, try >>> # select plainto_tsquery('foo bar'); >>> plainto_tsquery >>> ----------------- >>> 'foo' & 'bar' >>> (1 row) >>> >>> It parses plain text and makes tsquery. Function exists only in 8.2 >>> - some later we add docs about changes in tsearch2. > > Current docs, covering 8.2 is available from http://www.sai.msu.su/ > ~megera/wiki/tsearch2slides This is great news- previously, I was using various regexes to sanitize input into user-accessible search fields. Would it be build in some simple query language? "sam AND spade" "blue OR yellow" "(same AND spade) OR (blue AND yellow)" Obviously, the conjunctions would need to be defined on a per-locale basis. -M
> This is great news- previously, I was using various regexes to sanitize > input into user-accessible search fields. Would it be build in some > simple query language? > > "sam AND spade" > "blue OR yellow" > "(same AND spade) OR (blue AND yellow)" That's exactly to_tsquery syntax, just change AND to & and OR to |. :) So, if you can validate AND/OR then you can validate &/| syntax or validate AND/OR and change they to tsquery's equivalents. -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/
On Tue, Oct 03, 2006 at 04:34:06PM +0200, Magnus Hagander wrote: > search=# select to_tsquery('foo bar'); > ERROR: syntax error Seems to me, at the very least, the message should be: ERROR: tsearch: syntax error Then people have an idea where it comes from. Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to litigate.
Martijn van Oosterhout <kleptog@svana.org> writes: > On Tue, Oct 03, 2006 at 04:34:06PM +0200, Magnus Hagander wrote: >> search=3D# select to_tsquery('foo bar'); >> ERROR: syntax error > Seems to me, at the very least, the message should be: > ERROR: tsearch: syntax error No, it should be something like syntax error in tsearch query: "contents of string" since it's not always the case that you know exactly what string got fed to to_tsquery(). regards, tom lane
Hi, Tom, Tom Lane wrote: > No, it should be something like > > syntax error in tsearch query: "contents of string" > > since it's not always the case that you know exactly what string got fed > to to_tsquery(). I agree. It's also possible that you have more than one tsearch expression in the query (e. G. by joining different tables), so that will help further. HTH, Markus -- Markus Schaber | Logical Tracking&Tracing International AG Dipl. Inf. | Software Development GIS Fight against software patents in Europe! www.ffii.org www.nosoftwarepatents.org