- Notifications
You must be signed in to change notification settings - Fork5.2k
Commit775a06d
committed
Make group_similar_or_args() reorder clause list as little as possible
Currently, group_similar_or_args() permutes original positions of clausesindependently on whether it manages to find any groups of similar clauses.While we are not providing any strict warranties on saving the original orderof OR-clauses, it is preferred that the original order be modified as littleas possible.This commit changes the reordering algorithm of group_similar_or_args() inthe following way. We reorder each group of similar clauses so that thefirst item of the group stays in place, but all the other items are movedafter it. So, if there are no similar clauses, the order of clauses staysthe same. When there are some groups, only required reordering happens whilethe rest of the clauses remain in their places.Reported-by: Andrei Lepikhov <lepihov@gmail.com>Discussion:https://postgr.es/m/3ac7c436-81e1-4191-9caf-b0dd70b51511%40gmail.comReviewed-by: Pavel Borisov <pashkin.elfe@gmail.com>Reviewed-by: Andrei Lepikhov <lepihov@gmail.com>Reviewed-by: Alena Rybakina <a.rybakina@postgrespro.ru>1 parent519338a commit775a06d
File tree
5 files changed
+141
-42
lines changed- src
- backend/optimizer/path
- test/regress
- expected
- sql
5 files changed
+141
-42
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1189 | 1189 | | |
1190 | 1190 | | |
1191 | 1191 | | |
| 1192 | + | |
| 1193 | + | |
1192 | 1194 | | |
1193 | 1195 | | |
1194 | 1196 | | |
| |||
1229 | 1231 | | |
1230 | 1232 | | |
1231 | 1233 | | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
1232 | 1257 | | |
1233 | 1258 | | |
1234 | 1259 | | |
| |||
1282 | 1307 | | |
1283 | 1308 | | |
1284 | 1309 | | |
| 1310 | + | |
1285 | 1311 | | |
1286 | 1312 | | |
1287 | 1313 | | |
| |||
1400 | 1426 | | |
1401 | 1427 | | |
1402 | 1428 | | |
1403 | | - | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
1404 | 1440 | | |
1405 | 1441 | | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
1406 | 1463 | | |
1407 | 1464 | | |
1408 | 1465 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1899 | 1899 | | |
1900 | 1900 | | |
1901 | 1901 | | |
1902 | | - | |
| 1902 | + | |
1903 | 1903 | | |
1904 | 1904 | | |
1905 | | - | |
1906 | | - | |
1907 | 1905 | | |
1908 | 1906 | | |
| 1907 | + | |
| 1908 | + | |
1909 | 1909 | | |
1910 | 1910 | | |
1911 | 1911 | | |
| |||
1938 | 1938 | | |
1939 | 1939 | | |
1940 | 1940 | | |
1941 | | - | |
| 1941 | + | |
1942 | 1942 | | |
1943 | 1943 | | |
1944 | | - | |
1945 | | - | |
1946 | 1944 | | |
1947 | 1945 | | |
| 1946 | + | |
| 1947 | + | |
1948 | 1948 | | |
1949 | 1949 | | |
1950 | 1950 | | |
| |||
2129 | 2129 | | |
2130 | 2130 | | |
2131 | 2131 | | |
2132 | | - | |
| 2132 | + | |
2133 | 2133 | | |
2134 | 2134 | | |
2135 | 2135 | | |
2136 | 2136 | | |
2137 | 2137 | | |
2138 | | - | |
2139 | | - | |
2140 | 2138 | | |
2141 | 2139 | | |
| 2140 | + | |
| 2141 | + | |
2142 | 2142 | | |
2143 | 2143 | | |
2144 | 2144 | | |
| |||
3248 | 3248 | | |
3249 | 3249 | | |
3250 | 3250 | | |
| 3251 | + | |
| 3252 | + | |
| 3253 | + | |
| 3254 | + | |
| 3255 | + | |
| 3256 | + | |
| 3257 | + | |
| 3258 | + | |
| 3259 | + | |
| 3260 | + | |
| 3261 | + | |
| 3262 | + | |
| 3263 | + | |
| 3264 | + | |
| 3265 | + | |
| 3266 | + | |
| 3267 | + | |
| 3268 | + | |
| 3269 | + | |
| 3270 | + | |
| 3271 | + | |
| 3272 | + | |
| 3273 | + | |
| 3274 | + | |
| 3275 | + | |
| 3276 | + | |
| 3277 | + | |
| 3278 | + | |
| 3279 | + | |
| 3280 | + | |
| 3281 | + | |
3251 | 3282 | | |
3252 | 3283 | | |
3253 | 3284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4333 | 4333 | | |
4334 | 4334 | | |
4335 | 4335 | | |
4336 | | - | |
| 4336 | + | |
4337 | 4337 | | |
4338 | | - | |
4339 | | - | |
4340 | 4338 | | |
4341 | 4339 | | |
| 4340 | + | |
| 4341 | + | |
4342 | 4342 | | |
4343 | 4343 | | |
4344 | | - | |
| 4344 | + | |
4345 | 4345 | | |
4346 | | - | |
4347 | | - | |
4348 | 4346 | | |
4349 | 4347 | | |
| 4348 | + | |
| 4349 | + | |
4350 | 4350 | | |
4351 | 4351 | | |
4352 | 4352 | | |
| |||
4360 | 4360 | | |
4361 | 4361 | | |
4362 | 4362 | | |
4363 | | - | |
| 4363 | + | |
4364 | 4364 | | |
4365 | | - | |
4366 | | - | |
4367 | 4365 | | |
4368 | 4366 | | |
| 4367 | + | |
| 4368 | + | |
4369 | 4369 | | |
4370 | 4370 | | |
4371 | 4371 | | |
| |||
4377 | 4377 | | |
4378 | 4378 | | |
4379 | 4379 | | |
4380 | | - | |
| 4380 | + | |
4381 | 4381 | | |
4382 | | - | |
4383 | | - | |
4384 | 4382 | | |
4385 | 4383 | | |
| 4384 | + | |
| 4385 | + | |
4386 | 4386 | | |
4387 | 4387 | | |
4388 | | - | |
| 4388 | + | |
4389 | 4389 | | |
4390 | 4390 | | |
4391 | | - | |
4392 | | - | |
4393 | 4391 | | |
4394 | 4392 | | |
| 4393 | + | |
| 4394 | + | |
4395 | 4395 | | |
4396 | 4396 | | |
4397 | 4397 | | |
| |||
4403 | 4403 | | |
4404 | 4404 | | |
4405 | 4405 | | |
4406 | | - | |
| 4406 | + | |
4407 | 4407 | | |
4408 | | - | |
4409 | | - | |
4410 | 4408 | | |
4411 | 4409 | | |
| 4410 | + | |
| 4411 | + | |
4412 | 4412 | | |
4413 | 4413 | | |
4414 | | - | |
| 4414 | + | |
4415 | 4415 | | |
4416 | 4416 | | |
4417 | | - | |
4418 | | - | |
4419 | 4417 | | |
4420 | 4418 | | |
| 4419 | + | |
| 4420 | + | |
4421 | 4421 | | |
4422 | 4422 | | |
4423 | 4423 | | |
| |||
4431 | 4431 | | |
4432 | 4432 | | |
4433 | 4433 | | |
4434 | | - | |
| 4434 | + | |
4435 | 4435 | | |
4436 | 4436 | | |
4437 | | - | |
4438 | | - | |
4439 | | - | |
4440 | | - | |
4441 | 4437 | | |
4442 | 4438 | | |
| 4439 | + | |
| 4440 | + | |
| 4441 | + | |
| 4442 | + | |
4443 | 4443 | | |
4444 | 4444 | | |
4445 | 4445 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2568 | 2568 | | |
2569 | 2569 | | |
2570 | 2570 | | |
2571 | | - | |
| 2571 | + | |
2572 | 2572 | | |
2573 | 2573 | | |
2574 | | - | |
2575 | | - | |
2576 | 2574 | | |
2577 | 2575 | | |
| 2576 | + | |
| 2577 | + | |
2578 | 2578 | | |
2579 | 2579 | | |
2580 | 2580 | | |
2581 | 2581 | | |
2582 | | - | |
| 2582 | + | |
2583 | 2583 | | |
2584 | 2584 | | |
2585 | | - | |
2586 | | - | |
2587 | 2585 | | |
2588 | 2586 | | |
| 2587 | + | |
| 2588 | + | |
2589 | 2589 | | |
2590 | 2590 | | |
2591 | 2591 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1355 | 1355 | | |
1356 | 1356 | | |
1357 | 1357 | | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
1358 | 1369 | | |
1359 | 1370 | | |
1360 | 1371 | | |
| |||
0 commit comments
Comments
(0)