The following bug has been logged on the website:
Bug reference: 17542
Logged by: Jordan Lewis
Email address: jordanthelewis@gmail.com
PostgreSQL version: 14.3
Operating system: Linux
Description:
Consider the following query:
jordan=> select '((a <2> c) & (b <-> c)) <-> d'::tsquery @@ 'a:1 b:2 c:3
d:4';
?column?
----------
f
(1 row)
I think this should return "true", because both of the expressions on the
left-hand-side of the outer <-> operator of the tsquery do in fact precede
the "d" term in the tsvector.
Here is output that shows this:
jordan=> select '((a <2> c)) <-> d'::tsquery @@ 'a:1 b:2 c:3 d:4';
?column?
----------
t
(1 row)
jordan=> select '((b <-> c)) <-> d'::tsquery @@ 'a:1 b:2 c:3 d:4';
?column?
----------
t
(1 row)
I think things go wrong in the query executor because the two LHS clauses
have different widths.
Do you agree that this is incorrect output?