Re: SQL issue after migrating from version 13 to 15

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: SQL issue after migrating from version 13 to 15
Дата
Msg-id 381371.1698075077@sss.pgh.pa.us
обсуждение исходный текст
Ответ на SQL issue after migrating from version 13 to 15  ("Campbell, Lance" <lance@illinois.edu>)
Ответы RE: SQL issue after migrating from version 13 to 15  ("Campbell, Lance" <lance@illinois.edu>)
Список pgsql-sql
"Campbell, Lance" <lance@illinois.edu> writes:
> The below segment of the where clause works fine if the value passed is a single value like "real":

> AND to_tsvector('simple', CAST (table_column as text)) @@ to_tsquery('simple', 'real')

> However, this no longer works when there are two values "real,impact". The only change was migrating from PostgreSQL
13to 15: 

> AND to_tsvector('simple', CAST (table_column as text)) @@ to_tsquery('simple', 'real,impact')

You really should define what you mean by "works" in a question
like this.

However, I think what you are unhappy about is that the interpretation
of that to_tsquery input has changed.  In v13:

regression=# select to_tsquery('simple', 'real,impact');
    to_tsquery
-------------------
 'real' & 'impact'
(1 row)

In v14 and later:

regression=# select to_tsquery('simple', 'real,impact');
     to_tsquery
---------------------
 'real' <-> 'impact'
(1 row)

The v14 release notes mention that there were incompatible changes in
this area, although they don't cite this specific case.  But anyway,
if the behavior you want is & then I'd suggest writing &, rather than
assuming that some other punctuation will behave the same.  Or you
could switch to plainto_tsquery(), which disregards the punctuation
altogether.

            regards, tom lane



В списке pgsql-sql по дате отправления:

Предыдущее
От: "Campbell, Lance"
Дата:
Сообщение: SQL issue after migrating from version 13 to 15
Следующее
От: "Campbell, Lance"
Дата:
Сообщение: RE: SQL issue after migrating from version 13 to 15