Re: ERROR: failed to find conversion function from key_vals_nn to record[]

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: ERROR: failed to find conversion function from key_vals_nn to record[]
Дата
Msg-id CAKFQuwZordXQdGAFuuVabhsoCN8ecmo4cbt89LcUmRSvTCEr+A@mail.gmail.com
обсуждение исходный текст
Ответ на ERROR: failed to find conversion function from key_vals_nn to record[]  (Bryn Llewellyn <bryn@yugabyte.com>)
Ответы Re: ERROR: failed to find conversion function from key_vals_nn to record[]
Re: ERROR: failed to find conversion function from key_vals_nn to record[]
Список pgsql-general
On Wednesday, June 15, 2022, Bryn Llewellyn <bryn@yugabyte.com> wrote:
I’ve copied a self-contained testcase below. Is the error that the "as intended" test causes due to a known limitation—or even a semantic dilemma that I'm failing to spot? Or might it be due to a bug?

I read the note in create domain as basically “don’t do this” (the not null part) but the issue you are pointing out seems unrelated to that. 


/*
  This one cases the error, thus:

  ERROR:  failed to find conversion function from key_vals_nn to record[]
  CONTEXT:  SQL expression "(kv1_nn = any(kvs_nn))"
*/;
select f('as intended');


The fact that a domain over an array isn’t being seen as an array here seems like a bug.  POLA violation at least, and I don’t recall any notes regarding this dynamic in the docs.

However, a more trivial case does work, at least in HEAD:

postgres=# create domain mytext as text[] not null;
CREATE DOMAIN
postgres=# select '1' = any(array['1','2']::mytext);
 ?column?
----------
 t
(1 row)

However, as you show:

postgres=# create type kv AS ( key text, val text );
CREATE TYPE

postgres=# create domain kvarr as kv[];
CREATE DOMAIN

postgres=# select ('1','one')::kv = any (array[('1','one')::kv]);
 ?column?
----------
 t
(1 row)

postgres=# select ('1','one')::kv = any ((array[('1','one')::kv])::kvarr);
ERROR:  failed to find conversion function from kvarr to record[]

So the interaction of a composite type and the domain over array seems to be the scope of the issue - which makes me thing bug even more.

David J.

В списке pgsql-general по дате отправления:

Предыдущее
От: Bryn Llewellyn
Дата:
Сообщение: ERROR: failed to find conversion function from key_vals_nn to record[]
Следующее
От: Bryn Llewellyn
Дата:
Сообщение: Re: ERROR: failed to find conversion function from key_vals_nn to record[]