vitess.io/vitess@v0.16.2/go/vt/vtgate/planbuilder/operators/operator_test_data.txt (about) 1 (select id from unsharded union all select id from unsharded_auto order by id) union select id from user 2 Horizon { 3 Query: "(select id from unsharded union all select id from unsharded_auto order by id asc) union select id from `user`" 4 Inner: Concatenate(distinct) { 5 Horizon { 6 Query: "select id from unsharded" 7 Inner: QueryGraph: { 8 Tables: 9 TableSet{0}:unsharded 10 } 11 }, 12 Horizon { 13 Query: "select id from unsharded_auto" 14 Inner: QueryGraph: { 15 Tables: 16 TableSet{1}:unsharded_auto 17 } 18 }, 19 Horizon { 20 Query: "select id from `user`" 21 Inner: QueryGraph: { 22 Tables: 23 TableSet{2}:`user` 24 } 25 } 26 } 27 } 28 29 select id from unsharded union select id from unsharded_auto 30 Horizon { 31 Query: "select id from unsharded union select id from unsharded_auto" 32 Inner: Concatenate(distinct) { 33 Horizon { 34 Query: "select id from unsharded" 35 Inner: QueryGraph: { 36 Tables: 37 TableSet{0}:unsharded 38 } 39 }, 40 Horizon { 41 Query: "select id from unsharded_auto" 42 Inner: QueryGraph: { 43 Tables: 44 TableSet{1}:unsharded_auto 45 } 46 } 47 } 48 } 49 50 select id from unsharded union all select id from unsharded_auto 51 Horizon { 52 Query: "select id from unsharded union all select id from unsharded_auto" 53 Inner: Concatenate { 54 Horizon { 55 Query: "select id from unsharded" 56 Inner: QueryGraph: { 57 Tables: 58 TableSet{0}:unsharded 59 } 60 }, 61 Horizon { 62 Query: "select id from unsharded_auto" 63 Inner: QueryGraph: { 64 Tables: 65 TableSet{1}:unsharded_auto 66 } 67 } 68 } 69 } 70 71 (select id from unsharded union all select id from unsharded_auto limit 10) union select id from x order by id 72 Horizon { 73 Query: "(select id from unsharded union all select id from unsharded_auto limit 10) union select id from x order by id asc" 74 Inner: Concatenate(distinct) { 75 Horizon { 76 Query: "select id from unsharded" 77 Inner: QueryGraph: { 78 Tables: 79 TableSet{0}:unsharded 80 } 81 }, 82 Horizon { 83 Query: "select id from unsharded_auto" 84 Inner: QueryGraph: { 85 Tables: 86 TableSet{1}:unsharded_auto 87 } 88 }, 89 Horizon { 90 Query: "select id from x" 91 Inner: QueryGraph: { 92 Tables: 93 TableSet{2}:x 94 } 95 }, 96 order by id asc 97 } 98 } 99 100 (select id from unsharded union all select id from unsharded_auto) union all select id from x 101 Horizon { 102 Query: "select id from unsharded union all select id from unsharded_auto union all select id from x" 103 Inner: Concatenate { 104 Horizon { 105 Query: "select id from unsharded" 106 Inner: QueryGraph: { 107 Tables: 108 TableSet{0}:unsharded 109 } 110 }, 111 Horizon { 112 Query: "select id from unsharded_auto" 113 Inner: QueryGraph: { 114 Tables: 115 TableSet{1}:unsharded_auto 116 } 117 }, 118 Horizon { 119 Query: "select id from x" 120 Inner: QueryGraph: { 121 Tables: 122 TableSet{2}:x 123 } 124 } 125 } 126 } 127 128 (select id from unsharded union select id from unsharded_auto) union select id from x 129 Horizon { 130 Query: "select id from unsharded union select id from unsharded_auto union select id from x" 131 Inner: Concatenate(distinct) { 132 Horizon { 133 Query: "select id from unsharded" 134 Inner: QueryGraph: { 135 Tables: 136 TableSet{0}:unsharded 137 } 138 }, 139 Horizon { 140 Query: "select id from unsharded_auto" 141 Inner: QueryGraph: { 142 Tables: 143 TableSet{1}:unsharded_auto 144 } 145 }, 146 Horizon { 147 Query: "select id from x" 148 Inner: QueryGraph: { 149 Tables: 150 TableSet{2}:x 151 } 152 } 153 } 154 } 155 156 (select id from unsharded union select id from unsharded_auto) union all select id from x 157 Horizon { 158 Query: "select id from unsharded union select id from unsharded_auto union all select id from x" 159 Inner: Concatenate { 160 Concatenate(distinct) { 161 Horizon { 162 Query: "select id from unsharded" 163 Inner: QueryGraph: { 164 Tables: 165 TableSet{0}:unsharded 166 } 167 }, 168 Horizon { 169 Query: "select id from unsharded_auto" 170 Inner: QueryGraph: { 171 Tables: 172 TableSet{1}:unsharded_auto 173 } 174 } 175 }, 176 Horizon { 177 Query: "select id from x" 178 Inner: QueryGraph: { 179 Tables: 180 TableSet{2}:x 181 } 182 } 183 } 184 } 185 186 select * from t 187 Horizon { 188 Query: "select * from t" 189 Inner: QueryGraph: { 190 Tables: 191 TableSet{0}:t 192 } 193 } 194 195 select t.c from t,y,z where t.c = y.c and (t.a = z.a or t.a = y.a) and 1 < 2 196 Horizon { 197 Query: "select t.c from t, y, z where t.c = y.c and (t.a = z.a or t.a = y.a) and 1 < 2" 198 Inner: QueryGraph: { 199 Tables: 200 TableSet{0}:t 201 TableSet{1}:y 202 TableSet{2}:z 203 JoinPredicates: 204 TableSet{0,1,2} - t.a = z.a or t.a = y.a 205 TableSet{0,1} - t.c = y.c 206 ForAll: 1 < 2 207 } 208 } 209 210 select t.c from t join y on t.id = y.t_id join z on t.id = z.t_id where t.name = 'foo' and y.col = 42 and z.baz = 101 211 Horizon { 212 Query: "select t.c from t join y on t.id = y.t_id join z on t.id = z.t_id where t.`name` = 'foo' and y.col = 42 and z.baz = 101" 213 Inner: QueryGraph: { 214 Tables: 215 TableSet{0}:t where t.`name` = 'foo' 216 TableSet{1}:y where y.col = 42 217 TableSet{2}:z where z.baz = 101 218 JoinPredicates: 219 TableSet{0,1} - t.id = y.t_id 220 TableSet{0,2} - t.id = z.t_id 221 } 222 } 223 224 select t.c from t,y,z where t.name = 'foo' and y.col = 42 and z.baz = 101 and t.id = y.t_id and t.id = z.t_id 225 Horizon { 226 Query: "select t.c from t, y, z where t.`name` = 'foo' and y.col = 42 and z.baz = 101 and t.id = y.t_id and t.id = z.t_id" 227 Inner: QueryGraph: { 228 Tables: 229 TableSet{0}:t where t.`name` = 'foo' 230 TableSet{1}:y where y.col = 42 231 TableSet{2}:z where z.baz = 101 232 JoinPredicates: 233 TableSet{0,1} - t.id = y.t_id 234 TableSet{0,2} - t.id = z.t_id 235 } 236 } 237 238 select 1 from t where '1' = 1 and 12 = '12' 239 Horizon { 240 Query: "select 1 from t where '1' = 1 and 12 = '12'" 241 Inner: QueryGraph: { 242 Tables: 243 TableSet{0}:t 244 ForAll: '1' = 1 and 12 = '12' 245 } 246 } 247 248 select 1 from t left join s on t.id = s.id 249 Horizon { 250 Query: "select 1 from t left join s on t.id = s.id" 251 Inner: OuterJoin: { 252 Inner: QueryGraph: { 253 Tables: 254 TableSet{0}:t 255 } 256 Outer: QueryGraph: { 257 Tables: 258 TableSet{1}:s 259 } 260 Predicate: t.id = s.id 261 } 262 } 263 264 select 1 from t join s on t.id = s.id and t.name = s.name 265 Horizon { 266 Query: "select 1 from t join s on t.id = s.id and t.`name` = s.`name`" 267 Inner: QueryGraph: { 268 Tables: 269 TableSet{0}:t 270 TableSet{1}:s 271 JoinPredicates: 272 TableSet{0,1} - t.id = s.id and t.`name` = s.`name` 273 } 274 } 275 276 select 1 from t left join s on t.id = s.id where t.name = 'Mister' 277 Horizon { 278 Query: "select 1 from t left join s on t.id = s.id where t.`name` = 'Mister'" 279 Inner: OuterJoin: { 280 Inner: QueryGraph: { 281 Tables: 282 TableSet{0}:t where t.`name` = 'Mister' 283 } 284 Outer: QueryGraph: { 285 Tables: 286 TableSet{1}:s 287 } 288 Predicate: t.id = s.id 289 } 290 } 291 292 select 1 from t right join s on t.id = s.id 293 Horizon { 294 Query: "select 1 from t right join s on t.id = s.id" 295 Inner: OuterJoin: { 296 Inner: QueryGraph: { 297 Tables: 298 TableSet{1}:s 299 } 300 Outer: QueryGraph: { 301 Tables: 302 TableSet{0}:t 303 } 304 Predicate: t.id = s.id 305 } 306 } 307 308 select 1 from (a left join b on a.id = b.id) join (c left join d on c.id = d.id) on a.id = c.id 309 Horizon { 310 Query: "select 1 from (a left join b on a.id = b.id) join (c left join d on c.id = d.id) on a.id = c.id" 311 Inner: Join: { 312 LHS: OuterJoin: { 313 Inner: QueryGraph: { 314 Tables: 315 TableSet{0}:a 316 } 317 Outer: QueryGraph: { 318 Tables: 319 TableSet{1}:b 320 } 321 Predicate: a.id = b.id 322 } 323 RHS: OuterJoin: { 324 Inner: QueryGraph: { 325 Tables: 326 TableSet{2}:c 327 } 328 Outer: QueryGraph: { 329 Tables: 330 TableSet{3}:d 331 } 332 Predicate: c.id = d.id 333 } 334 Predicate: a.id = c.id 335 } 336 } 337 338 select 1 from (select 42 as id from tbl) as t 339 Horizon { 340 Query: "select 1 from (select 42 as id from tbl) as t" 341 Inner: Derived t: { 342 Query: select 42 as id from tbl 343 Inner: QueryGraph: { 344 Tables: 345 TableSet{0}:tbl 346 } 347 } 348 } 349 350 select 1 from (select id from tbl limit 10) as t join (select foo, count(*) from usr group by foo) as s on t.id = s.foo 351 Horizon { 352 Query: "select 1 from (select id from tbl limit 10) as t join (select foo, count(*) from usr group by foo) as s on t.id = s.foo" 353 Inner: Join: { 354 LHS: Derived t: { 355 Query: select id from tbl limit 10 356 Inner: QueryGraph: { 357 Tables: 358 TableSet{0}:tbl 359 } 360 } 361 RHS: Derived s: { 362 Query: select foo, count(*) from usr group by foo 363 Inner: QueryGraph: { 364 Tables: 365 TableSet{2}:usr 366 } 367 } 368 Predicate: t.id = s.foo 369 } 370 } 371 372 select (select 1) from t where exists (select 1) and id in (select 1) 373 Horizon { 374 Query: "select (select 1 from dual) from t where exists (select 1 from dual) and id in (select 1 from dual)" 375 Inner: SubQuery: { 376 SubQueries: [ 377 { 378 Type: PulloutValue 379 Query: QueryGraph: { 380 Tables: 381 TableSet{1}:dual 382 } 383 } 384 { 385 Type: PulloutExists 386 Query: QueryGraph: { 387 Tables: 388 TableSet{2}:dual 389 } 390 } 391 { 392 Type: PulloutIn 393 Query: QueryGraph: { 394 Tables: 395 TableSet{3}:dual 396 } 397 }] 398 Outer: QueryGraph: { 399 Tables: 400 TableSet{0}:t where id in (select 1 from dual) 401 ForAll: exists (select 1 from dual) 402 } 403 } 404 } 405 406 select u.id from user u where u.id = (select id from user_extra where id = u.id) 407 Horizon { 408 Query: "select u.id from `user` as u where u.id = (select id from user_extra where id = u.id)" 409 Inner: SubQuery: { 410 SubQueries: [ 411 { 412 Type: PulloutValue 413 Query: QueryGraph: { 414 Tables: 415 TableSet{1}:user_extra 416 JoinPredicates: 417 TableSet{0,1} - id = u.id 418 } 419 }] 420 Outer: QueryGraph: { 421 Tables: 422 TableSet{0}:`user` AS u where u.id = (select id from user_extra where id = u.id) 423 } 424 } 425 } 426 427 select id from user_index where id = :id 428 Horizon { 429 Query: "select id from user_index where id = :id" 430 Inner: Vindex: { 431 Name: user_index 432 Value: :id 433 } 434 } 435 436 select ui.id from user_index as ui join user as u where ui.id = 1 and ui.id = u.id 437 Horizon { 438 Query: "select ui.id from user_index as ui join `user` as u where ui.id = 1 and ui.id = u.id" 439 Inner: Join: { 440 LHS: Vindex: { 441 Name: user_index 442 Value: 1 443 } 444 RHS: QueryGraph: { 445 Tables: 446 TableSet{1}:`user` AS u 447 } 448 Predicate: ui.id = u.id 449 } 450 } 451 452 select u.id from (select id from user_index where id = 2) as u 453 Horizon { 454 Query: "select u.id from (select id from user_index where id = 2) as u" 455 Inner: Derived u: { 456 Query: select id from user_index where id = 2 457 Inner: Vindex: { 458 Name: user_index 459 Value: 2 460 } 461 } 462 } 463 464 select 1 from a union select 2 from b 465 Horizon { 466 Query: "select 1 from a union select 2 from b" 467 Inner: Concatenate(distinct) { 468 Horizon { 469 Query: "select 1 from a" 470 Inner: QueryGraph: { 471 Tables: 472 TableSet{0}:a 473 } 474 }, 475 Horizon { 476 Query: "select 2 from b" 477 Inner: QueryGraph: { 478 Tables: 479 TableSet{1}:b 480 } 481 } 482 } 483 } 484 485 select 1 from a union select 2 from b union select 3 from c 486 Horizon { 487 Query: "select 1 from a union select 2 from b union select 3 from c" 488 Inner: Concatenate(distinct) { 489 Horizon { 490 Query: "select 1 from a" 491 Inner: QueryGraph: { 492 Tables: 493 TableSet{0}:a 494 } 495 }, 496 Horizon { 497 Query: "select 2 from b" 498 Inner: QueryGraph: { 499 Tables: 500 TableSet{1}:b 501 } 502 }, 503 Horizon { 504 Query: "select 3 from c" 505 Inner: QueryGraph: { 506 Tables: 507 TableSet{2}:c 508 } 509 } 510 } 511 } 512 513 select 1 from a union select 2 from b union select 3 from c union all select 4 from d 514 Horizon { 515 Query: "select 1 from a union select 2 from b union select 3 from c union all select 4 from d" 516 Inner: Concatenate { 517 Concatenate(distinct) { 518 Horizon { 519 Query: "select 1 from a" 520 Inner: QueryGraph: { 521 Tables: 522 TableSet{0}:a 523 } 524 }, 525 Horizon { 526 Query: "select 2 from b" 527 Inner: QueryGraph: { 528 Tables: 529 TableSet{1}:b 530 } 531 }, 532 Horizon { 533 Query: "select 3 from c" 534 Inner: QueryGraph: { 535 Tables: 536 TableSet{2}:c 537 } 538 } 539 }, 540 Horizon { 541 Query: "select 4 from d" 542 Inner: QueryGraph: { 543 Tables: 544 TableSet{3}:d 545 } 546 } 547 } 548 } 549 550 select id from unsharded union select id from unsharded_auto order by id 551 Horizon { 552 Query: "select id from unsharded union select id from unsharded_auto order by id asc" 553 Inner: Concatenate(distinct) { 554 Horizon { 555 Query: "select id from unsharded" 556 Inner: QueryGraph: { 557 Tables: 558 TableSet{0}:unsharded 559 } 560 }, 561 Horizon { 562 Query: "select id from unsharded_auto" 563 Inner: QueryGraph: { 564 Tables: 565 TableSet{1}:unsharded_auto 566 } 567 }, 568 order by id asc 569 } 570 } 571 572 select id from user where exists(select user_id from user_extra where user_id = 3 and user_id < user.id) 573 Horizon { 574 Query: "select id from `user` where exists (select user_id from user_extra where user_id = 3 and user_id < `user`.id)" 575 Inner: SubQuery: { 576 SubQueries: [ 577 { 578 Type: PulloutExists 579 Query: QueryGraph: { 580 Tables: 581 TableSet{1}:user_extra where user_id = 3 582 JoinPredicates: 583 TableSet{0,1} - user_id < `user`.id 584 } 585 }] 586 Outer: QueryGraph: { 587 Tables: 588 TableSet{0}:`user` where exists (select user_id from user_extra where user_id = 3 and user_id < `user`.id) 589 } 590 } 591 } 592 593 select ks.tbl.col from ks.tbl where ks.tbl.id = 1 594 Horizon { 595 Query: "select ks.tbl.col from ks.tbl where tbl.id = 1" 596 Inner: QueryGraph: { 597 Tables: 598 TableSet{0}:ks.tbl where tbl.id = 1 599 } 600 } 601 602 select 1 from ks.t join ks.y on ks.t.id = ks.y.t_id 603 Horizon { 604 Query: "select 1 from ks.t join ks.y on t.id = y.t_id" 605 Inner: QueryGraph: { 606 Tables: 607 TableSet{0}:ks.t 608 TableSet{1}:ks.y 609 JoinPredicates: 610 TableSet{0,1} - t.id = y.t_id 611 } 612 } 613 614 select 1 from ks.t left join ks.y on ks.t.id = ks.y.t_id 615 Horizon { 616 Query: "select 1 from ks.t left join ks.y on t.id = y.t_id" 617 Inner: OuterJoin: { 618 Inner: QueryGraph: { 619 Tables: 620 TableSet{0}:ks.t 621 } 622 Outer: QueryGraph: { 623 Tables: 624 TableSet{1}:ks.y 625 } 626 Predicate: t.id = y.t_id 627 } 628 }