Re: Unexpected "cache lookup failed for collation 0" failure

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Manuel Rigger <rigger.manuel@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Date: 2019-11-13T20:56:11Z
Lists: pgsql-bugs
I wrote:
> Manuel Rigger <rigger.manuel@gmail.com> writes:
>> Is the error "cache lookup failed for collation 0" in this context expected?

>> CREATE TABLE t0(c0 CHAR(2) COLLATE "C", c1 CHAR(2) COLLATE "POSIX");
>> INSERT INTO t0 VALUES('', '');
>> SELECT * FROM t0 WHERE t0.c1 NOT IN (t0.c0); -- unexpected: cache
>> lookup failed for collation 0

> I get an assertion failure :-(, although the assertion is just
> complaining about the same thing, ie no-collation-assigned.
> Used to work before v12, too.  Looking...

Looks like a simple oversight --- when bpcharne() was made
collation-sensitive, it should have grown a check_collation_set()
call, but somehow that got left out.  Fixed.

			regards, tom lane



Commits

  1. Add missing check_collation_set call to bpcharne().