Re: Error-safe user functions
От | Ted Yu |
---|---|
Тема | Re: Error-safe user functions |
Дата | |
Msg-id | CALte62wLvzOAigC5bdsxX73WGGi5zX5OiYmjkNYcRFkHo8nMYQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Error-safe user functions (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: Error-safe user functions
|
Список | pgsql-hackers |
On Fri, Dec 23, 2022 at 9:20 AM Andrew Dunstan <andrew@dunslane.net> wrote:
On 2022-12-22 Th 11:44, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> Yeah, I started there, but it's substantially more complex - unlike cube
>> the jsonpath scanner calls the error routines as well as the parser.
>> Anyway, here's a patch.
> I looked through this and it seems generally OK. A minor nitpick is
> that we usually write "(Datum) 0" not "(Datum) NULL" for dont-care Datum
> values.
Fixed in the new version attached.
> A slightly bigger issue is that makeItemLikeRegex still allows
> an error to be thrown from RE_compile_and_cache if a bogus regex is
> presented. But that could be dealt with later.
I'd rather fix it now while we're paying attention.
>
> (I wonder why this is using RE_compile_and_cache at all, really,
> rather than some other API. There doesn't seem to be value in
> forcing the regex into the cache at this point.)
>
>
I agree. The attached uses pg_regcomp instead. I had a lift a couple of
lines from regexp.c, but not too many.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
Hi,
In makeItemLikeRegex :
+ CHECK_FOR_INTERRUPTS();
+ pg_regerror(re_result, &re_tmp, errMsg, sizeof(errMsg));
+ ereturn(escontext, false,
Since an error is returned, I wonder if the `CHECK_FOR_INTERRUPTS` call is still necessary.
Cheers
В списке pgsql-hackers по дате отправления: