| From: | jian he <jian(dot)universality(at)gmail(dot)com> |
|---|---|
| To: | Amul Sul <sulamul(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-11-25 02:59:42 |
| Message-ID: | CACJufxH3LUpmeeDBgWUOxVggU4Xq6ZxVnMALE-5aT9yX0n2rYw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Nov 24, 2025 at 11:38 AM Amul Sul <sulamul(at)gmail(dot)com> wrote:
>
> The change I was suggesting will be as below:
>
> --- a/src/backend/utils/adt/varlena.c
> +++ b/src/backend/utils/adt/varlena.c
> @@ -2684,6 +2684,13 @@ name_text(PG_FUNCTION_ARGS)
> */
> List *
> textToQualifiedNameList(text *textval)
> +{
> + textToQualifiedNameListSafe(textval, NULL);
> +}
> +
> +/* error safe version of textToQualifiedNameList */
> +List *
> +textToQualifiedNameListSafe(text *textval, Node *escontext)
> {
> char *rawname;
> List *result = NIL;
>
>
> We must try to avoid duplication whenever possible, as any bug fixes
> or enhancements would need to be copied to multiple places, which is
> often overlooked.
>
hi.
great idea!
I incorporated all of your ideas into v11.
I replaced all errsave to ereturn.
I aslo simplified T_SafeTypeCastExpr expression initialization, evaluation logic
within execExpr.c, execExprInterp.c.
but one thing I didn't touch: float8_div.
+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.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Chao Li | 2025-11-25 03:03:50 | Fixes bug in strlower_libc_sb() |
| Previous Message | Shinya Kato | 2025-11-25 02:05:52 | Re: Add mode column to pg_stat_progress_vacuum |