|
1 |
| -CREATE EXTENSION bytea_toaster; |
| 1 | +CREATE EXTENSION jsonb_toaster; |
2 | 2 | CREATE TABLE tst_failed (
|
3 |
| - t jsonb TOASTER bytea_toaster |
| 3 | + t json TOASTER jsonb_toaster |
4 | 4 | );
|
5 | 5 | CREATE TABLE tst1 (
|
6 |
| - t bytea TOASTER bytea_toaster |
| 6 | + t jsonb TOASTER jsonb_toaster |
7 | 7 | );
|
8 | 8 | CREATE TABLE tst2 (
|
9 |
| - t bytea |
| 9 | + t jsonb |
10 | 10 | );
|
11 |
| -ALTER TABLE tst2 ALTER COLUMN t SET TOASTER bytea_toaster; |
12 |
| -CREATE TABLE test_bytea_append (id int, a bytea STORAGE EXTERNAL); |
13 |
| -ALTER TABLE test_bytea_append ALTER a SET TOASTER bytea_toaster; |
14 |
| -INSERT INTO test_bytea_append SELECT i, repeat('a', 10000)::bytea FROM generate_series(1, 10) i; |
15 |
| -BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; |
16 |
| -SAVEPOINT p1; |
17 |
| -UPDATE test_bytea_append SET a = a || repeat('b', 3000)::bytea; |
18 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20), 'UTF8') FROM test_bytea_append; |
19 |
| - id | convert_from |
20 |
| -----+--------------------------------- |
21 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
22 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
23 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
24 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
25 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
26 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
27 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
28 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
29 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
30 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
31 |
| -(10 rows) |
32 |
| - |
33 |
| -SAVEPOINT p2; |
34 |
| -UPDATE test_bytea_append SET a = a || repeat('c', 2000)::bytea; |
35 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20) || substr(a, 14990, 20), 'UTF8') FROM test_bytea_append; |
36 |
| - id | convert_from |
37 |
| -----+----------------------------------------------------- |
38 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
39 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
40 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
41 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
42 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
43 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
44 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
45 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
46 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
47 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
48 |
| -(10 rows) |
49 |
| - |
50 |
| -ROLLBACK TO SAVEPOINT p2; |
51 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20), 'UTF8') FROM test_bytea_append; |
52 |
| - id | convert_from |
53 |
| -----+--------------------------------- |
54 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
55 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
56 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
57 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
58 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
59 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
60 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
61 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
62 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
63 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
64 |
| -(10 rows) |
65 |
| - |
66 |
| -UPDATE test_bytea_append SET a = a || repeat('d', 4000)::bytea; |
67 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20) || substr(a, 16990, 20), 'UTF8') FROM test_bytea_append; |
68 |
| - id | convert_from |
69 |
| -----+----------------------------------------------------- |
70 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
71 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
72 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
73 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
74 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
75 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
76 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
77 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
78 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
79 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbdddddddddddddddddddd |
80 |
| -(10 rows) |
81 |
| - |
82 |
| -ROLLBACK TO SAVEPOINT p1; |
83 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20), 'UTF8') FROM test_bytea_append; |
84 |
| - id | convert_from |
85 |
| -----+-------------- |
86 |
| - 1 | aaaaaaaaaaa |
87 |
| - 2 | aaaaaaaaaaa |
88 |
| - 3 | aaaaaaaaaaa |
89 |
| - 4 | aaaaaaaaaaa |
90 |
| - 5 | aaaaaaaaaaa |
91 |
| - 6 | aaaaaaaaaaa |
92 |
| - 7 | aaaaaaaaaaa |
93 |
| - 8 | aaaaaaaaaaa |
94 |
| - 9 | aaaaaaaaaaa |
95 |
| - 10 | aaaaaaaaaaa |
96 |
| -(10 rows) |
97 |
| - |
98 |
| -UPDATE test_bytea_append SET a = a || repeat('e', 5000)::bytea; |
99 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 14990, 20), 'UTF8') FROM test_bytea_append; |
100 |
| - id | convert_from |
101 |
| -----+--------------------------------- |
102 |
| - 1 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
103 |
| - 2 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
104 |
| - 3 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
105 |
| - 4 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
106 |
| - 5 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
107 |
| - 6 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
108 |
| - 7 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
109 |
| - 8 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
110 |
| - 9 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
111 |
| - 10 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
112 |
| -(10 rows) |
113 |
| - |
114 |
| -COMMIT; |
115 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 14990, 20), 'UTF8') FROM test_bytea_append; |
116 |
| - id | convert_from |
117 |
| -----+--------------------------------- |
118 |
| - 1 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
119 |
| - 2 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
120 |
| - 3 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
121 |
| - 4 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
122 |
| - 5 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
123 |
| - 6 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
124 |
| - 7 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
125 |
| - 8 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
126 |
| - 9 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
127 |
| - 10 | aaaaaaaaaaaeeeeeeeeeeeeeeeeeeee |
128 |
| -(10 rows) |
129 |
| - |
130 |
| -TRUNCATE test_bytea_append; |
131 |
| -INSERT INTO test_bytea_append SELECT i, repeat('a', 10000)::bytea FROM generate_series(1, 10) i; |
132 |
| -BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; |
133 |
| -UPDATE test_bytea_append SET a = a || repeat('b', 3000)::bytea; |
134 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20), 'UTF8') FROM test_bytea_append; |
135 |
| - id | convert_from |
136 |
| -----+--------------------------------- |
137 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
138 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
139 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
140 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
141 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
142 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
143 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
144 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
145 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
146 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
147 |
| -(10 rows) |
148 |
| - |
149 |
| -UPDATE test_bytea_append SET a = a || repeat('c', 2000)::bytea; |
150 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20) || substr(a, 14990, 20), 'UTF8') FROM test_bytea_append; |
151 |
| - id | convert_from |
152 |
| -----+----------------------------------------------------- |
153 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
154 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
155 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
156 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
157 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
158 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
159 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
160 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
161 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
162 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
163 |
| -(10 rows) |
164 |
| - |
165 |
| -UPDATE test_bytea_append SET a = a || repeat('d', 4000)::bytea; |
166 |
| -SELECT id, convert_from(substr(a, 9990, 20) || substr(a, 12990, 20) || substr(a, 14990, 20) || substr(a, 18990, 20), 'UTF8') FROM test_bytea_append; |
167 |
| - id | convert_from |
168 |
| -----+------------------------------------------------------------------------- |
169 |
| - 1 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
170 |
| - 2 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
171 |
| - 3 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
172 |
| - 4 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
173 |
| - 5 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
174 |
| - 6 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
175 |
| - 7 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
176 |
| - 8 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
177 |
| - 9 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
178 |
| - 10 | aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
179 |
| -(10 rows) |
180 |
| - |
181 |
| -CREATE FUNCTION test_bytea_append_func() RETURNS void AS |
182 |
| -$$ |
183 |
| -DECLARE |
184 |
| - a0 bytea; |
185 |
| - a1 bytea; |
186 |
| - a2 bytea; |
187 |
| - a3 bytea; |
188 |
| -BEGIN |
189 |
| - TRUNCATE test_bytea_append; |
190 |
| - INSERT INTO test_bytea_append SELECT i, repeat('a', 10000)::bytea FROM generate_series(1, 10) i; |
191 |
| - SELECT a INTO a0 FROM test_bytea_append LIMIT 1; |
192 |
| - |
193 |
| - UPDATE test_bytea_append SET a = a || repeat('b', 3000)::bytea; |
194 |
| - SELECT a INTO a1 FROM test_bytea_append LIMIT 1; |
195 |
| - |
196 |
| - UPDATE test_bytea_append SET a = a || repeat('c', 2000)::bytea; |
197 |
| - SELECT a INTO a2 FROM test_bytea_append LIMIT 1; |
198 |
| - |
199 |
| - UPDATE test_bytea_append SET a = a || repeat('d', 4000)::bytea; |
200 |
| - SELECT a INTO a3 FROM test_bytea_append LIMIT 1; |
201 |
| - |
202 |
| - RAISE NOTICE '%', convert_from(substr(a0, 9990, 20), 'UTF8'); |
203 |
| - RAISE NOTICE '%', convert_from(substr(a1, 9990, 20) || substr(a1, 12990, 20), 'UTF8'); |
204 |
| - RAISE NOTICE '%', convert_from(substr(a2, 9990, 20) || substr(a2, 12990, 20) || substr(a2, 14990, 20), 'UTF8'); |
205 |
| - RAISE NOTICE '%', convert_from(substr(a3, 9990, 20) || substr(a3, 12990, 20) || substr(a3, 14990, 20) || substr(a3, 18990, 20), 'UTF8'); |
206 |
| -END; |
207 |
| -$$ LANGUAGE plpgsql; |
208 |
| -SELECT test_bytea_append_func(); |
209 |
| -NOTICE: aaaaaaaaaaa |
210 |
| -NOTICE: aaaaaaaaaaabbbbbbbbbbbbbbbbbbbb |
211 |
| -NOTICE: aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc |
212 |
| -NOTICE: aaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccdddddddddddddddddddd |
213 |
| - test_bytea_append_func |
214 |
| ------------------------- |
215 |
| - |
216 |
| -(1 row) |
217 |
| - |
218 |
| -COMMIT; |
219 |
| -DROP TABLE test_bytea_append; |
| 11 | +ALTER TABLE tst2 ALTER COLUMN t SET TOASTER jsonb_toaster; |
| 12 | +CREATE TABLE test_jsonb_toaster (id int, jb jsonb); |
| 13 | +ALTER TABLE test_jsonb_toaster ALTER jb SET TOASTER jsonb_toaster; |
| 14 | +INSERT INTO test_jsonb_toaster |
| 15 | +SELECT i, ( |
| 16 | + SELECT jsonb_object_agg('key' || j, jsonb_build_array(repeat('a', pow(2, i + j)::int))) |
| 17 | + FROM generate_series(1,10) j |
| 18 | +) |
| 19 | +FROM generate_series(1, 10) i; |
| 20 | +DROP TABLE test_jsonb_toaster; |
0 commit comments