forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit5028f22
committed
Switch to CRC-32C in WAL and other places.
The old algorithm was found to not be the usual CRC-32 algorithm, used byEthernet et al. We were using a non-reflected lookup table with code meantfor a reflected lookup table. That's a strange combination that AFAICS doesnot correspond to any bit-wise CRC calculation, which makes it difficult toreason about its properties. Although it has worked well in practice, seemssafer to use a well-known algorithm.Since we're changing the algorithm anyway, we might as well choose adifferent polynomial. The Castagnoli polynomial has better error-correctingproperties than the traditional CRC-32 polynomial, even if we hadimplemented it correctly. Another reason for picking that is that some newCPUs have hardware support for calculating CRC-32C, but not CRC-32, letalone our strange variant of it. This patch doesn't add any support for suchhardware, but a future patch could now do that.The old algorithm is kept around for tsquery and pg_trgm, which use thevalues in indexes that need to remain compatible so that pg_upgrade works.While we're at it, share the old lookup table for CRC-32 calculationbetween hstore, ltree and core. They all use the same table, so might aswell.1 parent404bc51 commit5028f22
File tree
20 files changed
+300
-341
lines changed- contrib
- hstore
- ltree
- pg_trgm
- src
- backend
- access/transam
- replication
- logical
- utils
- adt
- cache
- bin
- pg_controldata
- pg_resetxlog
- include
- access
- catalog
- utils
20 files changed
+300
-341
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
5 |
| - | |
| 5 | + | |
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
|
Lines changed: 0 additions & 106 deletions
This file was deleted.
Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 15 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| 9 | + | |
9 | 10 |
| |
10 |
| - | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
68 | 68 |
| |
69 | 69 |
| |
70 | 70 |
| |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
71 | 85 |
| |
72 | 86 |
| |
73 | 87 |
| |
|
Lines changed: 21 additions & 93 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 |
| - | |
2 |
| - | |
3 | 1 |
| |
4 | 2 |
| |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
5 | 10 |
| |
6 | 11 |
| |
7 | 12 |
| |
| |||
15 | 20 |
| |
16 | 21 |
| |
17 | 22 |
| |
| 23 | + | |
18 | 24 |
| |
19 | 25 |
| |
20 |
| - | |
21 |
| - | |
22 |
| - | |
23 |
| - | |
24 |
| - | |
25 |
| - | |
26 |
| - | |
27 |
| - | |
28 |
| - | |
29 |
| - | |
30 |
| - | |
31 |
| - | |
32 |
| - | |
33 |
| - | |
34 |
| - | |
35 |
| - | |
36 |
| - | |
37 |
| - | |
38 |
| - | |
39 |
| - | |
40 |
| - | |
41 |
| - | |
42 |
| - | |
43 |
| - | |
44 |
| - | |
45 |
| - | |
46 |
| - | |
47 |
| - | |
48 |
| - | |
49 |
| - | |
50 |
| - | |
51 |
| - | |
52 |
| - | |
53 |
| - | |
54 |
| - | |
55 |
| - | |
56 |
| - | |
57 |
| - | |
58 |
| - | |
59 |
| - | |
60 |
| - | |
61 |
| - | |
62 |
| - | |
63 |
| - | |
64 |
| - | |
65 |
| - | |
66 |
| - | |
67 |
| - | |
68 |
| - | |
69 |
| - | |
70 |
| - | |
71 |
| - | |
72 |
| - | |
73 |
| - | |
74 |
| - | |
75 |
| - | |
76 |
| - | |
77 |
| - | |
78 |
| - | |
79 |
| - | |
80 |
| - | |
81 |
| - | |
82 |
| - | |
83 |
| - | |
84 |
| - | |
85 |
| - | |
86 |
| - | |
87 |
| - | |
88 |
| - | |
89 |
| - | |
90 |
| - | |
91 |
| - | |
92 |
| - | |
93 |
| - | |
94 |
| - | |
95 |
| - | |
96 |
| - | |
97 |
| - | |
98 |
| - | |
99 |
| - | |
100 |
| - | |
101 | 26 |
| |
102 | 27 |
| |
103 | 28 |
| |
104 |
| - | |
105 |
| - | |
106 |
| - | |
107 |
| - | |
108 |
| - | |
109 |
| - | |
110 |
| - | |
111 |
| - | |
112 |
| - | |
113 |
| - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
114 | 42 |
|
Lines changed: 3 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
108 | 108 |
| |
109 | 109 |
| |
110 | 110 |
| |
111 |
| - | |
112 |
| - | |
113 |
| - | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
114 | 114 |
| |
115 | 115 |
| |
116 | 116 |
| |
|
Lines changed: 12 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
847 | 847 |
| |
848 | 848 |
| |
849 | 849 |
| |
850 |
| - | |
| 850 | + | |
851 | 851 |
| |
852 |
| - | |
| 852 | + | |
853 | 853 |
| |
854 | 854 |
| |
855 | 855 |
| |
| |||
1056 | 1056 |
| |
1057 | 1057 |
| |
1058 | 1058 |
| |
1059 |
| - | |
| 1059 | + | |
1060 | 1060 |
| |
1061 | 1061 |
| |
1062 | 1062 |
| |
1063 |
| - | |
| 1063 | + | |
1064 | 1064 |
| |
1065 | 1065 |
| |
1066 | 1066 |
| |
| |||
1070 | 1070 |
| |
1071 | 1071 |
| |
1072 | 1072 |
| |
1073 |
| - | |
| 1073 | + | |
1074 | 1074 |
| |
1075 | 1075 |
| |
1076 | 1076 |
| |
| |||
1289 | 1289 |
| |
1290 | 1290 |
| |
1291 | 1291 |
| |
1292 |
| - | |
1293 |
| - | |
1294 |
| - | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
1295 | 1295 |
| |
1296 | 1296 |
| |
1297 | 1297 |
| |
1298 |
| - | |
| 1298 | + | |
1299 | 1299 |
| |
1300 | 1300 |
| |
1301 | 1301 |
| |
| |||
1540 | 1540 |
| |
1541 | 1541 |
| |
1542 | 1542 |
| |
1543 |
| - | |
1544 |
| - | |
1545 |
| - | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
1546 | 1546 |
| |
1547 | 1547 |
| |
1548 | 1548 |
| |
|
0 commit comments
Comments
(0)