forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit1731e37
committed
Fix excessive enreferencing in jsonb-to-plperl transform.
We want, say, 2 to be transformed as 2, not \\2 which is what theoriginal coding produced. Perl's standard seems to be to add an RVwrapper only for hash and array SVs, so do it like that.This was missed originally because the test cases only checked what cameout of a round trip back to SQL, and the strip-all-dereferences loop atthe top of SV_to_JsonbValue hides the extra refs from view. As a bettertest, print the Perl value with Data::Dumper, like the hstore_plperlutests do. While we can't do that in the plperl test, only plperlu,that should be good enough because this code is the same for both PLs.But also add a simplistic test for extra REFs, which we can do in both.That strip-all-dereferences behavior is now a bit dubious; it's unlikewhat happens for other Perl-to-SQL conversions. However, the bestthing to do seems to be to leave it alone and make the other conversionsact similarly. That will be done separately.Dagfinn Ilmari Mannsåker, adjusted a bit by meDiscussion:https://postgr.es/m/d8jlgbq66t9.fsf@dalvik.ping.uio.no1 parent45e98ee commit1731e37
File tree
5 files changed
+141
-83
lines changed- contrib/jsonb_plperl
- expected
- sql
5 files changed
+141
-83
lines changedLines changed: 29 additions & 20 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
52 | 52 |
| |
53 | 53 |
| |
54 | 54 |
| |
55 |
| - | |
| 55 | + | |
56 | 56 |
| |
57 | 57 |
| |
58 | 58 |
| |
| 59 | + | |
| 60 | + | |
| 61 | + | |
59 | 62 |
| |
60 | 63 |
| |
61 |
| - | |
62 |
| - | |
63 |
| - | |
64 |
| - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
65 | 68 |
| |
66 | 69 |
| |
67 | 70 |
| |
| |||
115 | 118 |
| |
116 | 119 |
| |
117 | 120 |
| |
118 |
| - | |
| 121 | + | |
119 | 122 |
| |
120 | 123 |
| |
121 | 124 |
| |
122 | 125 |
| |
123 | 126 |
| |
124 |
| - | |
| 127 | + | |
125 | 128 |
| |
126 | 129 |
| |
127 | 130 |
| |
128 | 131 |
| |
129 | 132 |
| |
130 |
| - | |
| 133 | + | |
131 | 134 |
| |
132 | 135 |
| |
133 | 136 |
| |
134 | 137 |
| |
135 | 138 |
| |
136 |
| - | |
| 139 | + | |
137 | 140 |
| |
138 | 141 |
| |
139 | 142 |
| |
140 | 143 |
| |
141 | 144 |
| |
142 |
| - | |
| 145 | + | |
143 | 146 |
| |
144 | 147 |
| |
145 | 148 |
| |
146 | 149 |
| |
147 | 150 |
| |
148 |
| - | |
| 151 | + | |
149 | 152 |
| |
150 | 153 |
| |
151 | 154 |
| |
152 | 155 |
| |
153 | 156 |
| |
154 |
| - | |
| 157 | + | |
155 | 158 |
| |
156 | 159 |
| |
157 | 160 |
| |
158 | 161 |
| |
159 | 162 |
| |
160 |
| - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
161 | 170 |
| |
162 | 171 |
| |
163 | 172 |
| |
164 | 173 |
| |
165 | 174 |
| |
166 |
| - | |
| 175 | + | |
167 | 176 |
| |
168 | 177 |
| |
169 | 178 |
| |
170 | 179 |
| |
171 | 180 |
| |
172 |
| - | |
| 181 | + | |
173 | 182 |
| |
174 | 183 |
| |
175 | 184 |
| |
176 | 185 |
| |
177 | 186 |
| |
178 |
| - | |
| 187 | + | |
179 | 188 |
| |
180 | 189 |
| |
181 | 190 |
| |
182 | 191 |
| |
183 | 192 |
| |
184 |
| - | |
| 193 | + | |
185 | 194 |
| |
186 | 195 |
| |
187 | 196 |
| |
188 | 197 |
| |
189 | 198 |
| |
190 |
| - | |
| 199 | + | |
191 | 200 |
| |
192 | 201 |
| |
193 | 202 |
| |
194 | 203 |
| |
195 | 204 |
| |
196 |
| - | |
| 205 | + | |
197 | 206 |
| |
198 | 207 |
| |
199 | 208 |
| |
200 | 209 |
| |
201 | 210 |
| |
202 |
| - | |
| 211 | + | |
203 | 212 |
| |
204 | 213 |
| |
205 | 214 |
| |
|
Lines changed: 58 additions & 20 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
52 | 52 |
| |
53 | 53 |
| |
54 | 54 |
| |
55 |
| - | |
| 55 | + | |
56 | 56 |
| |
57 | 57 |
| |
58 | 58 |
| |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
59 | 65 |
| |
60 | 66 |
| |
61 |
| - | |
62 |
| - | |
63 |
| - | |
64 |
| - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
65 | 72 |
| |
66 | 73 |
| |
67 | 74 |
| |
| 75 | + | |
68 | 76 |
| |
69 | 77 |
| |
70 | 78 |
| |
71 | 79 |
| |
72 | 80 |
| |
73 | 81 |
| |
| 82 | + | |
74 | 83 |
| |
75 | 84 |
| |
76 | 85 |
| |
| 86 | + | |
77 | 87 |
| |
78 | 88 |
| |
79 | 89 |
| |
80 | 90 |
| |
81 | 91 |
| |
82 | 92 |
| |
| 93 | + | |
83 | 94 |
| |
84 | 95 |
| |
85 | 96 |
| |
86 | 97 |
| |
87 | 98 |
| |
88 | 99 |
| |
| 100 | + | |
89 | 101 |
| |
90 | 102 |
| |
91 | 103 |
| |
92 | 104 |
| |
93 | 105 |
| |
94 | 106 |
| |
| 107 | + | |
95 | 108 |
| |
96 | 109 |
| |
97 | 110 |
| |
98 | 111 |
| |
99 | 112 |
| |
100 | 113 |
| |
| 114 | + | |
101 | 115 |
| |
102 | 116 |
| |
103 | 117 |
| |
104 | 118 |
| |
105 | 119 |
| |
106 | 120 |
| |
| 121 | + | |
107 | 122 |
| |
108 | 123 |
| |
109 | 124 |
| |
110 | 125 |
| |
111 | 126 |
| |
112 | 127 |
| |
| 128 | + | |
113 | 129 |
| |
114 | 130 |
| |
115 | 131 |
| |
116 | 132 |
| |
117 | 133 |
| |
118 |
| - | |
| 134 | + | |
| 135 | + | |
119 | 136 |
| |
120 | 137 |
| |
121 | 138 |
| |
122 | 139 |
| |
123 | 140 |
| |
124 |
| - | |
| 141 | + | |
| 142 | + | |
125 | 143 |
| |
126 | 144 |
| |
127 | 145 |
| |
128 | 146 |
| |
129 | 147 |
| |
130 |
| - | |
| 148 | + | |
| 149 | + | |
131 | 150 |
| |
132 | 151 |
| |
133 | 152 |
| |
134 | 153 |
| |
135 | 154 |
| |
136 |
| - | |
| 155 | + | |
| 156 | + | |
137 | 157 |
| |
138 | 158 |
| |
139 | 159 |
| |
140 | 160 |
| |
141 | 161 |
| |
142 |
| - | |
| 162 | + | |
| 163 | + | |
143 | 164 |
| |
144 | 165 |
| |
145 | 166 |
| |
146 | 167 |
| |
147 | 168 |
| |
148 |
| - | |
| 169 | + | |
| 170 | + | |
149 | 171 |
| |
150 | 172 |
| |
151 | 173 |
| |
152 | 174 |
| |
153 | 175 |
| |
154 |
| - | |
| 176 | + | |
| 177 | + | |
155 | 178 |
| |
156 | 179 |
| |
157 | 180 |
| |
158 | 181 |
| |
159 | 182 |
| |
160 |
| - | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
161 | 192 |
| |
162 | 193 |
| |
163 | 194 |
| |
164 | 195 |
| |
165 | 196 |
| |
166 |
| - | |
| 197 | + | |
| 198 | + | |
167 | 199 |
| |
168 | 200 |
| |
169 | 201 |
| |
170 | 202 |
| |
171 | 203 |
| |
172 |
| - | |
| 204 | + | |
| 205 | + | |
173 | 206 |
| |
174 | 207 |
| |
175 | 208 |
| |
176 | 209 |
| |
177 | 210 |
| |
178 |
| - | |
| 211 | + | |
| 212 | + | |
179 | 213 |
| |
180 | 214 |
| |
181 | 215 |
| |
182 | 216 |
| |
183 | 217 |
| |
184 |
| - | |
| 218 | + | |
| 219 | + | |
185 | 220 |
| |
186 | 221 |
| |
187 | 222 |
| |
188 | 223 |
| |
189 | 224 |
| |
190 |
| - | |
| 225 | + | |
| 226 | + | |
191 | 227 |
| |
192 | 228 |
| |
193 | 229 |
| |
194 | 230 |
| |
195 | 231 |
| |
196 |
| - | |
| 232 | + | |
| 233 | + | |
197 | 234 |
| |
198 | 235 |
| |
199 | 236 |
| |
200 | 237 |
| |
201 | 238 |
| |
202 |
| - | |
| 239 | + | |
| 240 | + | |
203 | 241 |
| |
204 | 242 |
| |
205 | 243 |
| |
|
Lines changed: 5 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
26 | 26 |
| |
27 | 27 |
| |
28 | 28 |
| |
29 |
| - | |
| 29 | + | |
30 | 30 |
| |
31 | 31 |
| |
32 | 32 |
| |
| |||
83 | 83 |
| |
84 | 84 |
| |
85 | 85 |
| |
86 |
| - | |
| 86 | + | |
87 | 87 |
| |
88 | 88 |
| |
89 | 89 |
| |
| |||
95 | 95 |
| |
96 | 96 |
| |
97 | 97 |
| |
98 |
| - | |
| 98 | + | |
99 | 99 |
| |
100 | 100 |
| |
101 | 101 |
| |
| |||
120 | 120 |
| |
121 | 121 |
| |
122 | 122 |
| |
123 |
| - | |
| 123 | + | |
124 | 124 |
| |
125 | 125 |
| |
126 | 126 |
| |
| |||
268 | 268 |
| |
269 | 269 |
| |
270 | 270 |
| |
271 |
| - | |
| 271 | + | |
272 | 272 |
| |
273 | 273 |
| |
274 | 274 |
| |
|
0 commit comments
Comments
(0)