Commit d06e2c0
committed
Fix wrong results for WHERE on inheritance parent column with LEFT JOIN ON FALSE
When a local inheritance parent table is cross-joined with a distributed
table through LEFT JOIN ... ON FALSE, PostgreSQL's expand_single_inheritance_child()
creates child RTEs via memcpy, duplicating Citus's identity marker (values_lists).
This causes RelationRestrictionForRelation() to return the child's restriction
instead of the parent's. Since Vars in plannerInfo->parse still reference the
parent's original rtable position, RequiredAttrNumbersForRelationInternal()
finds no matching Vars, causing all columns to be replaced with NULL.
Fix by adding an originalRteIndex parameter to RequiredAttrNumbersForRelation()
that also searches at the RTE's original position in the query's rtable when it
differs from the restriction's index.
Fixes: #85531 parent c2bd6ae commit d06e2c0
5 files changed
Lines changed: 93 additions & 5 deletions
File tree
- src
- backend/distributed/planner
- include/distributed
- test/regress
- expected
- sql
Lines changed: 36 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
476 | 476 | | |
477 | 477 | | |
478 | 478 | | |
479 | | - | |
| 479 | + | |
| 480 | + | |
480 | 481 | | |
481 | 482 | | |
482 | 483 | | |
| |||
498 | 499 | | |
499 | 500 | | |
500 | 501 | | |
501 | | - | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
502 | 531 | | |
503 | 532 | | |
504 | 533 | | |
| |||
541 | 570 | | |
542 | 571 | | |
543 | 572 | | |
| 573 | + | |
544 | 574 | | |
545 | 575 | | |
546 | 576 | | |
| 577 | + | |
| 578 | + | |
547 | 579 | | |
548 | 580 | | |
549 | 581 | | |
| |||
566 | 598 | | |
567 | 599 | | |
568 | 600 | | |
569 | | - | |
| 601 | + | |
| 602 | + | |
570 | 603 | | |
571 | 604 | | |
572 | 605 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
971 | 971 | | |
972 | 972 | | |
973 | 973 | | |
974 | | - | |
| 974 | + | |
| 975 | + | |
975 | 976 | | |
976 | 977 | | |
977 | 978 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
887 | 887 | | |
888 | 888 | | |
889 | 889 | | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
341 | 341 | | |
342 | 342 | | |
343 | 343 | | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
0 commit comments