|From:||Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>|
|To:||"Higuchi, Daisuke" <higuchi(dot)daisuke(at)jp(dot)fujitsu(dot)com>|
|Cc:||"'Dmitry Dolgov'" <9erthalion6(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>|
|Subject:||Re: [Bug Fix]ECPG: cancellation of significant digits on ECPG|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
"Higuchi, Daisuke" <higuchi(dot)daisuke(at)jp(dot)fujitsu(dot)com> writes:
> From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
>> So I think that we ought to unconditionally make the sqlda value's digit
>> buffer look just like the one we're copying, even when ndigits = 0,
>> which just requires removing the tests on ndigits.
> I agree with you. Seeing this thread, 'if (ndigits = 0)' was introduced only to avoid memcpy() crash. I do not know this solution was best or not, but no crash occurs in the current version. So, I also think 'if (ndigits = 0)' should be removed.
Hmmm ... looking at PGTYPESnumeric_from_asc, it seems like the current
behavior is different from what was described in that old thread; the only
case where a digit buffer wouldn't be created is a NaN. But maybe a crash
could occur for NaN. Perhaps we should use "if (num->sign !=
NUMERIC_NAN)" as a guard?
regards, tom lane
|Next Message||Michael Paquier||2018-11-14 01:33:57||pgsql: Add flag values in WAL description to all heap records|
|Previous Message||Amit Langote||2018-11-14 01:09:09||Re: move PartitionBoundInfo creation code|