forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit0f61d4d
committed
Improve relation width estimation for subqueries.
As per the ancient comment for set_rel_width, it really wasn't much goodfor relations that aren't plain tables: it would never find any stats andwould always fall back on datatype-based estimates, which are often prettysilly. Fix that by copying up width estimates from the subquery planningprocess.At some point we might want to do this for CTEs too, but that would be asignificantly more invasive patch because the sub-PlannerInfo is no longeraccessible by the time it's needed. I refrained from doing anything aboutthat, partly for fear of breaking the unmerged CTE-related patches.In passing, also generate less bogus width estimates for whole-row Vars.Per a gripe from Jon Nelson.1 parentfe24d78 commit0f61d4d
File tree
6 files changed
+150
-20
lines changed- src
- backend/optimizer
- path
- plan
- util
- include/optimizer
6 files changed
+150
-20
lines changedLines changed: 1 addition & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
758 | 758 |
| |
759 | 759 |
| |
760 | 760 |
| |
761 |
| - | |
762 |
| - | |
763 |
| - | |
764 | 761 |
| |
765 |
| - | |
| 762 | + | |
766 | 763 |
| |
767 | 764 |
| |
768 | 765 |
| |
|
Lines changed: 129 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
76 | 76 |
| |
77 | 77 |
| |
78 | 78 |
| |
| 79 | + | |
79 | 80 |
| |
80 | 81 |
| |
81 | 82 |
| |
| |||
2986 | 2987 |
| |
2987 | 2988 |
| |
2988 | 2989 |
| |
2989 |
| - | |
| 2990 | + | |
2990 | 2991 |
| |
2991 | 2992 |
| |
2992 | 2993 |
| |
| |||
3151 | 3152 |
| |
3152 | 3153 |
| |
3153 | 3154 |
| |
| 3155 | + | |
| 3156 | + | |
| 3157 | + | |
| 3158 | + | |
| 3159 | + | |
| 3160 | + | |
| 3161 | + | |
| 3162 | + | |
| 3163 | + | |
| 3164 | + | |
| 3165 | + | |
| 3166 | + | |
| 3167 | + | |
| 3168 | + | |
| 3169 | + | |
| 3170 | + | |
| 3171 | + | |
| 3172 | + | |
| 3173 | + | |
| 3174 | + | |
| 3175 | + | |
| 3176 | + | |
| 3177 | + | |
| 3178 | + | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
| 3182 | + | |
| 3183 | + | |
| 3184 | + | |
| 3185 | + | |
| 3186 | + | |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
| 3192 | + | |
| 3193 | + | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
| 3198 | + | |
| 3199 | + | |
| 3200 | + | |
| 3201 | + | |
| 3202 | + | |
| 3203 | + | |
| 3204 | + | |
| 3205 | + | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
| 3218 | + | |
| 3219 | + | |
| 3220 | + | |
| 3221 | + | |
| 3222 | + | |
| 3223 | + | |
| 3224 | + | |
3154 | 3225 |
| |
3155 | 3226 |
| |
3156 | 3227 |
| |
| |||
3251 | 3322 |
| |
3252 | 3323 |
| |
3253 | 3324 |
| |
| 3325 | + | |
| 3326 | + | |
| 3327 | + | |
| 3328 | + | |
| 3329 | + | |
3254 | 3330 |
| |
3255 |
| - | |
3256 |
| - | |
3257 |
| - | |
3258 |
| - | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
| 3335 | + | |
3259 | 3336 |
| |
3260 | 3337 |
| |
3261 | 3338 |
| |
| |||
3265 | 3342 |
| |
3266 | 3343 |
| |
3267 | 3344 |
| |
| 3345 | + | |
3268 | 3346 |
| |
3269 | 3347 |
| |
3270 | 3348 |
| |
| |||
3284 | 3362 |
| |
3285 | 3363 |
| |
3286 | 3364 |
| |
3287 |
| - | |
3288 |
| - | |
| 3365 | + | |
| 3366 | + | |
| 3367 | + | |
| 3368 | + | |
| 3369 | + | |
| 3370 | + | |
| 3371 | + | |
| 3372 | + | |
| 3373 | + | |
| 3374 | + | |
| 3375 | + | |
| 3376 | + | |
3289 | 3377 |
| |
3290 | 3378 |
| |
3291 | 3379 |
| |
| |||
3294 | 3382 |
| |
3295 | 3383 |
| |
3296 | 3384 |
| |
3297 |
| - | |
| 3385 | + | |
3298 | 3386 |
| |
3299 | 3387 |
| |
3300 | 3388 |
| |
| |||
3335 | 3423 |
| |
3336 | 3424 |
| |
3337 | 3425 |
| |
| 3426 | + | |
| 3427 | + | |
| 3428 | + | |
| 3429 | + | |
| 3430 | + | |
| 3431 | + | |
| 3432 | + | |
| 3433 | + | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
| 3439 | + | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
| 3443 | + | |
| 3444 | + | |
| 3445 | + | |
| 3446 | + | |
| 3447 | + | |
| 3448 | + | |
| 3449 | + | |
| 3450 | + | |
| 3451 | + | |
| 3452 | + | |
| 3453 | + | |
| 3454 | + | |
| 3455 | + | |
| 3456 | + | |
| 3457 | + | |
| 3458 | + | |
3338 | 3459 |
| |
3339 | 3460 |
| |
3340 | 3461 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3102 | 3102 |
| |
3103 | 3103 |
| |
3104 | 3104 |
| |
3105 |
| - | |
| 3105 | + | |
3106 | 3106 |
| |
3107 | 3107 |
| |
3108 | 3108 |
| |
|
Lines changed: 16 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
322 | 322 |
| |
323 | 323 |
| |
324 | 324 |
| |
325 |
| - | |
| 325 | + | |
326 | 326 |
| |
327 | 327 |
| |
328 | 328 |
| |
| |||
435 | 435 |
| |
436 | 436 |
| |
437 | 437 |
| |
438 |
| - | |
439 |
| - | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
440 | 441 |
| |
441 | 442 |
| |
442 | 443 |
| |
| |||
456 | 457 |
| |
457 | 458 |
| |
458 | 459 |
| |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
459 | 468 |
| |
460 | 469 |
| |
461 | 470 |
| |
| |||
474 | 483 |
| |
475 | 484 |
| |
476 | 485 |
| |
477 |
| - | |
| 486 | + | |
| 487 | + | |
478 | 488 |
| |
479 | 489 |
| |
480 |
| - | |
| 490 | + | |
481 | 491 |
| |
482 | 492 |
| |
483 | 493 |
| |
484 | 494 |
| |
485 | 495 |
| |
486 | 496 |
| |
487 | 497 |
| |
488 |
| - | |
| 498 | + | |
489 | 499 |
| |
490 | 500 |
| |
491 | 501 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
121 | 121 |
| |
122 | 122 |
| |
123 | 123 |
| |
| 124 | + | |
| 125 | + | |
124 | 126 |
| |
125 | 127 |
| |
126 | 128 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
31 | 31 |
| |
32 | 32 |
| |
33 | 33 |
| |
34 |
| - | |
| 34 | + | |
35 | 35 |
| |
36 | 36 |
| |
37 | 37 |
| |
|
0 commit comments
Comments
(0)