forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit8d1dadb
committed
Accept XML documents when xmloption = content, as required by SQL:2006+.
Previously we were using the SQL:2003 definition, which doesn't allowthis, but that creates a serious dump/restore gotcha: there is nosetting of xmloption that will allow all valid XML data. Hence,switch to the 2006 definition.Since libxml doesn't accept <!DOCTYPE> directives in the mode weuse for CONTENT parsing, the implementation is to detect <!DOCTYPE>in the input and switch to DOCUMENT parsing mode. This should notcost much, because <!DOCTYPE> should be close to the front of theinput if it's there at all. It's possible that this causes theerror messages for malformed input to be slightly different thanthey were before, if said input includes <!DOCTYPE>; but that doesnot seem like a big problem.In passing, buy back a few cycles in parsing of large XML documentsby not doing strlen() of the whole input in parse_xml_decl().Back-patch because dump/restore failures are not nice. This changeshouldn't break any cases that worked before, so it seems safe toback-patch.Chapman Flack (revised a bit by me)Discussion:https://postgr.es/m/CAN-V+g-6JqUQEQZ55Q3toXEN6d5Ez5uvzL4VR+8KtvJKj31taw@mail.gmail.com1 parent05f110c commit8d1dadb
6 files changed
+271
-29
lines changedLines changed: 5 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4208 | 4208 |
| |
4209 | 4209 |
| |
4210 | 4210 |
| |
4211 |
| - | |
4212 |
| - | |
4213 |
| - | |
| 4211 | + | |
| 4212 | + | |
| 4213 | + | |
| 4214 | + | |
| 4215 | + | |
4214 | 4216 |
| |
4215 | 4217 |
| |
4216 | 4218 |
| |
| |||
4285 | 4287 |
| |
4286 | 4288 |
| |
4287 | 4289 |
| |
4288 |
| - | |
4289 |
| - | |
4290 |
| - | |
4291 |
| - | |
4292 |
| - | |
4293 |
| - | |
4294 |
| - | |
4295 |
| - | |
4296 |
| - | |
4297 |
| - | |
4298 | 4290 |
| |
4299 | 4291 |
| |
4300 | 4292 |
| |
|
Lines changed: 125 additions & 16 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
141 | 141 |
| |
142 | 142 |
| |
143 | 143 |
| |
| 144 | + | |
144 | 145 |
| |
145 | 146 |
| |
146 | 147 |
| |
| |||
1243 | 1244 |
| |
1244 | 1245 |
| |
1245 | 1246 |
| |
1246 |
| - | |
1247 |
| - | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
1248 | 1256 |
| |
1249 | 1257 |
| |
1250 | 1258 |
| |
| |||
1415 | 1423 |
| |
1416 | 1424 |
| |
1417 | 1425 |
| |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
1418 | 1508 |
| |
1419 | 1509 |
| |
1420 | 1510 |
| |
| |||
1450 | 1540 |
| |
1451 | 1541 |
| |
1452 | 1542 |
| |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
1453 | 1549 |
| |
1454 | 1550 |
| |
1455 | 1551 |
| |
1456 | 1552 |
| |
1457 | 1553 |
| |
1458 | 1554 |
| |
1459 | 1555 |
| |
| 1556 | + | |
1460 | 1557 |
| |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
1461 | 1575 |
| |
1462 | 1576 |
| |
1463 | 1577 |
| |
| |||
1472 | 1586 |
| |
1473 | 1587 |
| |
1474 | 1588 |
| |
1475 |
| - | |
1476 |
| - | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
1477 | 1598 |
| |
1478 | 1599 |
| |
1479 | 1600 |
| |
1480 |
| - | |
1481 |
| - | |
1482 |
| - | |
1483 |
| - | |
1484 |
| - | |
1485 |
| - | |
1486 |
| - | |
1487 |
| - | |
1488 |
| - | |
1489 |
| - | |
1490 |
| - | |
1491 |
| - | |
1492 | 1601 |
| |
1493 | 1602 |
| |
1494 | 1603 |
| |
|
Lines changed: 46 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
532 | 532 |
| |
533 | 533 |
| |
534 | 534 |
| |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
535 | 542 |
| |
536 | 543 |
| |
537 | 544 |
| |
| |||
545 | 552 |
| |
546 | 553 |
| |
547 | 554 |
| |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
548 | 594 |
| |
549 | 595 |
| |
550 | 596 |
| |
|
Lines changed: 42 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
429 | 429 |
| |
430 | 430 |
| |
431 | 431 |
| |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
432 | 438 |
| |
433 | 439 |
| |
434 | 440 |
| |
435 | 441 |
| |
436 | 442 |
| |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
437 | 479 |
| |
438 | 480 |
| |
439 | 481 |
| |
|
Lines changed: 46 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
512 | 512 |
| |
513 | 513 |
| |
514 | 514 |
| |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
515 | 522 |
| |
516 | 523 |
| |
517 | 524 |
| |
| |||
525 | 532 |
| |
526 | 533 |
| |
527 | 534 |
| |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
528 | 574 |
| |
529 | 575 |
| |
530 | 576 |
| |
|
0 commit comments
Comments
(0)