forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite4a8fb8
replication parser: pure parser and reentrant scanner
Use the flex %option reentrant and the bison option %pure-parser tomake the generated scanner and parser pure, reentrant, andthread-safe.Make the generated scanner use palloc() etc. instead of malloc() etc.Previously, we only used palloc() for the buffer, but flex would stilluse malloc() for its internal structures. As a result, there could besome small memory leaks in case of uncaught errors. Now, all thememory is under palloc() control, so there are no more such issues.Simplify flex scan buffer management: Instead of constructing thebuffer from pieces and then using yy_scan_buffer(), we can just useyy_scan_string(), which does the same thing internally.The previous code was necessary because we allocated the buffer withpalloc() and the rest of the state was handled by malloc(). But thisis no longer the case; everything is under palloc() now.Use flex yyextra to handle context information, instead of globalvariables. This complements the other changes to make the scannerreentrant.Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>Co-authored-by: Andreas Karlsson <andreas@proxel.se>Reviewed-by: Andreas Karlsson <andreas@proxel.se>Discussion:https://www.postgresql.org/message-id/flat/eb6faeac-2a8a-4b69-9189-c33c520e5b7b@eisentraut.org1 parent5af6990 commite4a8fb8
File tree
5 files changed
+116
-80
lines changed- src
- backend
- replication
- include/replication
5 files changed
+116
-80
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
9 | 9 |
| |
10 | 10 |
| |
11 | 11 |
| |
12 |
| - | |
| 12 | + | |
13 | 13 |
| |
14 | 14 |
| |
15 | 15 |
| |
|
Lines changed: 5 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
28 |
| - | |
29 |
| - | |
30 |
| - | |
31 | 27 |
| |
32 | 28 |
| |
33 | 29 |
| |
| |||
43 | 39 |
| |
44 | 40 |
| |
45 | 41 |
| |
| 42 | + | |
| 43 | + | |
| 44 | + | |
46 | 45 |
| |
47 | 46 |
| |
48 | 47 |
| |
| |||
106 | 105 |
| |
107 | 106 |
| |
108 | 107 |
| |
| 108 | + | |
| 109 | + | |
109 | 110 |
| |
110 | 111 |
| |
111 | 112 |
| |
|
Lines changed: 93 additions & 64 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
38 | 38 |
| |
39 | 39 |
| |
40 | 40 |
| |
41 |
| - | |
42 |
| - | |
43 |
| - | |
44 |
| - | |
45 |
| - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
46 | 45 |
| |
47 |
| - | |
48 |
| - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
49 | 50 |
| |
50 |
| - | |
51 |
| - | |
52 |
| - | |
53 |
| - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
54 | 55 |
| |
55 | 56 |
| |
56 | 57 |
| |
57 | 58 |
| |
58 | 59 |
| |
| 60 | + | |
| 61 | + | |
59 | 62 |
| |
60 | 63 |
| |
61 | 64 |
| |
62 | 65 |
| |
63 | 66 |
| |
64 | 67 |
| |
| 68 | + | |
| 69 | + | |
| 70 | + | |
65 | 71 |
| |
66 | 72 |
| |
67 | 73 |
| |
| |||
108 | 114 |
| |
109 | 115 |
| |
110 | 116 |
| |
111 |
| - | |
| 117 | + | |
112 | 118 |
| |
113 |
| - | |
| 119 | + | |
114 | 120 |
| |
115 |
| - | |
| 121 | + | |
116 | 122 |
| |
117 | 123 |
| |
118 | 124 |
| |
| |||
142 | 148 |
| |
143 | 149 |
| |
144 | 150 |
| |
145 |
| - | |
| 151 | + | |
146 | 152 |
| |
147 | 153 |
| |
148 | 154 |
| |
149 | 155 |
| |
150 | 156 |
| |
151 | 157 |
| |
152 | 158 |
| |
153 |
| - | |
154 |
| - | |
| 159 | + | |
| 160 | + | |
155 | 161 |
| |
156 | 162 |
| |
157 | 163 |
| |
158 | 164 |
| |
159 | 165 |
| |
160 |
| - | |
| 166 | + | |
161 | 167 |
| |
162 | 168 |
| |
163 | 169 |
| |
164 | 170 |
| |
165 | 171 |
| |
166 |
| - | |
| 172 | + | |
167 | 173 |
| |
168 | 174 |
| |
169 | 175 |
| |
170 | 176 |
| |
171 |
| - | |
| 177 | + | |
172 | 178 |
| |
173 | 179 |
| |
174 | 180 |
| |
175 |
| - | |
| 181 | + | |
176 | 182 |
| |
177 | 183 |
| |
178 | 184 |
| |
179 | 185 |
| |
180 |
| - | |
| 186 | + | |
181 | 187 |
| |
182 | 188 |
| |
183 | 189 |
| |
184 | 190 |
| |
185 | 191 |
| |
186 | 192 |
| |
187 | 193 |
| |
188 |
| - | |
189 |
| - | |
190 |
| - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
191 | 197 |
| |
192 | 198 |
| |
193 | 199 |
| |
194 | 200 |
| |
195 |
| - | |
| 201 | + | |
196 | 202 |
| |
197 | 203 |
| |
198 | 204 |
| |
199 | 205 |
| |
200 | 206 |
| |
201 |
| - | |
| 207 | + | |
202 | 208 |
| |
203 | 209 |
| |
204 | 210 |
| |
| |||
207 | 213 |
| |
208 | 214 |
| |
209 | 215 |
| |
210 |
| - | |
| 216 | + | |
211 | 217 |
| |
212 | 218 |
| |
213 | 219 |
| |
| |||
218 | 224 |
| |
219 | 225 |
| |
220 | 226 |
| |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
221 | 231 |
| |
222 |
| - | |
| 232 | + | |
223 | 233 |
| |
224 |
| - | |
| 234 | + | |
225 | 235 |
| |
226 | 236 |
| |
227 | 237 |
| |
228 |
| - | |
| 238 | + | |
229 | 239 |
| |
230 |
| - | |
| 240 | + | |
231 | 241 |
| |
232 | 242 |
| |
233 | 243 |
| |
234 |
| - | |
| 244 | + | |
235 | 245 |
| |
236 |
| - | |
| 246 | + | |
237 | 247 |
| |
238 | 248 |
| |
239 | 249 |
| |
240 |
| - | |
| 250 | + | |
241 | 251 |
| |
242 |
| - | |
| 252 | + | |
243 | 253 |
| |
244 | 254 |
| |
245 | 255 |
| |
246 |
| - | |
| 256 | + | |
247 | 257 |
| |
248 | 258 |
| |
249 | 259 |
| |
250 | 260 |
| |
251 | 261 |
| |
252 | 262 |
| |
253 | 263 |
| |
254 |
| - | |
| 264 | + | |
255 | 265 |
| |
256 |
| - | |
257 |
| - | |
258 |
| - | |
259 |
| - | |
260 |
| - | |
261 |
| - | |
262 |
| - | |
263 |
| - | |
264 |
| - | |
265 |
| - | |
266 |
| - | |
267 |
| - | |
268 |
| - | |
269 |
| - | |
270 |
| - | |
271 |
| - | |
272 |
| - | |
273 |
| - | |
274 |
| - | |
275 |
| - | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
276 | 277 |
| |
277 | 278 |
| |
278 | 279 |
| |
279 |
| - | |
| 280 | + | |
280 | 281 |
| |
281 |
| - | |
282 |
| - | |
| 282 | + | |
| 283 | + | |
283 | 284 |
| |
284 | 285 |
| |
285 | 286 |
| |
| |||
291 | 292 |
| |
292 | 293 |
| |
293 | 294 |
| |
294 |
| - | |
| 295 | + | |
295 | 296 |
| |
296 |
| - | |
| 297 | + | |
| 298 | + | |
297 | 299 |
| |
298 | 300 |
| |
299 | 301 |
| |
| |||
308 | 310 |
| |
309 | 311 |
| |
310 | 312 |
| |
311 |
| - | |
| 313 | + | |
312 | 314 |
| |
313 | 315 |
| |
314 | 316 |
| |
315 | 317 |
| |
316 | 318 |
| |
317 | 319 |
| |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + |
Lines changed: 6 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1951 | 1951 |
| |
1952 | 1952 |
| |
1953 | 1953 |
| |
| 1954 | + | |
1954 | 1955 |
| |
1955 | 1956 |
| |
1956 | 1957 |
| |
| |||
1990 | 1991 |
| |
1991 | 1992 |
| |
1992 | 1993 |
| |
1993 |
| - | |
| 1994 | + | |
1994 | 1995 |
| |
1995 | 1996 |
| |
1996 | 1997 |
| |
1997 | 1998 |
| |
1998 |
| - | |
| 1999 | + | |
1999 | 2000 |
| |
2000 | 2001 |
| |
2001 |
| - | |
| 2002 | + | |
2002 | 2003 |
| |
2003 | 2004 |
| |
2004 | 2005 |
| |
| |||
2016 | 2017 |
| |
2017 | 2018 |
| |
2018 | 2019 |
| |
2019 |
| - | |
| 2020 | + | |
2020 | 2021 |
| |
2021 | 2022 |
| |
2022 | 2023 |
| |
2023 | 2024 |
| |
2024 | 2025 |
| |
2025 |
| - | |
| 2026 | + | |
2026 | 2027 |
| |
2027 | 2028 |
| |
2028 | 2029 |
| |
|
0 commit comments
Comments
(0)