forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit2ab0796
committed
Fix char2wchar/wchar2char to support collations properly.
These functions should take a pg_locale_t, not a collation OID, and shouldcall mbstowcs_l/wcstombs_l where available. Where those functions are notavailable, temporarily select the correct locale with uselocale().This change removes the bogus assumption that all locales selectable ina given database have the same wide-character conversion method; inparticular, the collate.linux.utf8 regression test now passes withLC_CTYPE=C, so long as the database encoding is UTF8.I decided to move the char2wchar/wchar2char functions out of mbutils.c andinto pg_locale.c, because they work on wchar_t not pg_wchar_t and thusdon't really belong with the mbutils.c functions. Keeping them where theywere would have required importing pg_locale_t into pg_wchar.h somehow,which did not seem like a good plan.1 parentbb85030 commit2ab0796
File tree
12 files changed
+217
-144
lines changed- src
- backend
- tsearch
- utils
- adt
- mb
- include
- mb
- port
- utils
12 files changed
+217
-144
lines changedLines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
18985 | 18985 |
| |
18986 | 18986 |
| |
18987 | 18987 |
| |
18988 |
| - | |
| 18988 | + | |
| 18989 | + | |
18989 | 18990 |
| |
18990 | 18991 |
| |
18991 | 18992 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1187 | 1187 |
| |
1188 | 1188 |
| |
1189 | 1189 |
| |
1190 |
| - | |
| 1190 | + | |
1191 | 1191 |
| |
1192 | 1192 |
| |
1193 | 1193 |
| |
|
Lines changed: 11 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
29 | 29 |
| |
30 | 30 |
| |
31 | 31 |
| |
| 32 | + | |
32 | 33 |
| |
33 | 34 |
| |
34 | 35 |
| |
35 | 36 |
| |
36 |
| - | |
| 37 | + | |
37 | 38 |
| |
38 | 39 |
| |
39 | 40 |
| |
| |||
44 | 45 |
| |
45 | 46 |
| |
46 | 47 |
| |
| 48 | + | |
47 | 49 |
| |
48 | 50 |
| |
49 | 51 |
| |
50 | 52 |
| |
51 |
| - | |
| 53 | + | |
52 | 54 |
| |
53 | 55 |
| |
54 | 56 |
| |
| |||
59 | 61 |
| |
60 | 62 |
| |
61 | 63 |
| |
| 64 | + | |
62 | 65 |
| |
63 | 66 |
| |
64 | 67 |
| |
65 | 68 |
| |
66 |
| - | |
| 69 | + | |
67 | 70 |
| |
68 | 71 |
| |
69 | 72 |
| |
| |||
74 | 77 |
| |
75 | 78 |
| |
76 | 79 |
| |
| 80 | + | |
77 | 81 |
| |
78 | 82 |
| |
79 | 83 |
| |
80 | 84 |
| |
81 |
| - | |
| 85 | + | |
82 | 86 |
| |
83 | 87 |
| |
84 | 88 |
| |
| |||
246 | 250 |
| |
247 | 251 |
| |
248 | 252 |
| |
| 253 | + | |
249 | 254 |
| |
250 | 255 |
| |
251 | 256 |
| |
| |||
272 | 277 |
| |
273 | 278 |
| |
274 | 279 |
| |
275 |
| - | |
| 280 | + | |
276 | 281 |
| |
277 | 282 |
| |
278 | 283 |
| |
| |||
287 | 292 |
| |
288 | 293 |
| |
289 | 294 |
| |
290 |
| - | |
| 295 | + | |
291 | 296 |
| |
292 | 297 |
| |
293 | 298 |
| |
|
Lines changed: 4 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
300 | 300 |
| |
301 | 301 |
| |
302 | 302 |
| |
| 303 | + | |
303 | 304 |
| |
304 | 305 |
| |
305 | 306 |
| |
306 | 307 |
| |
307 | 308 |
| |
308 | 309 |
| |
309 |
| - | |
| 310 | + | |
310 | 311 |
| |
311 | 312 |
| |
312 | 313 |
| |
313 | 314 |
| |
314 | 315 |
| |
315 | 316 |
| |
316 | 317 |
| |
317 |
| - | |
| 318 | + | |
| 319 | + | |
318 | 320 |
| |
319 | 321 |
| |
320 | 322 |
| |
|
Lines changed: 10 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1454 | 1454 |
| |
1455 | 1455 |
| |
1456 | 1456 |
| |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
1457 | 1461 |
| |
1458 | 1462 |
| |
1459 | 1463 |
| |
| |||
1527 | 1531 |
| |
1528 | 1532 |
| |
1529 | 1533 |
| |
1530 |
| - | |
| 1534 | + | |
1531 | 1535 |
| |
1532 | 1536 |
| |
1533 | 1537 |
| |
| |||
1543 | 1547 |
| |
1544 | 1548 |
| |
1545 | 1549 |
| |
1546 |
| - | |
| 1550 | + | |
1547 | 1551 |
| |
1548 | 1552 |
| |
1549 | 1553 |
| |
| |||
1648 | 1652 |
| |
1649 | 1653 |
| |
1650 | 1654 |
| |
1651 |
| - | |
| 1655 | + | |
1652 | 1656 |
| |
1653 | 1657 |
| |
1654 | 1658 |
| |
| |||
1664 | 1668 |
| |
1665 | 1669 |
| |
1666 | 1670 |
| |
1667 |
| - | |
| 1671 | + | |
1668 | 1672 |
| |
1669 | 1673 |
| |
1670 | 1674 |
| |
| |||
1781 | 1785 |
| |
1782 | 1786 |
| |
1783 | 1787 |
| |
1784 |
| - | |
| 1788 | + | |
1785 | 1789 |
| |
1786 | 1790 |
| |
1787 | 1791 |
| |
| |||
1809 | 1813 |
| |
1810 | 1814 |
| |
1811 | 1815 |
| |
1812 |
| - | |
| 1816 | + | |
1813 | 1817 |
| |
1814 | 1818 |
| |
1815 | 1819 |
| |
|
Lines changed: 173 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1030 | 1030 |
| |
1031 | 1031 |
| |
1032 | 1032 |
| |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + |
0 commit comments
Comments
(0)