Commit 9de77b5
committed
Allow logical replication to transfer data in binary format.
This patch adds a "binary" option to CREATE/ALTER SUBSCRIPTION.
When that's set, the publisher will send data using the data type's
typsend function if any, rather than typoutput. This is generally
faster, if slightly less robust.
As committed, we won't try to transfer user-defined array or composite
types in binary, for fear that type OIDs won't match at the subscriber.
This might be changed later, but it seems like fit material for a
follow-on patch.
Dave Cramer, reviewed by Daniel Gustafsson, Petr Jelinek, and others;
adjusted some by me
Discussion: https://postgr.es/m/CADK3HH+R3xMn=8t3Ct+uD+qJ1KD=Hbif5NFMJ+d5DkoCzp6Vgw@mail.gmail.com1 parent 9add405 commit 9de77b5
File tree
21 files changed
+610
-212
lines changed- doc/src/sgml
- ref
- src
- backend
- catalog
- commands
- replication
- libpqwalreceiver
- logical
- pgoutput
- bin
- pg_dump
- psql
- include
- catalog
- replication
- test
- regress
- expected
- sql
- subscription/t
21 files changed
+610
-212
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7472 | 7472 | | |
7473 | 7473 | | |
7474 | 7474 | | |
7475 | | - | |
| 7475 | + | |
7476 | 7476 | | |
7477 | 7477 | | |
7478 | 7478 | | |
| |||
7500 | 7500 | | |
7501 | 7501 | | |
7502 | 7502 | | |
7503 | | - | |
| 7503 | + | |
| 7504 | + | |
| 7505 | + | |
| 7506 | + | |
| 7507 | + | |
| 7508 | + | |
| 7509 | + | |
| 7510 | + | |
| 7511 | + | |
| 7512 | + | |
| 7513 | + | |
7504 | 7514 | | |
7505 | 7515 | | |
7506 | 7516 | | |
| |||
7518 | 7528 | | |
7519 | 7529 | | |
7520 | 7530 | | |
7521 | | - | |
7522 | | - | |
| 7531 | + | |
| 7532 | + | |
7523 | 7533 | | |
7524 | 7534 | | |
7525 | 7535 | | |
| |||
7528 | 7538 | | |
7529 | 7539 | | |
7530 | 7540 | | |
7531 | | - | |
7532 | | - | |
| 7541 | + | |
| 7542 | + | |
7533 | 7543 | | |
7534 | 7544 | | |
7535 | 7545 | | |
| |||
7538 | 7548 | | |
7539 | 7549 | | |
7540 | 7550 | | |
7541 | | - | |
7542 | | - | |
| 7551 | + | |
| 7552 | + | |
7543 | 7553 | | |
7544 | 7554 | | |
7545 | 7555 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
166 | | - | |
167 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
168 | 170 | | |
169 | 171 | | |
170 | 172 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
156 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
157 | 158 | | |
158 | 159 | | |
159 | 160 | | |
| |||
178 | 179 | | |
179 | 180 | | |
180 | 181 | | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
181 | 203 | | |
182 | 204 | | |
183 | 205 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1122 | 1122 | | |
1123 | 1123 | | |
1124 | 1124 | | |
1125 | | - | |
| 1125 | + | |
1126 | 1126 | | |
1127 | 1127 | | |
1128 | 1128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
60 | 62 | | |
61 | | - | |
62 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
63 | 67 | | |
64 | 68 | | |
65 | 69 | | |
| |||
90 | 94 | | |
91 | 95 | | |
92 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
93 | 102 | | |
94 | 103 | | |
95 | 104 | | |
| |||
175 | 184 | | |
176 | 185 | | |
177 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
178 | 197 | | |
179 | 198 | | |
180 | 199 | | |
| |||
322 | 341 | | |
323 | 342 | | |
324 | 343 | | |
| 344 | + | |
| 345 | + | |
325 | 346 | | |
326 | 347 | | |
327 | 348 | | |
| |||
331 | 352 | | |
332 | 353 | | |
333 | 354 | | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
338 | 364 | | |
339 | 365 | | |
340 | 366 | | |
| |||
400 | 426 | | |
401 | 427 | | |
402 | 428 | | |
| 429 | + | |
403 | 430 | | |
404 | 431 | | |
405 | 432 | | |
| |||
669 | 696 | | |
670 | 697 | | |
671 | 698 | | |
672 | | - | |
673 | | - | |
674 | | - | |
675 | | - | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
676 | 711 | | |
677 | 712 | | |
678 | 713 | | |
| |||
697 | 732 | | |
698 | 733 | | |
699 | 734 | | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
700 | 742 | | |
701 | 743 | | |
702 | 744 | | |
| |||
706 | 748 | | |
707 | 749 | | |
708 | 750 | | |
709 | | - | |
710 | | - | |
711 | | - | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
712 | 760 | | |
713 | 761 | | |
714 | 762 | | |
| |||
744 | 792 | | |
745 | 793 | | |
746 | 794 | | |
747 | | - | |
748 | | - | |
749 | | - | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
750 | 804 | | |
751 | 805 | | |
752 | 806 | | |
| |||
781 | 835 | | |
782 | 836 | | |
783 | 837 | | |
784 | | - | |
785 | | - | |
786 | | - | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
787 | 847 | | |
788 | 848 | | |
789 | 849 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
427 | 431 | | |
428 | 432 | | |
429 | 433 | | |
| |||
0 commit comments