Re: avoid negating LONG_MIN in cash_out()
От | Tom Lane |
---|---|
Тема | Re: avoid negating LONG_MIN in cash_out() |
Дата | |
Msg-id | 23291.1660239613@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | avoid negating LONG_MIN in cash_out() (Zhihong Yu <zyu@yugabyte.com>) |
Ответы |
Re: avoid negating LONG_MIN in cash_out()
|
Список | pgsql-hackers |
Zhihong Yu <zyu@yugabyte.com> writes: > In cash_out(), we have the following code: > if (value < 0) > { > /* make the amount positive for digit-reconstruction loop */ > value = -value; > The negation cannot be represented in type long when the value is LONG_MIN. Possibly not good, but it seems like the subsequent loop works anyway: regression=# select '-92233720368547758.08'::money; money ----------------------------- -$92,233,720,368,547,758.08 (1 row) Note that this exact test case appears in money.sql, so we know that it works everywhere, not only my machine. > It seems we can error out when LONG_MIN is detected instead of continuing > with computation. How could you think that that's an acceptable solution? Once the value is stored, we'd better be able to print it. regards, tom lane
В списке pgsql-hackers по дате отправления: