Re: websearch_to_tsquery() returns queries that don't match to_tsvector()

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>, Teodor Sigaev <teodor@postgrespro.ru>, Oleg Bartunov <obartunov@postgrespro.ru>
Date: 2021-05-02T18:04:56Z
Lists: pgsql-bugs, pgsql-hackers
Alexander Korotkov <aekorotkov@gmail.com> writes:
> Ooops, I've included this by oversight.  The next revision is attached.
> Anything besides that?

Some quick eyeball review:

+                    /* Everything is quotes is processed as a single token */

Should read "Everything in quotes ..."

-                    /* or else gettoken_tsvector() will raise an error */
+                    /* or else ƒtsvector() will raise an error */

Looks like an unintentional change?

@@ -846,7 +812,6 @@ parse_tsquery(char *buf,
 	state.buffer = buf;
 	state.buf = buf;
 	state.count = 0;
-	state.in_quotes = false;
 	state.state = WAITFIRSTOPERAND;
 	state.polstr = NIL;

This change seems wrong/unsafe too.

			regards, tom lane



Commits

  1. Make websearch_to_tsquery() parse text in quotes as a single token