BUG #17916: Expression IN list translates to unqualified operator
| От | PG Bug reporting form |
|---|---|
| Тема | BUG #17916: Expression IN list translates to unqualified operator |
| Дата | |
| Msg-id | 17916-8d713fd64529da21@postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #17916: Expression IN list translates to unqualified operator
|
| Список | 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 по дате отправления: