BUG #18636: I am seeing a difference in behavior between 13.12 and 15.6 for full text searching
The following bug has been logged on the website:
Bug reference: 18636
Logged by: Glenn Cipolla
Email address: glenncipolla@gmail.com
PostgreSQL version: 13.12
Operating system: Ubuntu 11.4
Description:
The following query
select to_tsvector('simple','RG147SW RG14 Greenham Road Newbury West
Berkshire')
@@ to_tsquery('simple', 'gree,west:*');
Returns false in PG 15.6, but returns true in pg 13.12. In 15.6 the code
returns 'gree:* <-> 'west':*.
In 13.12 it returns 'gree:* & 'west':*
This article says the 13.12 behavior was a bug that was fixed in 14.x
(https://akorotkov.github.io/blog/2021/05/22/pg-14-query-parsing/).
I have a dev team about to change their code to handle the new <->. Before
they do that, I would like a confirmation that this functionality is
1. A bug
2. The new functionality will not change back in newer versions. Do you
intent to stick with the <-> return value?
Thanks,
Glenn
On Fri, 2024-09-27 at 13:28 +0000, PG Bug reporting form wrote:
The following bug has been logged on the website:
Bug reference: 18636
Logged by: Glenn Cipolla
Email address: glenncipolla@gmail.com
PostgreSQL version: 13.12
Operating system: Ubuntu 11.4
Description:The following query
select to_tsvector('simple','RG147SW RG14 Greenham Road Newbury West
Berkshire')
@@ to_tsquery('simple', 'gree,west:*');Returns false in PG 15.6, but returns true in pg 13.12. In 15.6 the code
returns 'gree:* <-> 'west':*.
In 13.12 it returns 'gree:* & 'west':*This article says the 13.12 behavior was a bug that was fixed in 14.x
(https://akorotkov.github.io/blog/2021/05/22/pg-14-query-parsing/).I have a dev team about to change their code to handle the new <->. Before
they do that, I would like a confirmation that this functionality is
1. A bug
2. The new functionality will not change back in newer versions. Do you
intent to stick with the <-> return value?
We intend to stick with the way it works now... unless somebody comes
up with a very good reason why that behavior is buggy and worth the
compatibility pain the fix incurs.
From the commit message, the reason for 0c4f355c6a was that
to_tsquery('simple', 'pg_class catalog')
used to return
'( pg & class ) <-> catalog'
That is nonsensical, because both "pg" and "class" would have to
occur right before "catalog", which cannot be.
That seemed buggy enough to warrant a compatibility break.
We cannot promise that no more bugs will be found whose fixes will
break compatibility, but we have every intention not to introduce
incompatibilities wantonly.
Yours,
Laurenz Albe