Обсуждение: tsearch2 error msg

Поиск
Список
Период
Сортировка

tsearch2 error msg

От
"Magnus Hagander"
Дата:
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



Re: tsearch2 error msg

От
Teodor Sigaev
Дата:
> 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/
 


Re: tsearch2 error msg

От
"Magnus Hagander"
Дата:
> > 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



Re: tsearch2 error msg

От
Oleg Bartunov
Дата:
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


Re: tsearch2 error msg

От
AgentM
Дата:
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


Re: tsearch2 error msg

От
Teodor Sigaev
Дата:
> 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/
 


Re: tsearch2 error msg

От
Martijn van Oosterhout
Дата:
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.

Re: tsearch2 error msg

От
Tom Lane
Дата:
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


Re: tsearch2 error msg

От
Markus Schaber
Дата:
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