- Notifications
You must be signed in to change notification settings - Fork28
Commita652558
committed
Allow Unicode escapes in any server encoding, not only UTF-8.
SQL includes provisions for numeric Unicode escapes in stringliterals and identifiers. Previously we only accepted thoseif they represented ASCII characters or the server encodingwas UTF-8, making the conversion to internal form trivial.This patch adjusts things so that we'll call the appropriateencoding conversion function in less-trivial cases, allowingthe escape sequence to be accepted so long as it correspondsto some character available in the server encoding.This also applies to processing of Unicode escapes in JSONB.However, the old restriction still applies to client-sideJSON processing, since that hasn't got access to the server'sencoding conversion infrastructure.This patch includes some lexer infrastructure that simplifiesthrowing errors with error cursors pointing into the middle ofa string (or other complex token). For the moment I only usedit for errors relating to Unicode escapes, but we might laterexpand the usage to some other cases.Patch by me, reviewed by John Naylor.Discussion:https://postgr.es/m/2393.1578958316@sss.pgh.pa.us1 parentfe30e7e commita652558
File tree
20 files changed
+612
-226
lines changed- doc/src/sgml
- src
- backend
- parser
- utils
- adt
- mb
- common
- include
- mb
- parser
- test/regress
- expected
- sql
20 files changed
+612
-226
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
61 | 61 |
| |
62 | 62 |
| |
63 | 63 |
| |
64 |
| - | |
65 |
| - | |
| 64 | + | |
| 65 | + | |
66 | 66 |
| |
67 | 67 |
| |
68 | 68 |
| |
| |||
77 | 77 |
| |
78 | 78 |
| |
79 | 79 |
| |
80 |
| - | |
81 |
| - | |
| 80 | + | |
| 81 | + | |
82 | 82 |
| |
83 | 83 |
| |
84 | 84 |
| |
85 | 85 |
| |
86 |
| - | |
| 86 | + | |
87 | 87 |
| |
88 | 88 |
| |
89 | 89 |
| |
| |||
96 | 96 |
| |
97 | 97 |
| |
98 | 98 |
| |
99 |
| - | |
100 |
| - | |
101 |
| - | |
| 99 | + | |
| 100 | + | |
102 | 101 |
| |
103 | 102 |
| |
104 | 103 |
| |
| |||
144 | 143 |
| |
145 | 144 |
| |
146 | 145 |
| |
147 |
| - | |
148 |
| - | |
| 146 | + | |
| 147 | + | |
149 | 148 |
| |
150 | 149 |
| |
151 | 150 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
189 | 189 |
| |
190 | 190 |
| |
191 | 191 |
| |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
192 | 209 |
| |
193 | 210 |
| |
194 | 211 |
| |
| |||
230 | 247 |
| |
231 | 248 |
| |
232 | 249 |
| |
233 |
| - | |
| 250 | + | |
| 251 | + | |
234 | 252 |
| |
235 | 253 |
| |
236 | 254 |
| |
| |||
239 | 257 |
| |
240 | 258 |
| |
241 | 259 |
| |
242 |
| - | |
243 |
| - | |
244 |
| - | |
245 |
| - | |
| 260 | + | |
246 | 261 |
| |
247 | 262 |
| |
248 | 263 |
| |
249 |
| - | |
250 |
| - | |
| 264 | + | |
| 265 | + | |
251 | 266 |
| |
252 | 267 |
| |
253 | 268 |
| |
254 |
| - | |
255 |
| - | |
256 |
| - | |
257 |
| - | |
258 |
| - | |
259 |
| - | |
260 |
| - | |
261 |
| - | |
262 |
| - | |
263 |
| - | |
264 |
| - | |
265 |
| - | |
266 |
| - | |
267 |
| - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
268 | 272 |
| |
269 | 273 |
| |
270 | 274 |
| |
| |||
427 | 431 |
| |
428 | 432 |
| |
429 | 433 |
| |
430 |
| - | |
431 |
| - | |
| 434 | + | |
| 435 | + | |
432 | 436 |
| |
433 |
| - | |
434 |
| - | |
435 |
| - | |
436 |
| - | |
437 |
| - | |
438 |
| - | |
439 |
| - | |
440 |
| - | |
441 |
| - | |
442 |
| - | |
443 |
| - | |
444 |
| - | |
445 |
| - | |
446 |
| - | |
447 |
| - | |
448 |
| - | |
| 437 | + | |
| 438 | + | |
449 | 439 |
| |
450 | 440 |
| |
451 | 441 |
| |
| |||
524 | 514 |
| |
525 | 515 |
| |
526 | 516 |
| |
527 |
| - | |
528 |
| - | |
529 |
| - | |
530 |
| - | |
531 |
| - | |
532 |
| - | |
533 |
| - | |
534 |
| - | |
535 |
| - | |
536 |
| - | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
537 | 534 |
| |
538 | 535 |
| |
539 | 536 |
| |
| |||
546 | 543 |
| |
547 | 544 |
| |
548 | 545 |
| |
549 |
| - | |
550 |
| - | |
551 |
| - | |
552 |
| - | |
553 |
| - | |
554 | 546 |
| |
555 | 547 |
| |
556 | 548 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
292 | 292 |
| |
293 | 293 |
| |
294 | 294 |
| |
295 |
| - | |
| 295 | + | |
296 | 296 |
| |
297 |
| - | |
| 297 | + | |
298 | 298 |
| |
299 |
| - | |
300 |
| - | |
| 299 | + | |
301 | 300 |
| |
302 | 301 |
| |
303 |
| - | |
304 |
| - | |
305 |
| - | |
306 |
| - | |
307 |
| - | |
308 |
| - | |
309 |
| - | |
310 |
| - | |
| 302 | + | |
311 | 303 |
| |
312 | 304 |
| |
313 | 305 |
| |
| |||
338 | 330 |
| |
339 | 331 |
| |
340 | 332 |
| |
| 333 | + | |
341 | 334 |
| |
| 335 | + | |
342 | 336 |
| |
343 | 337 |
| |
344 |
| - | |
345 |
| - | |
| 338 | + | |
| 339 | + | |
346 | 340 |
| |
347 |
| - | |
| 341 | + | |
| 342 | + | |
348 | 343 |
| |
349 | 344 |
| |
350 | 345 |
| |
351 | 346 |
| |
352 | 347 |
| |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
353 | 358 |
| |
354 | 359 |
| |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
355 | 366 |
| |
356 | 367 |
| |
357 | 368 |
| |
| |||
370 | 381 |
| |
371 | 382 |
| |
372 | 383 |
| |
373 |
| - | |
374 |
| - | |
375 |
| - | |
| 384 | + | |
376 | 385 |
| |
377 | 386 |
| |
378 | 387 |
| |
| |||
390 | 399 |
| |
391 | 400 |
| |
392 | 401 |
| |
393 |
| - | |
394 |
| - | |
| 402 | + | |
| 403 | + | |
395 | 404 |
| |
396 | 405 |
| |
397 | 406 |
| |
| |||
411 | 420 |
| |
412 | 421 |
| |
413 | 422 |
| |
414 |
| - | |
415 |
| - | |
416 |
| - | |
| 423 | + | |
417 | 424 |
| |
418 | 425 |
| |
419 | 426 |
| |
| |||
431 | 438 |
| |
432 | 439 |
| |
433 | 440 |
| |
434 |
| - | |
435 |
| - | |
| 441 | + | |
| 442 | + | |
436 | 443 |
| |
437 | 444 |
| |
438 | 445 |
| |
439 | 446 |
| |
440 | 447 |
| |
441 | 448 |
| |
442 |
| - | |
443 |
| - | |
444 |
| - | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
445 | 453 |
| |
446 | 454 |
| |
447 | 455 |
| |
| |||
457 | 465 |
| |
458 | 466 |
| |
459 | 467 |
| |
| 468 | + | |
460 | 469 |
| |
461 | 470 |
| |
462 |
| - | |
463 |
| - | |
464 |
| - | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
465 | 474 |
| |
466 |
| - | |
467 |
| - | |
468 |
| - | |
469 | 475 |
| |
470 | 476 |
| |
471 | 477 |
| |
|
0 commit comments
Comments
(0)