Re: Error-safe user functions
От | Andrew Dunstan |
---|---|
Тема | Re: Error-safe user functions |
Дата | |
Msg-id | 469338a3-da38-160f-23b9-813c261bc1d6@dunslane.net обсуждение исходный текст |
Ответ на | Re: Error-safe user functions (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Error-safe user functions
|
Список | pgsql-hackers |
On 2022-11-21 Mo 00:26, Tom Lane wrote: > Corey Huinker <corey.huinker@gmail.com> writes: >> On Tue, Nov 15, 2022 at 11:36 AM Andrew Dunstan <andrew@dunslane.net> wrote: >>> Nikita, >>> just checking in, are you making progress on this? I think we really >>> need to get this reviewed and committed ASAP if we are to have a chance >>> to get the SQL/JSON stuff reworked to use it in time for release 16. >> I'm making an attempt at this or something very similar to it. I don't yet >> have a patch ready. > Cool. We can't delay too much longer on this if we want to have > a credible feature in v16. Although I want a minimal initial > patch, there will still be a ton of incremental work to do after > the core capability is reviewed and committed, so there's no > time to lose. > > OK, here's a set of minimal patches based on Nikita's earlier work and also some work by my colleague Amul Sul. It tries to follow Tom's original outline at [1], and do as little else as possible. Patch 1 introduces the IOCallContext node. The caller should set the no_error_throw flag and clear the error_found flag, which will be set by a conforming IO function if an error is found. It also includes a string field for an error message. I haven't used that, it's more there to stimulate discussion. Robert suggested to me that maybe it should be an ErrorData, but I'm not sure how we would use it. Patch 2 introduces InputFunctionCallContext(), which is similar to InputFunctionCall() but with an extra context parameter. Note that it's ok for an input function to return a NULL to this function if an error is found. Patches 3 and 4 modify the bool_in() and int4in() functions respectively to handle an IOContextCall appropriately if provided one in their fcinfo.context. Patch 5 introduces COPY FROM ... NULL_ON_ERROR which, in addition to being useful in itself, provides a test of the previous patches. I hope we can get a fairly quick agreement so that work can being on adjusting at least those things needed for the SQL/JSON patches ASAP. Our goal should be to adjust all the core input functions, but that's not quite so urgent, and can be completed in parallel with the SQL/JSON work. cheers andrew [1] https://www.postgresql.org/message-id/13351.1661965592%40sss.pgh.pa.us -- Andrew Dunstan EDB: https://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: