Fix two bugs in tsquery @> operator.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 10059c2da7ee2a355e261ed5e56dcec4657e01aa
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2014-10-27T08:51:38Z
Releases: 9.0.19
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.

Files

PathChange+/−
src/backend/utils/adt/tsquery_op.c modified +89 −40