Re: Missing conversion error handling in postgres_fdw
От | Robert Haas |
---|---|
Тема | Re: Missing conversion error handling in postgres_fdw |
Дата | |
Msg-id | CA+TgmobZ9UJkoXmwFG2g5TLVU8x1-roZs6Kq56dzmDyDpi6OMA@mail.gmail.com обсуждение исходный текст |
Ответ на | Missing conversion error handling in postgres_fdw (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>) |
Ответы |
Re: Missing conversion error handling in postgres_fdw
|
Список | pgsql-hackers |
On Tue, Mar 15, 2016 at 4:06 AM, Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp> wrote: > 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. Hmm, I'd say you are right. Committed. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: