Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions

From: Amul Sul <sulamul(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org>, Isaac Morland <isaac(dot)morland(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions
Date: 2025-12-01 12:08:24
Message-ID: CAAJ_b95zduu3UU7c9YkZH3iX56SF2RWKKkRjy2dj1S4r-8272w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Nov 25, 2025 at 8:30 AM jian he <jian(dot)universality(at)gmail(dot)com> wrote:
>
> On Mon, Nov 24, 2025 at 11:38 AM Amul Sul <sulamul(at)gmail(dot)com> wrote:
> >
> > [...]
> +static inline float8
> +float8_div_safe(const float8 val1, const float8 val2, struct Node *escontext)
>
> but we can change float8_div to:
>
> static inline float8
> float8_div(const float8 val1, const float8 val2)
> {
> return float8_div_safe(val1, val2, NULL);
> }
> I am worried that entering another function would cause a minor performance
> degradation. And since these simple functions are so simple, keeping them
> separated should not be a big problem. also I placed float8_div,
> float8_div_safe together.

Since you declared float8_div_safe() as static inline, I believe it
wouldn't have any performance degradation since most compilers
optimize it. Also, I suggest you pass the ErrorSafeContext to
float_overflow_error(), float_underflow_error(), and
float_zero_divide_error() so that you can avoid duplicating error
messages.

Regards,
Amul

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2025-12-01 12:13:14 Re: POC: enable logical decoding when wal_level = 'replica' without a server restart
Previous Message Amul Sul 2025-12-01 12:01:43 Re: Refactoring: Use soft error reporting for *_opt_overflow functions of date/timestamp