No = operator for opfamily 426

Manuel Rigger <rigger.manuel@gmail.com>

From: Manuel Rigger <rigger.manuel@gmail.com>
To: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-11-19T14:31:43Z
Lists: pgsql-bugs
Hi everyone,

Consider the following statements:

CREATE TABLE t0(c0 TEXT);
CREATE INDEX i0 ON t0(c0 bpchar_ops);
SELECT * FROM t0 WHERE t0.c0 LIKE ''; -- ERROR:  no = operator for opfamily 426

Unexpectedly, the index seems to create problems for the subsequent
query. When replacing the TEXT type by CHAR, the statements execute
successfully. Should it be possible to use this opclass for the TEXT
type?

Best,
Manuel



Commits

  1. Sync patternsel_common's operator selection logic with pattern_prefix's.

  2. Reduce match_pattern_prefix()'s dependencies on index opfamilies.

  3. Fix corner-case failure in match_pattern_prefix().