Commit 17035e8
authored
Add type intersection expressions (#948)
Given a schema:
```edgeql
type Inh_A { a: int64; };
type Inh_B { b: int64; };
type Inh_C { c: int64; };
type Inh_AB extending Inh_A, Inh_B { ab: int64; };
type Inh_AC extending Inh_A, Inh_C { ac: int64; };
type Inh_BC extending Inh_B, Inh_C { bc: int64; };
type Inh_ABC extending Inh_A, Inh_B, Inh_C { abc: int64; };
type Inh_AB_AC extending Inh_AB, Inh_AC { ab_ac: int64; };
```
Supports queries such as:
```py
client.query(
default.Inh_A.when_type(default.Inh_B).is_(default.Inh_C)
)
client.query(
default.Inh_AB.select(a=lambda x: x.is_(default.Inh_C).c)
)
```1 parent b5ceeea commit 17035e8
File tree
16 files changed
+1564
-206
lines changed- gel
- _internal
- _codegen/_models
- _qbmodel
- _abstract
- _pydantic
- _qb
- _testbase
- models
- protocol/codecs
- tests
- dbsetup
16 files changed
+1564
-206
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2909 | 2909 | | |
2910 | 2910 | | |
2911 | 2911 | | |
2912 | | - | |
| 2912 | + | |
2913 | 2913 | | |
2914 | 2914 | | |
2915 | 2915 | | |
2916 | 2916 | | |
2917 | 2917 | | |
2918 | 2918 | | |
2919 | 2919 | | |
2920 | | - | |
| 2920 | + | |
2921 | 2921 | | |
2922 | 2922 | | |
2923 | 2923 | | |
| |||
2967 | 2967 | | |
2968 | 2968 | | |
2969 | 2969 | | |
2970 | | - | |
| 2970 | + | |
2971 | 2971 | | |
2972 | 2972 | | |
2973 | 2973 | | |
2974 | 2974 | | |
2975 | 2975 | | |
2976 | 2976 | | |
2977 | 2977 | | |
2978 | | - | |
| 2978 | + | |
2979 | 2979 | | |
2980 | 2980 | | |
2981 | 2981 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| 40 | + | |
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
46 | | - | |
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| 56 | + | |
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
| 62 | + | |
60 | 63 | | |
61 | 64 | | |
62 | 65 | | |
| |||
95 | 98 | | |
96 | 99 | | |
97 | 100 | | |
| 101 | + | |
98 | 102 | | |
99 | 103 | | |
100 | 104 | | |
| |||
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| 135 | + | |
131 | 136 | | |
132 | 137 | | |
133 | 138 | | |
| |||
141 | 146 | | |
142 | 147 | | |
143 | 148 | | |
| 149 | + | |
144 | 150 | | |
145 | 151 | | |
146 | 152 | | |
| |||
150 | 156 | | |
151 | 157 | | |
152 | 158 | | |
153 | | - | |
| 159 | + | |
154 | 160 | | |
155 | 161 | | |
156 | 162 | | |
| |||
163 | 169 | | |
164 | 170 | | |
165 | 171 | | |
| 172 | + | |
166 | 173 | | |
167 | 174 | | |
168 | 175 | | |
| |||
171 | 178 | | |
172 | 179 | | |
173 | 180 | | |
| 181 | + | |
174 | 182 | | |
175 | 183 | | |
176 | 184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
| 92 | + | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
| 103 | + | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| |||
494 | 494 | | |
495 | 495 | | |
496 | 496 | | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
497 | 505 | | |
498 | 506 | | |
499 | 507 | | |
500 | 508 | | |
501 | 509 | | |
502 | | - | |
| 510 | + | |
503 | 511 | | |
504 | 512 | | |
505 | 513 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
263 | | - | |
| 263 | + | |
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
279 | | - | |
| 279 | + | |
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
| |||
300 | 300 | | |
301 | 301 | | |
302 | 302 | | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
303 | 332 | | |
304 | 333 | | |
305 | 334 | | |
| |||
319 | 348 | | |
320 | 349 | | |
321 | 350 | | |
322 | | - | |
| 351 | + | |
323 | 352 | | |
324 | 353 | | |
325 | 354 | | |
| |||
337 | 366 | | |
338 | 367 | | |
339 | 368 | | |
340 | | - | |
| 369 | + | |
341 | 370 | | |
342 | 371 | | |
343 | 372 | | |
| |||
406 | 435 | | |
407 | 436 | | |
408 | 437 | | |
409 | | - | |
| 438 | + | |
410 | 439 | | |
411 | 440 | | |
412 | 441 | | |
| |||
508 | 537 | | |
509 | 538 | | |
510 | 539 | | |
511 | | - | |
| 540 | + | |
512 | 541 | | |
513 | 542 | | |
514 | 543 | | |
| |||
588 | 617 | | |
589 | 618 | | |
590 | 619 | | |
| 620 | + | |
| 621 | + | |
591 | 622 | | |
592 | 623 | | |
593 | 624 | | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
594 | 629 | | |
595 | 630 | | |
596 | 631 | | |
| |||
661 | 696 | | |
662 | 697 | | |
663 | 698 | | |
664 | | - | |
| 699 | + | |
665 | 700 | | |
666 | 701 | | |
667 | 702 | | |
| |||
757 | 792 | | |
758 | 793 | | |
759 | 794 | | |
760 | | - | |
| 795 | + | |
761 | 796 | | |
762 | 797 | | |
763 | 798 | | |
| |||
786 | 821 | | |
787 | 822 | | |
788 | 823 | | |
789 | | - | |
| 824 | + | |
790 | 825 | | |
791 | 826 | | |
792 | 827 | | |
| |||
798 | 833 | | |
799 | 834 | | |
800 | 835 | | |
801 | | - | |
| 836 | + | |
802 | 837 | | |
803 | 838 | | |
804 | 839 | | |
| |||
815 | 850 | | |
816 | 851 | | |
817 | 852 | | |
818 | | - | |
| 853 | + | |
819 | 854 | | |
820 | 855 | | |
821 | 856 | | |
822 | 857 | | |
823 | 858 | | |
824 | 859 | | |
825 | 860 | | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
826 | 870 | | |
827 | 871 | | |
828 | 872 | | |
| |||
873 | 917 | | |
874 | 918 | | |
875 | 919 | | |
876 | | - | |
| 920 | + | |
877 | 921 | | |
878 | 922 | | |
879 | 923 | | |
| |||
0 commit comments