> On Mon, Jan 04, 2021 at 06:56:17PM +0100, Pavel Stehule wrote: > po 4. 1. 2021 v 14:58 odesílatel Dmitry Dolgov <9erthalion6@gmail.com> > napsal: > postgres=# update foo set a['c']['c'][10] = '10'; > postgres=# update foo set a['c'][10][10] = '10';
Yeah, there was one clumsy memory allocation. On the way I've found and fixed another issue with jsonb generation, right now I don't see any other problems. But as my imagination, despite all the sci-fi I've read this year, is apparently not so versatile, I'll rely on yours, could you please check this version again?
this case should to raise exception - the value should be changed or error should be raised
postgres=# insert into foo values('{}'); INSERT 0 1 postgres=# update foo set a['a'] = '100'; UPDATE 1 postgres=# select * from foo; ┌────────────┐ │ a │ ╞════════════╡ │ {"a": 100} │ └────────────┘ (1 row)
postgres=# update foo set a['a'][1] = '-1'; UPDATE 1 postgres=# select * from foo; ┌────────────┐ │ a │ ╞════════════╡ │ {"a": 100} │ └────────────┘ (1 row)