Missing conversion error handling in postgres_fdw
От | Etsuro Fujita |
---|---|
Тема | Missing conversion error handling in postgres_fdw |
Дата | |
Msg-id | 56E7C273.40908@lab.ntt.co.jp обсуждение исходный текст |
Ответы |
Re: Missing conversion error handling in postgres_fdw
|
Список | pgsql-hackers |
Hi, I noticed that this in make_tuple_from_result_row does conversion error handling only for the ordinary-column case (ie, errpos.cur_attno is set for that case, but not for the ctid case). /* convert value to internal representation */ if (i > 0) { /* ordinary column */ Assert(i <= tupdesc->natts); nulls[i - 1] = (valstr == NULL); /* Apply the input function even to nulls, to support domains */ errpos.cur_attno = i; values[i - 1] = InputFunctionCall(&attinmeta->attinfuncs[i - 1], valstr, attinmeta->attioparams[i - 1], attinmeta->atttypmods[i - 1]); errpos.cur_attno = 0; } else if (i == SelfItemPointerAttributeNumber) { /* ctid --- note we ignore any other system column in result */ if (valstr != NULL) { Datum datum; datum = DirectFunctionCall1(tidin, CStringGetDatum(valstr)); ctid = (ItemPointer) DatumGetPointer(datum); } } I think errpos.cur_attno should be set for the ctid case as well. Attached is a patch for that. Best regards, Etsuro Fujita
Вложения
В списке pgsql-hackers по дате отправления: