forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit00d4f2a
committed
Improve connection-failure error handling in contrib/postgres_fdw.
postgres_fdw tended to say "unknown error" if it tried to execute a commandon an already-dead connection, because some paths in libpq just return anull PGresult for such cases. Out-of-memory might result in that, too.To fix, pass the PGconn to pgfdw_report_error, and look at itsPQerrorMessage() string if we can't get anything out of the PGresult.Also, fix the transaction-exit logic to reliably drop a dead connection.It was attempting to do that already, but it assumed that only connectioncache entries with xact_depth > 0 needed to be examined. The folly in thatis that if we fail while issuing START TRANSACTION, we'll not have bumpedxact_depth. (At least for the case I was testing, this fix masks theother problem; but it still seems like a good idea to have the PGconnfallback logic.)Per investigation of bug #9087 from Craig Lucas. Backpatch to 9.3 wherethis code was introduced.1 parent489e6ac commit00d4f2a
File tree
3 files changed
+100
-85
lines changed- contrib/postgres_fdw
3 files changed
+100
-85
lines changedLines changed: 85 additions & 70 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
355 | 355 |
| |
356 | 356 |
| |
357 | 357 |
| |
358 |
| - | |
| 358 | + | |
359 | 359 |
| |
360 | 360 |
| |
361 | 361 |
| |
| |||
454 | 454 |
| |
455 | 455 |
| |
456 | 456 |
| |
| 457 | + | |
457 | 458 |
| |
458 | 459 |
| |
459 | 460 |
| |
| |||
462 | 463 |
| |
463 | 464 |
| |
464 | 465 |
| |
465 |
| - | |
| 466 | + | |
| 467 | + | |
466 | 468 |
| |
467 | 469 |
| |
468 | 470 |
| |
| |||
483 | 485 |
| |
484 | 486 |
| |
485 | 487 |
| |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
486 | 496 |
| |
487 | 497 |
| |
488 | 498 |
| |
| |||
525 | 535 |
| |
526 | 536 |
| |
527 | 537 |
| |
528 |
| - | |
529 |
| - | |
| 538 | + | |
| 539 | + | |
530 | 540 |
| |
531 | 541 |
| |
532 |
| - | |
533 |
| - | |
534 |
| - | |
535 |
| - | |
| 542 | + | |
| 543 | + | |
536 | 544 |
| |
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 |
| - | |
574 |
| - | |
575 |
| - | |
576 |
| - | |
577 |
| - | |
578 |
| - | |
579 |
| - | |
580 |
| - | |
581 |
| - | |
582 |
| - | |
583 |
| - | |
584 |
| - | |
585 |
| - | |
586 |
| - | |
587 |
| - | |
588 |
| - | |
589 |
| - | |
590 |
| - | |
591 |
| - | |
592 |
| - | |
593 |
| - | |
594 |
| - | |
595 |
| - | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
596 | 569 |
| |
597 | 570 |
| |
598 | 571 |
| |
599 | 572 |
| |
600 | 573 |
| |
601 | 574 |
| |
602 | 575 |
| |
603 |
| - | |
604 |
| - | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
605 | 620 |
| |
606 | 621 |
| |
607 | 622 |
| |
| |||
689 | 704 |
| |
690 | 705 |
| |
691 | 706 |
| |
692 |
| - | |
| 707 | + | |
693 | 708 |
| |
694 | 709 |
| |
695 | 710 |
| |
|
Lines changed: 13 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1040 | 1040 |
| |
1041 | 1041 |
| |
1042 | 1042 |
| |
1043 |
| - | |
| 1043 | + | |
1044 | 1044 |
| |
1045 | 1045 |
| |
1046 | 1046 |
| |
| |||
1374 | 1374 |
| |
1375 | 1375 |
| |
1376 | 1376 |
| |
1377 |
| - | |
| 1377 | + | |
1378 | 1378 |
| |
1379 | 1379 |
| |
1380 | 1380 |
| |
| |||
1444 | 1444 |
| |
1445 | 1445 |
| |
1446 | 1446 |
| |
1447 |
| - | |
| 1447 | + | |
1448 | 1448 |
| |
1449 | 1449 |
| |
1450 | 1450 |
| |
| |||
1514 | 1514 |
| |
1515 | 1515 |
| |
1516 | 1516 |
| |
1517 |
| - | |
| 1517 | + | |
1518 | 1518 |
| |
1519 | 1519 |
| |
1520 | 1520 |
| |
| |||
1563 | 1563 |
| |
1564 | 1564 |
| |
1565 | 1565 |
| |
1566 |
| - | |
| 1566 | + | |
1567 | 1567 |
| |
1568 | 1568 |
| |
1569 | 1569 |
| |
| |||
1800 | 1800 |
| |
1801 | 1801 |
| |
1802 | 1802 |
| |
1803 |
| - | |
| 1803 | + | |
1804 | 1804 |
| |
1805 | 1805 |
| |
1806 | 1806 |
| |
| |||
1934 | 1934 |
| |
1935 | 1935 |
| |
1936 | 1936 |
| |
1937 |
| - | |
| 1937 | + | |
1938 | 1938 |
| |
1939 | 1939 |
| |
1940 | 1940 |
| |
| |||
1985 | 1985 |
| |
1986 | 1986 |
| |
1987 | 1987 |
| |
1988 |
| - | |
| 1988 | + | |
1989 | 1989 |
| |
1990 | 1990 |
| |
1991 | 1991 |
| |
| |||
2091 | 2091 |
| |
2092 | 2092 |
| |
2093 | 2093 |
| |
2094 |
| - | |
| 2094 | + | |
2095 | 2095 |
| |
2096 | 2096 |
| |
2097 | 2097 |
| |
| |||
2128 | 2128 |
| |
2129 | 2129 |
| |
2130 | 2130 |
| |
2131 |
| - | |
| 2131 | + | |
2132 | 2132 |
| |
2133 | 2133 |
| |
2134 | 2134 |
| |
| |||
2278 | 2278 |
| |
2279 | 2279 |
| |
2280 | 2280 |
| |
2281 |
| - | |
| 2281 | + | |
2282 | 2282 |
| |
2283 | 2283 |
| |
2284 | 2284 |
| |
| |||
2372 | 2372 |
| |
2373 | 2373 |
| |
2374 | 2374 |
| |
2375 |
| - | |
| 2375 | + | |
2376 | 2376 |
| |
2377 | 2377 |
| |
2378 | 2378 |
| |
| |||
2403 | 2403 |
| |
2404 | 2404 |
| |
2405 | 2405 |
| |
2406 |
| - | |
| 2406 | + | |
2407 | 2407 |
| |
2408 | 2408 |
| |
2409 | 2409 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
30 | 30 |
| |
31 | 31 |
| |
32 | 32 |
| |
33 |
| - | |
34 |
| - | |
| 33 | + | |
| 34 | + | |
35 | 35 |
| |
36 | 36 |
| |
37 | 37 |
| |
|
0 commit comments
Comments
(0)