forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit1a95f12
committed
Eliminate a lot of list-management overhead within join_search_one_level
by adding a requirement that build_join_rel add new join RelOptInfos to theappropriate list immediately at creation. Per report from Robert Haas,the list_concat_unique_ptr() calls that this change eliminates were takingthe lion's share of the runtime in larger join problems. This doesn't doanything to fix the fundamental combinatorial explosion in large joinproblems, but it should push out the threshold of pain a bit further.Note: because this changes the order in which joinrel lists are built,it might result in changes in selected plans in cases where differentalternatives have exactly the same costs. There is one example in theregression tests.1 parentfe83b97 commit1a95f12
File tree
9 files changed
+873
-863
lines changed- src
- backend
- nodes
- optimizer
- geqo
- path
- plan
- util
- include
- nodes
- optimizer
- test/regress/expected
9 files changed
+873
-863
lines changedLines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
1544 | 1544 |
| |
1545 | 1545 |
| |
1546 | 1546 |
| |
| 1547 | + | |
1547 | 1548 |
| |
1548 | 1549 |
| |
1549 | 1550 |
| |
|
Lines changed: 4 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
9 |
| - | |
| 9 | + | |
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
| |||
88 | 88 |
| |
89 | 89 |
| |
90 | 90 |
| |
| 91 | + | |
| 92 | + | |
91 | 93 |
| |
92 | 94 |
| |
93 | 95 |
| |
| 96 | + | |
94 | 97 |
| |
95 | 98 |
| |
96 | 99 |
| |
|
Lines changed: 21 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
898 | 898 |
| |
899 | 899 |
| |
900 | 900 |
| |
901 |
| - | |
902 | 901 |
| |
903 | 902 |
| |
904 | 903 |
| |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
905 | 910 |
| |
906 | 911 |
| |
907 | 912 |
| |
908 | 913 |
| |
909 | 914 |
| |
910 | 915 |
| |
911 | 916 |
| |
912 |
| - | |
913 |
| - | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
914 | 920 |
| |
915 |
| - | |
| 921 | + | |
916 | 922 |
| |
917 |
| - | |
| 923 | + | |
918 | 924 |
| |
919 | 925 |
| |
920 | 926 |
| |
921 |
| - | |
| 927 | + | |
922 | 928 |
| |
923 | 929 |
| |
924 | 930 |
| |
925 | 931 |
| |
926 | 932 |
| |
927 | 933 |
| |
928 |
| - | |
| 934 | + | |
929 | 935 |
| |
930 | 936 |
| |
931 | 937 |
| |
932 | 938 |
| |
933 |
| - | |
| 939 | + | |
934 | 940 |
| |
935 |
| - | |
| 941 | + | |
936 | 942 |
| |
937 | 943 |
| |
938 | 944 |
| |
| |||
946 | 952 |
| |
947 | 953 |
| |
948 | 954 |
| |
949 |
| - | |
| 955 | + | |
950 | 956 |
| |
951 |
| - | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
952 | 960 |
| |
953 |
| - | |
| 961 | + | |
954 | 962 |
| |
955 | 963 |
| |
956 | 964 |
| |
|
Lines changed: 42 additions & 69 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
22 |
| - | |
| 22 | + | |
23 | 23 |
| |
24 | 24 |
| |
25 |
| - | |
| 25 | + | |
26 | 26 |
| |
27 | 27 |
| |
28 | 28 |
| |
| |||
40 | 40 |
| |
41 | 41 |
| |
42 | 42 |
| |
43 |
| - | |
44 |
| - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
45 | 47 |
| |
46 |
| - | |
47 |
| - | |
| 48 | + | |
| 49 | + | |
48 | 50 |
| |
49 |
| - | |
50 |
| - | |
| 51 | + | |
51 | 52 |
| |
52 | 53 |
| |
53 | 54 |
| |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
54 | 60 |
| |
55 | 61 |
| |
56 | 62 |
| |
| |||
88 | 94 |
| |
89 | 95 |
| |
90 | 96 |
| |
91 |
| - | |
92 |
| - | |
93 |
| - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
94 | 100 |
| |
95 | 101 |
| |
96 | 102 |
| |
| |||
99 | 105 |
| |
100 | 106 |
| |
101 | 107 |
| |
102 |
| - | |
103 |
| - | |
104 |
| - | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
105 | 111 |
| |
106 |
| - | |
107 |
| - | |
108 |
| - | |
109 |
| - | |
110 |
| - | |
111 |
| - | |
112 |
| - | |
113 |
| - | |
114 |
| - | |
115 |
| - | |
116 | 112 |
| |
117 | 113 |
| |
118 | 114 |
| |
| |||
168 | 164 |
| |
169 | 165 |
| |
170 | 166 |
| |
171 |
| - | |
172 |
| - | |
173 |
| - | |
174 |
| - | |
175 |
| - | |
176 |
| - | |
177 |
| - | |
| 167 | + | |
178 | 168 |
| |
179 | 169 |
| |
180 | 170 |
| |
| |||
193 | 183 |
| |
194 | 184 |
| |
195 | 185 |
| |
196 |
| - | |
| 186 | + | |
197 | 187 |
| |
198 | 188 |
| |
199 | 189 |
| |
| |||
211 | 201 |
| |
212 | 202 |
| |
213 | 203 |
| |
214 |
| - | |
215 |
| - | |
216 |
| - | |
217 |
| - | |
218 |
| - | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
219 | 207 |
| |
220 | 208 |
| |
221 | 209 |
| |
| |||
235 | 223 |
| |
236 | 224 |
| |
237 | 225 |
| |
238 |
| - | |
| 226 | + | |
239 | 227 |
| |
240 | 228 |
| |
241 |
| - | |
242 |
| - | |
243 | 229 |
| |
244 | 230 |
| |
245 | 231 |
| |
246 | 232 |
| |
247 | 233 |
| |
248 | 234 |
| |
249 | 235 |
| |
250 |
| - | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
251 | 243 |
| |
252 | 244 |
| |
253 | 245 |
| |
| |||
256 | 248 |
| |
257 | 249 |
| |
258 | 250 |
| |
259 |
| - | |
| 251 | + | |
260 | 252 |
| |
261 | 253 |
| |
262 | 254 |
| |
263 | 255 |
| |
264 |
| - | |
265 | 256 |
| |
266 | 257 |
| |
267 | 258 |
| |
| |||
272 | 263 |
| |
273 | 264 |
| |
274 | 265 |
| |
275 |
| - | |
276 |
| - | |
277 |
| - | |
278 |
| - | |
279 |
| - | |
| 266 | + | |
280 | 267 |
| |
281 | 268 |
| |
282 |
| - | |
283 |
| - | |
284 | 269 |
| |
285 | 270 |
| |
286 | 271 |
| |
287 | 272 |
| |
288 | 273 |
| |
289 | 274 |
| |
290 | 275 |
| |
291 |
| - | |
| 276 | + | |
292 | 277 |
| |
293 | 278 |
| |
294 | 279 |
| |
| |||
297 | 282 |
| |
298 | 283 |
| |
299 | 284 |
| |
300 |
| - | |
| 285 | + | |
301 | 286 |
| |
302 | 287 |
| |
303 | 288 |
| |
304 | 289 |
| |
305 |
| - | |
306 |
| - | |
| 290 | + | |
307 | 291 |
| |
308 |
| - | |
| 292 | + | |
309 | 293 |
| |
310 |
| - | |
| 294 | + | |
311 | 295 |
| |
312 | 296 |
| |
313 | 297 |
| |
314 |
| - | |
315 |
| - | |
316 |
| - | |
317 |
| - | |
318 |
| - | |
319 |
| - | |
320 |
| - | |
321 |
| - | |
322 |
| - | |
323 |
| - | |
| 298 | + | |
324 | 299 |
| |
325 | 300 |
| |
326 |
| - | |
327 |
| - | |
328 | 301 |
| |
329 | 302 |
| |
330 | 303 |
| |
|
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
14 | 14 |
| |
15 | 15 |
| |
16 | 16 |
| |
17 |
| - | |
| 17 | + | |
18 | 18 |
| |
19 | 19 |
| |
20 | 20 |
| |
| |||
142 | 142 |
| |
143 | 143 |
| |
144 | 144 |
| |
| 145 | + | |
| 146 | + | |
145 | 147 |
| |
146 | 148 |
| |
147 | 149 |
| |
|
0 commit comments
Comments
(0)