Re: [Bug Fix]ECPG: cancellation of significant digits on ECPG
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Higuchi, Daisuke" <higuchi.daisuke@jp.fujitsu.com>
Cc: "'Dmitry Dolgov'" <9erthalion6@gmail.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-11-14T16:32:15Z
Lists: pgsql-hackers
I wrote: > 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? After sleeping on it, it seems like the right thing to check for is whether num->buf is NULL, which describes precisely the situation where we should not try to make a copy of the digit buffer (and the initial struct memcpy has made a valid copy of the null pointers). So I fixed it like that. regards, tom lane
Commits
-
Second try at fixing numeric data passed through an ECPG SQLDA.
- 06c723447b6b 12.0 landed
- f9e25ba14077 9.6.12 landed
- 68f30638a050 9.5.16 landed
- 41609776f2c2 9.4.21 landed
- 4618fdd67412 11.2 landed
- 2e8ed4659972 10.7 landed
-
Fix incorrect results for numeric data passed through an ECPG SQLDA.
- ecfd5579561c 12.0 landed
- e1f25901268c 9.6.12 landed
- be38945c6e66 9.5.16 landed
- 9e5e3861c782 9.4.21 landed
- 68393f3fd6b9 11.2 landed
- 32060f6780bc 10.7 landed