Lists: | pgsql-committers |
---|
From: | Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix two bugs in tsquery @> operator. |
Date: | 2014-10-27 08:52:26 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-committers |
Fix two bugs in tsquery @> operator.
1. The comparison for matching terms used only the CRC to decide if there's
a match. Two different terms with the same CRC gave a match.
2. It assumed that if the second operand has more terms than the first, it's
never a match. That assumption is bogus, because there can be duplicate
terms in either operand.
Rewrite the implementation in a way that doesn't have those bugs.
Backpatch to all supported versions.
Branch
------
REL9_2_STABLE
Modified Files
--------------
src/backend/utils/adt/tsquery_op.c | 131 +++++++++++++++++++++++++-----------
1 file changed, 90 insertions(+), 41 deletions(-)
From: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi> |
Cc: | pgsql-committers(at)postgresql(dot)org |
Subject: | Re: pgsql: Fix two bugs in tsquery @> operator. |
Date: | 2014-10-27 10:24:01 |
Message-ID: | CAB7nPqRcaCwafnBfipKzfcsezNa-jYuOhg7kBQQ+hLxjQ6CxzA@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-committers |
On Mon, Oct 27, 2014 at 5:52 PM, Heikki Linnakangas
<heikki(dot)linnakangas(at)iki(dot)fi> wrote:
> Fix two bugs in tsquery @> operator.
>
> 1. The comparison for matching terms used only the CRC to decide if there's
> a match. Two different terms with the same CRC gave a match.
>
> 2. It assumed that if the second operand has more terms than the first, it's
> never a match. That assumption is bogus, because there can be duplicate
> terms in either operand.
>
> Rewrite the implementation in a way that doesn't have those bugs.
>
> Backpatch to all supported versions.
Perhaps the CRC implementation would change in the future, but what
about adding regression tests as well? Those are still bugs.
--
Michael