tsearch2 error msg

Started by Magnus Haganderover 19 years ago9 messages
#1Magnus Hagander
mha@sollentuna.net

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

#2Teodor Sigaev
teodor@sigaev.ru
In reply to: Magnus Hagander (#1)
Re: tsearch2 error msg

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/

#3Magnus Hagander
mha@sollentuna.net
In reply to: Teodor Sigaev (#2)
Re: tsearch2 error msg

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

#4Oleg Bartunov
oleg@sai.msu.su
In reply to: Magnus Hagander (#3)
Re: tsearch2 error msg

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

#5AgentM
agentm@themactionfaction.com
In reply to: Oleg Bartunov (#4)
Re: tsearch2 error msg

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

#6Teodor Sigaev
teodor@sigaev.ru
In reply to: AgentM (#5)
Re: tsearch2 error msg

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/

#7Martijn van Oosterhout
kleptog@svana.org
In reply to: Magnus Hagander (#1)
Re: tsearch2 error msg

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/

Show quoted text

From each according to his ability. To each according to his ability to litigate.

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Martijn van Oosterhout (#7)
Re: tsearch2 error msg

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

#9Markus Schaber
schabi@logix-tt.com
In reply to: Tom Lane (#8)
Re: tsearch2 error msg

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