forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit7cce159
committed
Fix handling of expressions and predicates in REINDEX CONCURRENTLY
When copying the definition of an index rebuilt concurrently for the newentry, the index information was taken directly from the old index usingthe relation cache. In this case, predicates and expressions havesome post-processing to prepare things for the planner, which loses someinformation including the collations added in any of them.This inconsistency can cause issues when attempting for example a tablerewrite, and makes the new indexes rebuilt concurrently inconsistentwith the old entries.In order to fix the problem, fetch expressions and predicates directlyfrom the catalog of the old entry, and fill in IndexInfo for the newindex with that. This makes the process more consistent withDefineIndex(), and the code is refactored with the addition of a routineto create an IndexInfo node.Reported-by: Manuel RiggerAuthor: Michael PaquierDiscussion:https://postgr.es/m/CA+u7OA5Hp0ra235F3czPom_FyAd-3+XwSJmX95r1+sRPOJc9VQ@mail.gmail.comBackpatch-through: 121 parenta2a777d commit7cce159
File tree
6 files changed
+237
-42
lines changed- src
- backend
- catalog
- commands
- nodes
- include/nodes
- test/regress
- expected
- sql
6 files changed
+237
-42
lines changedLines changed: 68 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1197 | 1197 |
| |
1198 | 1198 |
| |
1199 | 1199 |
| |
1200 |
| - | |
| 1200 | + | |
| 1201 | + | |
1201 | 1202 |
| |
1202 | 1203 |
| |
1203 | 1204 |
| |
| |||
1208 | 1209 |
| |
1209 | 1210 |
| |
1210 | 1211 |
| |
| 1212 | + | |
| 1213 | + | |
1211 | 1214 |
| |
1212 | 1215 |
| |
1213 | 1216 |
| |
1214 |
| - | |
1215 |
| - | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
1216 | 1228 |
| |
1217 | 1229 |
| |
1218 | 1230 |
| |
| |||
1236 | 1248 |
| |
1237 | 1249 |
| |
1238 | 1250 |
| |
1239 |
| - | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
1240 | 1254 |
| |
1241 |
| - | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
1242 | 1303 |
| |
1243 | 1304 |
| |
1244 | 1305 |
| |
1245 | 1306 |
| |
1246 | 1307 |
| |
| 1308 | + | |
1247 | 1309 |
| |
1248 | 1310 |
| |
1249 | 1311 |
| |
| |||
1259 | 1321 |
| |
1260 | 1322 |
| |
1261 | 1323 |
| |
1262 |
| - | |
| 1324 | + | |
1263 | 1325 |
| |
1264 | 1326 |
| |
1265 | 1327 |
| |
|
Lines changed: 13 additions & 33 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
202 | 202 |
| |
203 | 203 |
| |
204 | 204 |
| |
205 |
| - | |
206 |
| - | |
207 |
| - | |
208 |
| - | |
209 |
| - | |
210 |
| - | |
211 |
| - | |
212 |
| - | |
213 |
| - | |
214 |
| - | |
215 |
| - | |
216 |
| - | |
| 205 | + | |
| 206 | + | |
217 | 207 |
| |
218 | 208 |
| |
219 | 209 |
| |
| |||
780 | 770 |
| |
781 | 771 |
| |
782 | 772 |
| |
783 |
| - | |
784 |
| - | |
785 |
| - | |
786 |
| - | |
787 |
| - | |
788 |
| - | |
789 |
| - | |
790 |
| - | |
791 |
| - | |
792 |
| - | |
793 |
| - | |
794 |
| - | |
795 |
| - | |
796 |
| - | |
797 |
| - | |
798 |
| - | |
799 |
| - | |
800 |
| - | |
801 |
| - | |
802 |
| - | |
803 |
| - | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
804 | 784 |
| |
805 | 785 |
| |
806 | 786 |
| |
|
Lines changed: 50 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 | 2 |
| |
3 | 3 |
| |
4 |
| - | |
5 |
| - | |
| 4 | + | |
| 5 | + | |
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| |||
733 | 733 |
| |
734 | 734 |
| |
735 | 735 |
| |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
736 | 784 |
| |
737 | 785 |
| |
738 | 786 |
| |
|
Lines changed: 6 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 | 2 |
| |
3 | 3 |
| |
4 |
| - | |
| 4 | + | |
5 | 5 |
| |
6 | 6 |
| |
7 | 7 |
| |
| |||
14 | 14 |
| |
15 | 15 |
| |
16 | 16 |
| |
| 17 | + | |
17 | 18 |
| |
18 | 19 |
| |
19 | 20 |
| |
| |||
92 | 93 |
| |
93 | 94 |
| |
94 | 95 |
| |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
95 | 100 |
| |
96 | 101 |
| |
97 | 102 |
| |
|
Lines changed: 72 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2170 | 2170 |
| |
2171 | 2171 |
| |
2172 | 2172 |
| |
| 2173 | + | |
| 2174 | + | |
| 2175 | + | |
| 2176 | + | |
| 2177 | + | |
| 2178 | + | |
| 2179 | + | |
| 2180 | + | |
| 2181 | + | |
| 2182 | + | |
| 2183 | + | |
| 2184 | + | |
| 2185 | + | |
| 2186 | + | |
| 2187 | + | |
| 2188 | + | |
| 2189 | + | |
| 2190 | + | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
| 2194 | + | |
| 2195 | + | |
| 2196 | + | |
| 2197 | + | |
| 2198 | + | |
| 2199 | + | |
| 2200 | + | |
| 2201 | + | |
| 2202 | + | |
| 2203 | + | |
| 2204 | + | |
| 2205 | + | |
| 2206 | + | |
| 2207 | + | |
| 2208 | + | |
| 2209 | + | |
| 2210 | + | |
| 2211 | + | |
| 2212 | + | |
| 2213 | + | |
| 2214 | + | |
| 2215 | + | |
| 2216 | + | |
| 2217 | + | |
| 2218 | + | |
| 2219 | + | |
| 2220 | + | |
| 2221 | + | |
| 2222 | + | |
| 2223 | + | |
| 2224 | + | |
| 2225 | + | |
| 2226 | + | |
| 2227 | + | |
| 2228 | + | |
| 2229 | + | |
| 2230 | + | |
| 2231 | + | |
| 2232 | + | |
| 2233 | + | |
| 2234 | + | |
| 2235 | + | |
| 2236 | + | |
| 2237 | + | |
| 2238 | + | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
2173 | 2245 |
| |
2174 | 2246 |
| |
2175 | 2247 |
| |
|
Lines changed: 28 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
872 | 872 |
| |
873 | 873 |
| |
874 | 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 | + | |
875 | 903 |
| |
876 | 904 |
| |
877 | 905 |
| |
|
0 commit comments
Comments
(0)