Content-Length: 475739 | pFad | http://github.com/postgrespro/postgres/commit/5ea4a81aa5c6e355d6f486950b9dcf6903ae22a4

2E Implement JsonbMutator in jsonb_toaster · postgrespro/postgres@5ea4a81 · GitHub
Skip to content

Commit 5ea4a81

Browse files
author
Nikita Glukhov
committed
Implement JsonbMutator in jsonb_toaster
1 parent cf98d49 commit 5ea4a81

File tree

10 files changed

+1270
-323
lines changed

10 files changed

+1270
-323
lines changed

contrib/jsonb_toaster/expected/jsonb_toaster.out

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ select
129129
j id,
130130
jsonb_build_object(
131131
'a', jsonb_agg(repeat('a', pow(2, 6 + i)::int)),
132-
'b', 'foo'
132+
'b', 'foo',
133+
'c', jsonb_agg(jsonb_build_object('a', repeat('a', pow(2, 6 + i)::int), 'b', 1))
133134
) js
134135
from
135136
generate_series(0, 19) j,
@@ -240,3 +241,107 @@ select id, js->'a'->>0 from test_jsonbz_arr order by id;
240241
19 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
241242
(20 rows)
242243

244+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('b', 64)));
245+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
246+
id | ?column?
247+
----+------------------------------------------------------------------
248+
0 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
249+
1 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
250+
2 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
251+
3 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
252+
4 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
253+
5 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
254+
6 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
255+
7 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
256+
8 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
257+
9 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
258+
10 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
259+
11 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
260+
12 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
261+
13 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
262+
14 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
263+
15 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
264+
16 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
265+
17 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
266+
18 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
267+
19 | bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
268+
(20 rows)
269+
270+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('c', 64)));
271+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
272+
id | ?column?
273+
----+------------------------------------------------------------------
274+
0 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
275+
1 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
276+
2 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
277+
3 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
278+
4 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
279+
5 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
280+
6 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
281+
7 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
282+
8 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
283+
9 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
284+
10 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
285+
11 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
286+
12 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
287+
13 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
288+
14 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
289+
15 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
290+
16 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
291+
17 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
292+
18 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
293+
19 | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
294+
(20 rows)
295+
296+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('d', 65)));
297+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
298+
id | ?column?
299+
----+-------------------------------------------------------------------
300+
0 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
301+
1 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
302+
2 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
303+
3 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
304+
4 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
305+
5 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
306+
6 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
307+
7 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
308+
8 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
309+
9 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
310+
10 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
311+
11 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
312+
12 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
313+
13 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
314+
14 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
315+
15 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
316+
16 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
317+
17 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
318+
18 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
319+
19 | ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
320+
(20 rows)
321+
322+
update test_jsonbz_arr set js = jsonb_set(js, '{c,0,a}', to_jsonb(repeat('e', 65)));
323+
select id, js->'c'->0->>'a' from test_jsonbz_arr order by id;
324+
id | ?column?
325+
----+-------------------------------------------------------------------
326+
0 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
327+
1 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
328+
2 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
329+
3 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
330+
4 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
331+
5 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
332+
6 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
333+
7 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
334+
8 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
335+
9 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
336+
10 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
337+
11 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
338+
12 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
339+
13 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
340+
14 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
341+
15 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
342+
16 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
343+
17 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
344+
18 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
345+
19 | eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
346+
(20 rows)
347+

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/5ea4a81aa5c6e355d6f486950b9dcf6903ae22a4

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy