> 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?
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