Re: Potential issue in ecpg-informix decimal converting functions
Aidar Imamov <a.imamov@postgrespro.ru>
From: a.imamov@postgrespro.ru
To: Daniel Gustafsson <daniel@yesql.se>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-02-23T15:03:41Z
Lists: pgsql-hackers
Attachments
- informix_convert_from_decimal.patch (text/x-diff) patch
Daniel Gustafsson писал(а) 2024-02-23 13:44: >> On 22 Feb 2024, at 17:54, a.imamov@postgrespro.ru wrote: > >> PGTYPESnumeric_to_int() and PGTYPESnumeric_to_long() >> functions return only 0 or -1. So ECPG_INFORMIX_NUM_OVERFLOW can never >> be returned. > > Indeed, this looks like an oversight. > >> I think dectoint(), dectolong() and PGTYPESnumeric_to_int() functions >> should be a little bit different like in proposing patch. >> What do you think? > > - Convert a variable to type decimal to an integer. > + Convert a variable of type decimal to an integer. > While related, this should be committed and backpatched regardless. > > + int errnum = 0; > Stylistic nit, we typically don't initialize a variable which cannot be > accessed before being set. > > Overall the patch looks sane, please register it for the next > commitfest to > make it's not missed. > > -- > Daniel Gustafsson Thank you for feedback, - Convert a variable to type decimal to an integer. + Convert a variable of type decimal to an integer. I removed this from the patch and proposed to pgsql-docs@lists.postgresql.org + int errnum = 0; fixed Thank's for advice, the patch will be registered for the next commitfest. -- Aidar Imamov
Commits
-
doc: Document error handling in PGTYPESnumeric_to_long
- 68174679fea2 17.0 landed
-
ecpg: Fix return code for overflow in numeric conversion
- b2d6b4c728a2 17.0 landed