From: | Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | Amul Sul <sulamul(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Refactoring: Use soft error reporting for *_opt_error functions |
Date: | 2025-09-03 07:34:45 |
Message-ID: | CAEZATCUqTBXrPZb6+FK2dGNdO2i1GHVGsPGSKAz=VK9mu2adBg@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, 3 Sept 2025 at 07:47, Michael Paquier <michael(at)paquier(dot)xyz> wrote:
>
> The same error message is repeated twice. How about using some gotos
> and one single ereport instead of two? The same can be said for
> numeric_div_safe() and numeric_mod_safe(), for the division-by-0
> messages.
In numeric_div_safe() and numeric_mod_safe():
- * If "have_error" is provided, check for division by zero here
+ * If "escontext" is provided, raise division by zero soft error here
*/
- if (have_error && (arg2.ndigits == 0 || arg2.digits[0] == 0))
- {
- *have_error = true;
- return NULL;
- }
+ if (escontext && (arg2.ndigits == 0 || arg2.digits[0] == 0))
+ ereturn(escontext, NULL,
+ errcode(ERRCODE_DIVISION_BY_ZERO),
+ errmsg("division by zero"));
This might as well now be made to check for division-by-zero even if
escontext is NULL.
Regards,
Dean
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2025-09-03 08:28:45 | Re: VM corruption on standby |
Previous Message | Hayato Kuroda (Fujitsu) | 2025-09-03 07:34:37 | RE: Logical Replication of sequences |