BUG #17916: Expression IN list translates to unqualified operator - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #17916: Expression IN list translates to unqualified operator
Date
Msg-id 17916-8d713fd64529da21@postgresql.org
Whole thread Raw
Responses Re: BUG #17916: Expression IN list translates to unqualified operator  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      17916
Logged by:          RekGRpth
Email address:      rekgrpth@gmail.com
PostgreSQL version: 15.2
Operating system:   alpine in docker
Description:

```sql
create schema qwe;
create or replace function qwe.chartexteq(a char, b text) returns boolean
language plpgsql as $$begin perform 1/0;return true;end;$$;
create operator qwe.= (leftarg = char, rightarg = text, function =
qwe.chartexteq, commutator = operator(qwe.=), hashes, merges);
set search_path = qwe;
explain (costs off, verbose on) select i from generate_series(1, 10) i where
i::char in (2::text);
                  QUERY PLAN                   
-----------------------------------------------
 Function Scan on pg_catalog.generate_series i
   Output: i
   Function Call: generate_series(1, 10)
   Filter: ((i.i)::character(1) = '2'::text)
 Query Identifier: -7727870581584713193
(5 rows)
select i from generate_series(1, 10) i where i::char in (2::text);
ERROR:  division by zero
CONTEXT:  SQL statement "SELECT 1/0"
PL/pgSQL function chartexteq(character,text) line 1 at PERFORM
```
I expected, that IN list translates to pg_catalog.=


pgsql-bugs by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: plpython does not honour max-rows
Next
From: Masahiko Sawada
Date:
Subject: Re: BUG #17914: walsenders taking up all memory