po 4. 1. 2021 v 14:58 odesílatel Dmitry Dolgov <9erthali...@gmail.com> napsal:
> > On Sun, Jan 03, 2021 at 08:41:17PM +0100, Pavel Stehule wrote: > > > > probably some is wrong still > > > > create table foo(a jsonb); > > update foo set a['a'] = '10'; > > update foo set a['b']['c'][1] = '10'; > > update foo set a['b']['c'][10] = '10' > > Thanks for noticing. Indeed, there was a subtle change of meaning for > 'done' flag in setPath, which I haven't covered. Could you try this > version? > sure postgres=# insert into foo values('{}'); INSERT 0 1 postgres=# update foo set a['c']['c'][10] = '10'; UPDATE 1 postgres=# select * from foo; ┌────────────────────────────────────────────────────────────────────────────────┐ │ a │ ╞════════════════════════════════════════════════════════════════════════════════╡ │ {"c": {"c": [null, null, null, null, null, null, null, null, null, null, 10]}} │ └────────────────────────────────────────────────────────────────────────────────┘ (1 row) postgres=# update foo set a['c'][10][10] = '10'; WARNING: problem in alloc set ExprContext: req size > alloc size for chunk 0x151b688 in block 0x151aa90 WARNING: problem in alloc set ExprContext: bogus aset link in block 0x151aa90, chunk 0x151b688 WARNING: problem in alloc set ExprContext: bad size 0 for chunk 0x151b8a0 in block 0x151aa90 WARNING: problem in alloc set ExprContext: bad single-chunk 0x151b8b8 in block 0x151aa90 WARNING: problem in alloc set ExprContext: bogus aset link in block 0x151aa90, chunk 0x151b8b8 WARNING: problem in alloc set ExprContext: found inconsistent memory block 0x151aa90 UPDATE 1