forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitd9e46df
committed
Fix runtime partition pruning for HASH partitioned tables
This could only affect HASH partitioned tables with at least 2 partitionkey columns.If partition pruning was delayed until execution and the query containedan IS NULL qual on one of the partitioned keys, and some subsequentpartitioned key was being compared to a non-Const, then this could resultin a crash due to the incorrect keyno being used to calculate thestateidx for the expression evaluation code.Here we fix this by properly skipping partitioned keys which have anullkey set. Effectively, this must be the same as what's going oninside perform_pruning_base_step().Sergei Glukhov also provided a patch, but that's not what's being usedhere.Reported-by: Sergei GlukhovReviewed-by: tender wang, Sergei GlukhovDiscussion:https://postgr.es/m/d05b26fa-af54-27e1-f693-6c31590802fa@postgrespro.ruBackpatch-through: 11, where runtime partition pruning was added.1 parentdab5538 commitd9e46df
File tree
3 files changed
+69
-27
lines changed- src
- backend/executor
- test/regress
- expected
- sql
3 files changed
+69
-27
lines changedLines changed: 29 additions & 24 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2108 | 2108 |
| |
2109 | 2109 |
| |
2110 | 2110 |
| |
2111 |
| - | |
| 2111 | + | |
2112 | 2112 |
| |
2113 | 2113 |
| |
2114 | 2114 |
| |
| |||
2117 | 2117 |
| |
2118 | 2118 |
| |
2119 | 2119 |
| |
2120 |
| - | |
2121 |
| - | |
| 2120 | + | |
2122 | 2121 |
| |
2123 |
| - | |
| 2122 | + | |
| 2123 | + | |
2124 | 2124 |
| |
2125 |
| - | |
2126 |
| - | |
| 2125 | + | |
2127 | 2126 |
| |
2128 |
| - | |
2129 |
| - | |
2130 |
| - | |
| 2127 | + | |
2131 | 2128 |
| |
2132 |
| - | |
2133 |
| - | |
2134 |
| - | |
2135 |
| - | |
2136 |
| - | |
2137 |
| - | |
2138 |
| - | |
2139 |
| - | |
2140 |
| - | |
2141 |
| - | |
2142 |
| - | |
2143 |
| - | |
2144 |
| - | |
2145 |
| - | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
| 2140 | + | |
| 2141 | + | |
| 2142 | + | |
| 2143 | + | |
| 2144 | + | |
| 2145 | + | |
| 2146 | + | |
| 2147 | + | |
| 2148 | + | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + | |
2146 | 2152 |
| |
2147 |
| - | |
2148 | 2153 |
| |
2149 | 2154 |
| |
2150 | 2155 |
| |
|
Lines changed: 21 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1948 | 1948 |
| |
1949 | 1949 |
| |
1950 | 1950 |
| |
1951 |
| - | |
1952 | 1951 |
| |
1953 | 1952 |
| |
1954 | 1953 |
| |
| |||
2070 | 2069 |
| |
2071 | 2070 |
| |
2072 | 2071 |
| |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
2073 | 2093 |
| |
2074 | 2094 |
| |
2075 | 2095 |
| |
|
Lines changed: 19 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
384 | 384 |
| |
385 | 385 |
| |
386 | 386 |
| |
387 |
| - | |
388 |
| - | |
389 | 387 |
| |
390 | 388 |
| |
391 | 389 |
| |
| |||
436 | 434 |
| |
437 | 435 |
| |
438 | 436 |
| |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
439 | 456 |
| |
440 | 457 |
| |
441 | 458 |
| |
|
0 commit comments
Comments
(0)