Re: jsonb_set() strictness considered harmful to data

Поиск
Список
Период
Сортировка
От Steven Pousty
Тема Re: jsonb_set() strictness considered harmful to data
Дата
Msg-id CAKmB1PEuvXeXLNiQjRCStRKYoMEB7U9+S3bupXvHuoURiGEa6A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: jsonb_set() strictness considered harmful to data  (raf <raf@raf.org>)
Ответы Re: jsonb_set() strictness considered harmful to data  (Steve Atkins <steve@blighty.com>)
Re: jsonb_set() strictness considered harmful to data  (raf <raf@raf.org>)
Re: jsonb_set() strictness considered harmful to data  (raf <raf@raf.org>)
Re: jsonb_set() strictness considered harmful to data  ("Peter J. Holzer" <hjp-pgsql@hjp.at>)
Список pgsql-general


On Sun, Oct 20, 2019 at 4:31 PM raf <raf@raf.org> wrote:
Steven Pousty wrote:

> I would think though that raising an exception is better than a
> default behavior which deletes data.

I can't help but feel the need to make the point that
the function is not deleting anything. It is just
returning null. The deletion of data is being performed
by an update statement that uses the function's return
value to set a column value.

I don't agree that raising an exception in the function
is a good idea (perhaps unless it's valid to assume
that this function will only ever be used in such a
context). Making the column not null (as already
suggested) and having the update statement itself raise
the exception seems more appropriate if an exception is
desirable. But that presumes an accurate understanding
of the behaviour of jsonb_set.

Really, I think the best fix would be in the
documentation so that everyone who finds the function
in the documentation understands its behaviour
immediately.



Hey Raf

In a perfect world I would agree with you. But often users do not read ALL the documentation before they use the function in their code OR they are not sure that the condition applies to them (until it does).  Turning a JSON null into a SQL null  and thereby "deleting" the data is not the path of least surprises.

So while we could say reading the documentation is the proper path it is not the most helpful path. I am not arguing against doc'ing the behavior no matter what we decide on. What I am saying is an exception is better than the current situation if we can't agree to any other solution. An exception is better than just doc but probably not the best solution. (and it seems like most other people have said as well but the lag on a mailing list is getting us overlapping).

I see people saying Null pointer exceptions are not helpful. I mostly agree, they are not the most helpful kind of exception BUT they are better than some alternatives. So I think it would be better to say NPEs are not as helpful as they possibly could be.

В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: jsonb_set() strictness considered harmful to data
Следующее
От: Francisco Olarte
Дата:
Сообщение: Re: CPU SPIKE