forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite006a24
committed
Implement SEMI and ANTI joins in the planner and executor. (Semijoins replace
the old JOIN_IN code, but antijoins are new functionality.) Teach the plannerto convert appropriate EXISTS and NOT EXISTS subqueries into semi and antijoins respectively. Also, LEFT JOINs with suitable upper-level IS NULLfilters are recognized as being anti joins. Unify the InClauseInfo andOuterJoinInfo infrastructure into "SpecialJoinInfo". With that change,it becomes possible to associate a SpecialJoinInfo with every join attempt,which permits some cleanup of join selectivity estimation. That needs to betaken much further than this patch does, but the next step is to change theAPI for oprjoin selectivity functions, which seems like material for aseparate patch. So for the moment the output size estimates for semi andespecially anti joins are quite bogus.1 parentef1c807 commite006a24
File tree
40 files changed
+2124
-1199
lines changed- doc/src/sgml
- src
- backend
- commands
- executor
- nodes
- optimizer
- path
- plan
- prep
- util
- rewrite
- utils/adt
- include
- nodes
- optimizer
- utils
40 files changed
+2124
-1199
lines changedLines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 |
| - | |
| 1 | + | |
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
| |||
879 | 879 |
| |
880 | 880 |
| |
881 | 881 |
| |
882 |
| - | |
| 882 | + | |
| 883 | + | |
883 | 884 |
| |
884 | 885 |
| |
885 | 886 |
| |
|
Lines changed: 16 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
450 | 450 |
| |
451 | 451 |
| |
452 | 452 |
| |
453 |
| - | |
454 |
| - | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
455 | 458 |
| |
456 | 459 |
| |
457 | 460 |
| |
| |||
473 | 476 |
| |
474 | 477 |
| |
475 | 478 |
| |
476 |
| - | |
477 |
| - | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
478 | 484 |
| |
479 | 485 |
| |
480 | 486 |
| |
| |||
496 | 502 |
| |
497 | 503 |
| |
498 | 504 |
| |
499 |
| - | |
500 |
| - | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
501 | 510 |
| |
502 | 511 |
| |
503 | 512 |
| |
|
Lines changed: 44 additions & 33 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 |
| |
| |||
22 | 22 |
| |
23 | 23 |
| |
24 | 24 |
| |
| 25 | + | |
| 26 | + | |
| 27 | + | |
25 | 28 |
| |
26 | 29 |
| |
27 | 30 |
| |
| |||
89 | 92 |
| |
90 | 93 |
| |
91 | 94 |
| |
92 |
| - | |
93 |
| - | |
94 |
| - | |
95 |
| - | |
96 |
| - | |
97 |
| - | |
98 |
| - | |
99 |
| - | |
100 | 95 |
| |
101 | 96 |
| |
102 | 97 |
| |
| |||
129 | 124 |
| |
130 | 125 |
| |
131 | 126 |
| |
132 |
| - | |
| 127 | + | |
133 | 128 |
| |
134 | 129 |
| |
135 | 130 |
| |
| |||
162 | 157 |
| |
163 | 158 |
| |
164 | 159 |
| |
165 |
| - | |
| 160 | + | |
166 | 161 |
| |
167 | 162 |
| |
168 | 163 |
| |
| |||
263 | 258 |
| |
264 | 259 |
| |
265 | 260 |
| |
266 |
| - | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
267 | 268 |
| |
268 |
| - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
269 | 279 |
| |
270 |
| - | |
| 280 | + | |
271 | 281 |
| |
272 |
| - | |
273 |
| - | |
274 |
| - | |
275 |
| - | |
276 |
| - | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
277 | 288 |
| |
278 |
| - | |
279 | 289 |
| |
280 |
| - | |
281 |
| - | |
282 |
| - | |
283 |
| - | |
284 |
| - | |
285 |
| - | |
286 |
| - | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
287 | 296 |
| |
288 | 297 |
| |
289 | 298 |
| |
| |||
296 | 305 |
| |
297 | 306 |
| |
298 | 307 |
| |
299 |
| - | |
| 308 | + | |
300 | 309 |
| |
301 | 310 |
| |
302 | 311 |
| |
| |||
305 | 314 |
| |
306 | 315 |
| |
307 | 316 |
| |
308 |
| - | |
| 317 | + | |
309 | 318 |
| |
310 | 319 |
| |
311 | 320 |
| |
| |||
398 | 407 |
| |
399 | 408 |
| |
400 | 409 |
| |
| 410 | + | |
401 | 411 |
| |
402 | 412 |
| |
403 | 413 |
| |
404 |
| - | |
| 414 | + | |
405 | 415 |
| |
406 | 416 |
| |
| 417 | + | |
407 | 418 |
| |
408 | 419 |
| |
409 | 420 |
| |
| |||
570 | 581 |
| |
571 | 582 |
| |
572 | 583 |
| |
573 |
| - | |
| 584 | + | |
574 | 585 |
| |
575 | 586 |
| |
576 | 587 |
| |
| |||
650 | 661 |
| |
651 | 662 |
| |
652 | 663 |
| |
653 |
| - | |
| 664 | + | |
654 | 665 |
| |
655 | 666 |
| |
656 | 667 |
| |
| |||
667 | 678 |
| |
668 | 679 |
| |
669 | 680 |
| |
670 |
| - | |
| 681 | + | |
671 | 682 |
| |
672 | 683 |
| |
673 | 684 |
| |
|
Lines changed: 8 additions & 3 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 |
| |
| |||
757 | 757 |
| |
758 | 758 |
| |
759 | 759 |
| |
760 |
| - | |
| 760 | + | |
761 | 761 |
| |
762 | 762 |
| |
763 | 763 |
| |
| |||
772 | 772 |
| |
773 | 773 |
| |
774 | 774 |
| |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
775 | 779 |
| |
776 | 780 |
| |
777 | 781 |
| |
| |||
1472 | 1476 |
| |
1473 | 1477 |
| |
1474 | 1478 |
| |
1475 |
| - | |
| 1479 | + | |
1476 | 1480 |
| |
1477 | 1481 |
| |
1478 | 1482 |
| |
1479 | 1483 |
| |
| 1484 | + | |
1480 | 1485 |
| |
1481 | 1486 |
| |
1482 | 1487 |
| |
|
Lines changed: 31 additions & 29 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 |
| |
| |||
101 | 101 |
| |
102 | 102 |
| |
103 | 103 |
| |
104 |
| - | |
105 |
| - | |
106 |
| - | |
107 |
| - | |
108 |
| - | |
109 |
| - | |
110 |
| - | |
111 |
| - | |
112 |
| - | |
113 | 104 |
| |
114 | 105 |
| |
115 | 106 |
| |
| |||
177 | 168 |
| |
178 | 169 |
| |
179 | 170 |
| |
180 |
| - | |
| 171 | + | |
| 172 | + | |
181 | 173 |
| |
182 | 174 |
| |
183 | 175 |
| |
| |||
189 | 181 |
| |
190 | 182 |
| |
191 | 183 |
| |
192 |
| - | |
| 184 | + | |
193 | 185 |
| |
194 | 186 |
| |
195 | 187 |
| |
| |||
232 | 224 |
| |
233 | 225 |
| |
234 | 226 |
| |
235 |
| - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
236 | 231 |
| |
237 | 232 |
| |
238 |
| - | |
239 |
| - | |
| 233 | + | |
| 234 | + | |
240 | 235 |
| |
241 |
| - | |
242 |
| - | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
243 | 247 |
| |
244 |
| - | |
| 248 | + | |
245 | 249 |
| |
246 |
| - | |
| 250 | + | |
247 | 251 |
| |
248 |
| - | |
249 |
| - | |
250 |
| - | |
251 |
| - | |
252 |
| - | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
253 | 258 |
| |
254 | 259 |
| |
255 |
| - | |
256 |
| - | |
257 |
| - | |
258 |
| - | |
259 | 260 |
| |
260 | 261 |
| |
261 | 262 |
| |
| |||
333 | 334 |
| |
334 | 335 |
| |
335 | 336 |
| |
336 |
| - | |
| 337 | + | |
337 | 338 |
| |
338 | 339 |
| |
| 340 | + | |
339 | 341 |
| |
340 | 342 |
| |
341 | 343 |
| |
|
0 commit comments
Comments
(0)