Re: websearch_to_tsquery() returns queries that don't match to_tsvector()
Alexander Korotkov <aekorotkov@gmail.com>
From: Alexander Korotkov <aekorotkov@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
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:12:11Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- 0001-Make-websearch_to_tsquery-parse-text-in-quotes-as-v3.patch (application/octet-stream) patch v3-0001
On Sun, May 2, 2021 at 9:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > 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? Thank you for catching this! > @@ -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. It seems OK, because this patch removes in_quotes field altogether. We don't have to know whether we in quotes in the state, since we process everything in quotes as a single token. ------ Regards, Alexander Korotkov
Commits
-
Make websearch_to_tsquery() parse text in quotes as a single token
- eb086056fec4 14.0 landed