forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit627d634
committed
Allow usage of match_orclause_to_indexcol() for joins
This commit allows transformation of OR-clauses into SAOP's for index scanswithin nested loop joins. That required the following changes. 1. Make match_orclause_to_indexcol() and group_similar_or_args() understand const-ness in the same way as match_opclause_to_indexcol(). This generally makes our approach more uniform. 2. Make match_join_clauses_to_index() pass OR-clauses to match_clause_to_index(). 3. Also switch match_join_clauses_to_index() to use list_append_unique_ptr() for adding clauses to *joinorclauses. That avoids possible duplicates when processing the same clauses with different indexes. Previously such duplicates were elimited in match_clause_to_index(), but now group_similar_or_args() each time generates distinct copies of grouped OR clauses.Discussion:https://postgr.es/m/CAPpHfdv%2BjtNwofg-p5z86jLYZUTt6tR17Wy00ta0dL%3DwHQN3ZA%40mail.gmail.comReviewed-by: Andrei Lepikhov <lepihov@gmail.com>Reviewed-by: Alena Rybakina <a.rybakina@postgrespro.ru>Reviewed-by: Pavel Borisov <pashkin.elfe@gmail.com>1 parent23ef119 commit627d634
File tree
6 files changed
+150
-42
lines changed- src
- backend/optimizer/path
- test/regress
- expected
- sql
6 files changed
+150
-42
lines changedLines changed: 41 additions & 29 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1255 | 1255 |
| |
1256 | 1256 |
| |
1257 | 1257 |
| |
| 1258 | + | |
1258 | 1259 |
| |
1259 | 1260 |
| |
1260 | 1261 |
| |
| |||
1319 | 1320 |
| |
1320 | 1321 |
| |
1321 | 1322 |
| |
1322 |
| - | |
1323 |
| - | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
1324 | 1326 |
| |
1325 |
| - | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
1326 | 1330 |
| |
1327 | 1331 |
| |
1328 | 1332 |
| |
| |||
1333 | 1337 |
| |
1334 | 1338 |
| |
1335 | 1339 |
| |
1336 |
| - | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
1337 | 1343 |
| |
1338 | 1344 |
| |
1339 | 1345 |
| |
| |||
2414 | 2420 |
| |
2415 | 2421 |
| |
2416 | 2422 |
| |
| 2423 | + | |
2417 | 2424 |
| |
2418 | 2425 |
| |
2419 | 2426 |
| |
| |||
2432 | 2439 |
| |
2433 | 2440 |
| |
2434 | 2441 |
| |
2435 |
| - | |
| 2442 | + | |
| 2443 | + | |
| 2444 | + | |
| 2445 | + | |
| 2446 | + | |
2436 | 2447 |
| |
2437 |
| - | |
2438 |
| - | |
2439 |
| - | |
| 2448 | + | |
| 2449 | + | |
| 2450 | + | |
2440 | 2451 |
| |
2441 | 2452 |
| |
2442 | 2453 |
| |
| |||
2585 | 2596 |
| |
2586 | 2597 |
| |
2587 | 2598 |
| |
2588 |
| - | |
2589 |
| - | |
2590 |
| - | |
2591 |
| - | |
| 2599 | + | |
2592 | 2600 |
| |
2593 | 2601 |
| |
2594 | 2602 |
| |
| |||
3247 | 3255 |
| |
3248 | 3256 |
| |
3249 | 3257 |
| |
3250 |
| - | |
| 3258 | + | |
| 3259 | + | |
3251 | 3260 |
| |
3252 | 3261 |
| |
3253 | 3262 |
| |
| |||
3259 | 3268 |
| |
3260 | 3269 |
| |
3261 | 3270 |
| |
3262 |
| - | |
3263 |
| - | |
3264 |
| - | |
3265 |
| - | |
| 3271 | + | |
| 3272 | + | |
| 3273 | + | |
3266 | 3274 |
| |
3267 | 3275 |
| |
3268 | 3276 |
| |
| |||
3313 | 3321 |
| |
3314 | 3322 |
| |
3315 | 3323 |
| |
3316 |
| - | |
3317 |
| - | |
| 3324 | + | |
| 3325 | + | |
3318 | 3326 |
| |
3319 | 3327 |
| |
3320 | 3328 |
| |
3321 |
| - | |
| 3329 | + | |
| 3330 | + | |
| 3331 | + | |
3322 | 3332 |
| |
3323 | 3333 |
| |
3324 | 3334 |
| |
3325 | 3335 |
| |
3326 |
| - | |
| 3336 | + | |
| 3337 | + | |
| 3338 | + | |
3327 | 3339 |
| |
3328 | 3340 |
| |
3329 | 3341 |
| |
| |||
3350 | 3362 |
| |
3351 | 3363 |
| |
3352 | 3364 |
| |
3353 |
| - | |
3354 |
| - | |
3355 |
| - | |
3356 |
| - | |
3357 | 3365 |
| |
3358 | 3366 |
| |
3359 | 3367 |
| |
| |||
3390 | 3398 |
| |
3391 | 3399 |
| |
3392 | 3400 |
| |
3393 |
| - | |
3394 |
| - | |
| 3401 | + | |
| 3402 | + | |
| 3403 | + | |
| 3404 | + | |
| 3405 | + | |
| 3406 | + | |
3395 | 3407 |
| |
3396 | 3408 |
| |
3397 | 3409 |
| |
| |||
3408 | 3420 |
| |
3409 | 3421 |
| |
3410 | 3422 |
| |
3411 |
| - | |
| 3423 | + | |
3412 | 3424 |
| |
3413 | 3425 |
| |
3414 |
| - | |
| 3426 | + | |
3415 | 3427 |
| |
3416 | 3428 |
| |
3417 | 3429 |
| |
|
Lines changed: 32 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2006 | 2006 |
| |
2007 | 2007 |
| |
2008 | 2008 |
| |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
2009 | 2030 |
| |
2010 | 2031 |
| |
2011 | 2032 |
| |
| |||
3255 | 3276 |
| |
3256 | 3277 |
| |
3257 | 3278 |
| |
| 3279 | + | |
| 3280 | + | |
| 3281 | + | |
| 3282 | + | |
| 3283 | + | |
| 3284 | + | |
| 3285 | + | |
| 3286 | + | |
| 3287 | + | |
| 3288 | + | |
| 3289 | + | |
3258 | 3290 |
| |
3259 | 3291 |
| |
3260 | 3292 |
| |
|
Lines changed: 45 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3849 | 3849 |
| |
3850 | 3850 |
| |
3851 | 3851 |
| |
3852 |
| - | |
3853 |
| - | |
3854 |
| - | |
3855 |
| - | |
3856 |
| - | |
| 3852 | + | |
| 3853 | + | |
3857 | 3854 |
| |
3858 | 3855 |
| |
3859 |
| - | |
| 3856 | + | |
3860 | 3857 |
| |
3861 | 3858 |
| |
3862 | 3859 |
| |
| |||
8239 | 8236 |
| |
8240 | 8237 |
| |
8241 | 8238 |
| |
| 8239 | + | |
| 8240 | + | |
| 8241 | + | |
| 8242 | + | |
| 8243 | + | |
| 8244 | + | |
| 8245 | + | |
| 8246 | + | |
| 8247 | + | |
| 8248 | + | |
| 8249 | + | |
| 8250 | + | |
| 8251 | + | |
| 8252 | + | |
| 8253 | + | |
| 8254 | + | |
| 8255 | + | |
| 8256 | + | |
| 8257 | + | |
| 8258 | + | |
| 8259 | + | |
| 8260 | + | |
| 8261 | + | |
| 8262 | + | |
| 8263 | + | |
| 8264 | + | |
| 8265 | + | |
| 8266 | + | |
| 8267 | + | |
| 8268 | + | |
| 8269 | + | |
| 8270 | + | |
| 8271 | + | |
| 8272 | + | |
| 8273 | + | |
| 8274 | + | |
| 8275 | + | |
| 8276 | + | |
| 8277 | + | |
| 8278 | + | |
| 8279 | + | |
| 8280 | + |
Lines changed: 6 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2533 | 2533 |
| |
2534 | 2534 |
| |
2535 | 2535 |
| |
2536 |
| - | |
| 2536 | + | |
2537 | 2537 |
| |
2538 | 2538 |
| |
2539 |
| - | |
2540 |
| - | |
2541 | 2539 |
| |
2542 | 2540 |
| |
| 2541 | + | |
| 2542 | + | |
2543 | 2543 |
| |
2544 | 2544 |
| |
2545 | 2545 |
| |
2546 | 2546 |
| |
2547 |
| - | |
| 2547 | + | |
2548 | 2548 |
| |
2549 | 2549 |
| |
2550 |
| - | |
2551 |
| - | |
2552 | 2550 |
| |
2553 | 2551 |
| |
| 2552 | + | |
| 2553 | + | |
2554 | 2554 |
| |
2555 | 2555 |
| |
2556 | 2556 |
| |
|
Lines changed: 9 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
781 | 781 |
| |
782 | 782 |
| |
783 | 783 |
| |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
784 | 790 |
| |
785 | 791 |
| |
786 | 792 |
| |
| |||
1367 | 1373 |
| |
1368 | 1374 |
| |
1369 | 1375 |
| |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
1370 | 1379 |
| |
1371 | 1380 |
| |
1372 | 1381 |
| |
|
Lines changed: 17 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3016 | 3016 |
| |
3017 | 3017 |
| |
3018 | 3018 |
| |
3019 |
| - | |
3020 | 3019 |
| |
3021 | 3020 |
| |
3022 | 3021 |
| |
| |||
3046 | 3045 |
| |
3047 | 3046 |
| |
3048 | 3047 |
| |
| 3048 | + | |
| 3049 | + | |
| 3050 | + | |
| 3051 | + | |
| 3052 | + | |
| 3053 | + | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
| 3059 | + | |
| 3060 | + | |
| 3061 | + | |
| 3062 | + | |
| 3063 | + | |
| 3064 | + |
0 commit comments
Comments
(0)