Re: "ERROR: Query-specified return tuple and actual function

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: "ERROR: Query-specified return tuple and actual function
Дата
Msg-id 3E23722D.20001@joeconway.com
обсуждение исходный текст
Ответ на "ERROR: Query-specified return tuple and actual function return tuple do not match" after dropping column  ("Andrzej Kosmala" <ak@webproject.pl>)
Ответы Re: "ERROR: Query-specified return tuple and actual function  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Tom Lane wrote:
 > Joe Conway <mail@joeconway.com> writes:
 >> Hmmm, looks like nodeFunctionscan.c:tupledesc_mismatch needs to be
 >> taught about attisdropped. I'll submit a patch this evening if no
 >> one else gets to it first.
 >
 > Actually, I believe I deliberately left it like that because I was
 > concerned about what would happen in this scenario.  I don't think
 > that changing tupledesc_mismatch to ignore attisdropped columns will
 > make things work nicely.  If a function is expecting to return
 > (a,b,c) and then you drop b from the table that defines its return
 > type, is the function likely to magically return (a,c)?  I doubt it.

Assuming tupledesc_mismatch ignored attisdropped attributes, and the
function still output the dropped attribute, the error would be
triggered due to a mismatch. But then you could adjust your function and
be on your merry way.

In the case where the function is returning a whole table tuple (e.g.
select * from...), everthing should work correctly (and as expected).

Without this change, any table that has had a column dropped would not
be able to be used as a function's return type at all.

 > Letting the code get past the mismatch check is likely to result in
 > core dumps.

I don't see how. The code would still ensure that the returned tuple and
defined tuple match, wouldn't it?

start with table test, attributes (a,b,c)
drop attribute b from test
tupledesc_mismatch checks that function's output is (a,c)
if function actually outputs (a,c), no problem

Am I just being thick-headed?

Joe

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: "ERROR: Query-specified return tuple and actual function
Следующее
От: Tom Lane
Дата:
Сообщение: Re: "ERROR: Query-specified return tuple and actual function