Commit d3c5f37
committed
Make dblink interruptible, via new libpqsrv APIs.
This replaces dblink's blocking libpq calls, allowing cancellation and
allowing DROP DATABASE (of a database not involved in the query). Apart
from explicit dblink_cancel_query() calls, dblink still doesn't cancel
the remote side. The replacement for the blocking calls consists of
new, general-purpose query execution wrappers in the libpqsrv facility.
Out-of-tree extensions should adopt these. Use them in postgres_fdw,
replacing a local implementation from which the libpqsrv implementation
derives. This is a bug fix for dblink. Code inspection identified the
bug at least thirteen years ago, but user complaints have not appeared.
Hence, no back-patch for now.
Discussion: https://postgr.es/m/20231122012945.74@rfd.leadboat.com1 parent 0efc831 commit d3c5f37
File tree
8 files changed
+180
-95
lines changed- contrib
- dblink
- postgres_fdw
- doc/src/sgml
- src
- backend/replication/libpqwalreceiver
- include/libpq
8 files changed
+180
-95
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
133 | 134 | | |
134 | 135 | | |
135 | 136 | | |
| 137 | + | |
136 | 138 | | |
137 | 139 | | |
138 | 140 | | |
| |||
252 | 254 | | |
253 | 255 | | |
254 | 256 | | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
255 | 260 | | |
256 | 261 | | |
257 | 262 | | |
| |||
442 | 447 | | |
443 | 448 | | |
444 | 449 | | |
445 | | - | |
| 450 | + | |
446 | 451 | | |
447 | 452 | | |
448 | 453 | | |
| |||
461 | 466 | | |
462 | 467 | | |
463 | 468 | | |
464 | | - | |
| 469 | + | |
465 | 470 | | |
466 | 471 | | |
467 | 472 | | |
| |||
530 | 535 | | |
531 | 536 | | |
532 | 537 | | |
533 | | - | |
| 538 | + | |
534 | 539 | | |
535 | 540 | | |
536 | 541 | | |
| |||
550 | 555 | | |
551 | 556 | | |
552 | 557 | | |
553 | | - | |
| 558 | + | |
554 | 559 | | |
555 | 560 | | |
556 | 561 | | |
| |||
632 | 637 | | |
633 | 638 | | |
634 | 639 | | |
635 | | - | |
| 640 | + | |
636 | 641 | | |
637 | 642 | | |
638 | 643 | | |
| |||
780 | 785 | | |
781 | 786 | | |
782 | 787 | | |
783 | | - | |
| 788 | + | |
784 | 789 | | |
785 | 790 | | |
786 | 791 | | |
| |||
1088 | 1093 | | |
1089 | 1094 | | |
1090 | 1095 | | |
1091 | | - | |
| 1096 | + | |
| 1097 | + | |
1092 | 1098 | | |
1093 | 1099 | | |
1094 | 1100 | | |
| |||
1115 | 1121 | | |
1116 | 1122 | | |
1117 | 1123 | | |
1118 | | - | |
| 1124 | + | |
1119 | 1125 | | |
1120 | 1126 | | |
1121 | 1127 | | |
| |||
1443 | 1449 | | |
1444 | 1450 | | |
1445 | 1451 | | |
1446 | | - | |
| 1452 | + | |
1447 | 1453 | | |
1448 | 1454 | | |
1449 | 1455 | | |
| |||
2739 | 2745 | | |
2740 | 2746 | | |
2741 | 2747 | | |
2742 | | - | |
2743 | | - | |
| 2748 | + | |
| 2749 | + | |
2744 | 2750 | | |
2745 | 2751 | | |
2746 | 2752 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
190 | 194 | | |
191 | 195 | | |
192 | 196 | | |
| |||
716 | 720 | | |
717 | 721 | | |
718 | 722 | | |
719 | | - | |
| 723 | + | |
720 | 724 | | |
721 | 725 | | |
722 | 726 | | |
| |||
819 | 823 | | |
820 | 824 | | |
821 | 825 | | |
822 | | - | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
823 | 829 | | |
824 | 830 | | |
825 | 831 | | |
| |||
830 | 836 | | |
831 | 837 | | |
832 | 838 | | |
833 | | - | |
834 | | - | |
835 | | - | |
836 | | - | |
837 | 839 | | |
838 | | - | |
839 | | - | |
840 | | - | |
841 | | - | |
| 840 | + | |
| 841 | + | |
842 | 842 | | |
843 | 843 | | |
844 | 844 | | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | | - | |
849 | | - | |
850 | | - | |
| 845 | + | |
851 | 846 | | |
852 | 847 | | |
853 | 848 | | |
854 | 849 | | |
855 | | - | |
| 850 | + | |
856 | 851 | | |
857 | | - | |
858 | | - | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | | - | |
863 | | - | |
864 | | - | |
865 | | - | |
866 | | - | |
867 | | - | |
868 | | - | |
869 | | - | |
870 | | - | |
871 | | - | |
872 | | - | |
873 | | - | |
874 | | - | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
881 | | - | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
886 | | - | |
887 | | - | |
888 | | - | |
889 | | - | |
890 | | - | |
891 | | - | |
892 | | - | |
893 | | - | |
894 | | - | |
895 | | - | |
896 | | - | |
897 | | - | |
898 | | - | |
899 | | - | |
900 | | - | |
901 | | - | |
902 | | - | |
903 | | - | |
904 | | - | |
905 | | - | |
906 | | - | |
907 | | - | |
| 852 | + | |
908 | 853 | | |
909 | 854 | | |
910 | 855 | | |
| |||
945 | 890 | | |
946 | 891 | | |
947 | 892 | | |
948 | | - | |
949 | | - | |
| 893 | + | |
| 894 | + | |
950 | 895 | | |
951 | 896 | | |
952 | 897 | | |
| |||
1046 | 991 | | |
1047 | 992 | | |
1048 | 993 | | |
1049 | | - | |
| 994 | + | |
| 995 | + | |
1050 | 996 | | |
1051 | 997 | | |
1052 | 998 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3815 | 3815 | | |
3816 | 3816 | | |
3817 | 3817 | | |
3818 | | - | |
| 3818 | + | |
3819 | 3819 | | |
3820 | 3820 | | |
3821 | 3821 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3760 | 3760 | | |
3761 | 3761 | | |
3762 | 3762 | | |
3763 | | - | |
| 3763 | + | |
3764 | 3764 | | |
3765 | 3765 | | |
3766 | 3766 | | |
| |||
3810 | 3810 | | |
3811 | 3811 | | |
3812 | 3812 | | |
3813 | | - | |
| 3813 | + | |
3814 | 3814 | | |
3815 | 3815 | | |
3816 | 3816 | | |
| |||
4159 | 4159 | | |
4160 | 4160 | | |
4161 | 4161 | | |
4162 | | - | |
| 4162 | + | |
4163 | 4163 | | |
4164 | 4164 | | |
4165 | 4165 | | |
| |||
4229 | 4229 | | |
4230 | 4230 | | |
4231 | 4231 | | |
4232 | | - | |
| 4232 | + | |
4233 | 4233 | | |
4234 | 4234 | | |
4235 | 4235 | | |
| |||
4571 | 4571 | | |
4572 | 4572 | | |
4573 | 4573 | | |
4574 | | - | |
| 4574 | + | |
4575 | 4575 | | |
4576 | 4576 | | |
4577 | 4577 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
165 | | - | |
| 165 | + | |
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
40 | 49 | | |
41 | 50 | | |
42 | 51 | | |
| |||
Lines changed: 3 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
653 | 653 | | |
654 | 654 | | |
655 | 655 | | |
656 | | - | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
662 | 659 | | |
663 | 660 | | |
664 | 661 | | |
| |||
0 commit comments