forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitf68e11f
committed
Implement subselects in target lists. Also, relax requirement that
subselects can only appear on the righthand side of a binary operator.That's still true for quantified predicates like x = ANY (SELECT ...),but a subselect that delivers a single result can now appear anywherein an expression. This is implemented by changing EXPR_SUBLINK sublinksto represent just the (SELECT ...) expression, without any 'left handside' or combining operator --- so they're now more like EXISTS_SUBLINK.To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublinktype MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to.But the grammar will only generate one for a multiple-left-hand-siderow expression.1 parent1ecb129 commitf68e11f
File tree
12 files changed
+355
-557
lines changed- src
- backend
- executor
- nodes
- optimizer/plan
- parser
- rewrite
- utils/adt
- include/nodes
12 files changed
+355
-557
lines changedLines changed: 45 additions & 25 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
6 | 11 |
| |
7 | 12 |
| |
8 | 13 |
| |
| |||
68 | 73 |
| |
69 | 74 |
| |
70 | 75 |
| |
71 |
| - | |
72 |
| - | |
73 |
| - | |
74 |
| - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
75 | 82 |
| |
76 | 83 |
| |
77 | 84 |
| |
78 |
| - | |
79 |
| - | |
80 |
| - | |
81 |
| - | |
82 |
| - | |
83 |
| - | |
| 85 | + | |
| 86 | + | |
84 | 87 |
| |
85 | 88 |
| |
86 | 89 |
| |
| |||
98 | 101 |
| |
99 | 102 |
| |
100 | 103 |
| |
101 |
| - | |
102 |
| - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
103 | 120 |
| |
104 | 121 |
| |
105 | 122 |
| |
106 | 123 |
| |
107 |
| - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
108 | 127 |
| |
109 | 128 |
| |
110 | 129 |
| |
| |||
193 | 212 |
| |
194 | 213 |
| |
195 | 214 |
| |
196 |
| - | |
| 215 | + | |
197 | 216 |
| |
198 | 217 |
| |
199 | 218 |
| |
| |||
202 | 221 |
| |
203 | 222 |
| |
204 | 223 |
| |
205 |
| - | |
| 224 | + | |
| 225 | + | |
206 | 226 |
| |
207 |
| - | |
| 227 | + | |
208 | 228 |
| |
209 | 229 |
| |
210 | 230 |
| |
| |||
242 | 262 |
| |
243 | 263 |
| |
244 | 264 |
| |
245 |
| - | |
| 265 | + | |
246 | 266 |
| |
247 | 267 |
| |
248 | 268 |
| |
| |||
293 | 313 |
| |
294 | 314 |
| |
295 | 315 |
| |
296 |
| - | |
297 |
| - | |
298 |
| - | |
299 |
| - | |
300 |
| - | |
301 |
| - | |
302 |
| - | |
303 |
| - | |
304 | 316 |
| |
305 | 317 |
| |
306 | 318 |
| |
307 | 319 |
| |
308 | 320 |
| |
309 | 321 |
| |
310 | 322 |
| |
| 323 | + | |
311 | 324 |
| |
312 | 325 |
| |
313 | 326 |
| |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
314 | 334 |
| |
315 | 335 |
| |
316 | 336 |
| |
|
Lines changed: 8 additions & 6 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 |
| |
| |||
86 | 86 |
| |
87 | 87 |
| |
88 | 88 |
| |
89 |
| - | |
90 |
| - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
91 | 92 |
| |
92 |
| - | |
| 93 | + | |
93 | 94 |
| |
94 | 95 |
| |
95 | 96 |
| |
| |||
137 | 138 |
| |
138 | 139 |
| |
139 | 140 |
| |
140 |
| - | |
141 |
| - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
142 | 144 |
| |
143 | 145 |
| |
144 | 146 |
| |
|
Lines changed: 17 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
87 | 87 |
| |
88 | 88 |
| |
89 | 89 |
| |
| 90 | + | |
90 | 91 |
| |
91 | 92 |
| |
| 93 | + | |
| 94 | + | |
92 | 95 |
| |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
93 | 109 |
| |
94 | 110 |
| |
95 | 111 |
| |
|
Lines changed: 3 additions & 9 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 |
| |
| |||
343 | 343 |
| |
344 | 344 |
| |
345 | 345 |
| |
346 |
| - | |
347 |
| - | |
348 |
| - | |
349 |
| - | |
350 |
| - | |
351 |
| - | |
352 |
| - | |
| 346 | + | |
353 | 347 |
| |
354 | 348 |
| |
355 | 349 |
| |
356 |
| - | |
| 350 | + | |
357 | 351 |
| |
358 | 352 |
| |
359 | 353 |
| |
|
0 commit comments
Comments
(0)