Re: [HACKERS] [PATCH] Generic type subscripting
От | Dmitry Dolgov |
---|---|
Тема | Re: [HACKERS] [PATCH] Generic type subscripting |
Дата | |
Msg-id | 20210121115851.3kwqkyks4irvf452@localhost обсуждение исходный текст |
Ответ на | Re: [HACKERS] [PATCH] Generic type subscripting ("Dian M Fay" <dian.m.fay@gmail.com>) |
Ответы |
Re: [HACKERS] [PATCH] Generic type subscripting
|
Список | pgsql-hackers |
> On Wed, Jan 20, 2021 at 11:37:32PM -0500, Dian M Fay wrote: > On Wed Jan 20, 2021 at 2:08 PM EST, Dmitry Dolgov wrote: > > > On Wed, Jan 20, 2021 at 11:34:16AM -0500, Dian M Fay wrote: > > > > Thanks, I need to remember to not skipp doc building for testing process > > > > even for such small changes. Hope now I didn't forget anything. > > > > > > > > > On Wed, Jan 20, 2021 at 09:58:43AM -0500, Dian M Fay wrote: > > > > > > > > > Here's a full editing pass on the documentation, with v45 and Pavel's > > > > > doc-whitespaces-fix.patch applied. I also corrected a typo in one of the > > > > > added hints. > > > > > > > > Great! I've applied almost all of it, except: > > > > > > > > + A <type>jsonb</type> value will accept assignments to nonexistent > > > > subscript > > > > + paths as long as the nonexistent elements being traversed are all > > > > arrays. > > > > > > > > Maybe I've misunderstood the intention, but there is no requirement > > > > about arrays for creating such an empty path. I've formulated it as: > > > > > > > > + A <type>jsonb</type> value will accept assignments to nonexistent > > > > subscript > > > > + paths as long as the last existing path key is an object or an array. > > > > > > My intention there was to highlight the difference between: > > > > > > * SET obj['a']['b']['c'] = '"newvalue"' > > > * SET arr[0][0][3] = '"newvalue"' > > > > > > obj has to conform to {"a": {"b": {...}}} in order to receive the > > > assignment of the nested c. If it doesn't, that's the error case we > > > discussed earlier. But arr can be null, [], and so on, and any missing > > > structure [[[null, null, null, "newvalue"]]] will be created. > > > > If arr is 'null', or any other scalar value, such subscripting will work > > only one level deep because they represented internally as an array of > > one element. If arr is '[]' the path will comply by definition. So it's > > essentially the same as for objects with no particular difference. If > > such a quirk about scalars being treated like arrays is bothering, we > > could also bend it in this case as well (see the attached version). > > I missed that distinction in the original UPDATE paragraph too. Here's > another revision based on v48. Looks good, I've applied it, thanks.
Вложения
В списке pgsql-hackers по дате отправления: