github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/logictest/testdata/logic_test/tpch_vec (about) 1 # LogicTest: local 2 3 # Note that statistics are populated for TPCH Scale Factor 1. 4 5 statement ok 6 CREATE TABLE public.region 7 ( 8 r_regionkey int PRIMARY KEY, 9 r_name char(25) NOT NULL, 10 r_comment varchar(152) 11 ) 12 13 statement ok 14 ALTER TABLE public.region INJECT STATISTICS '[ 15 { 16 "columns": ["r_regionkey"], 17 "created_at": "2018-01-01 1:00:00.00000+00:00", 18 "row_count": 5, 19 "distinct_count": 5 20 }, 21 { 22 "columns": ["r_name"], 23 "created_at": "2018-01-01 1:00:00.00000+00:00", 24 "row_count": 5, 25 "distinct_count": 5 26 }, 27 { 28 "columns": ["r_comment"], 29 "created_at": "2018-01-01 1:00:00.00000+00:00", 30 "row_count": 5, 31 "distinct_count": 5 32 } 33 ]' 34 35 statement ok 36 CREATE TABLE public.nation 37 ( 38 n_nationkey int PRIMARY KEY, 39 n_name char(25) NOT NULL, 40 n_regionkey int NOT NULL, 41 n_comment varchar(152), 42 INDEX n_rk (n_regionkey ASC), 43 CONSTRAINT nation_fkey_region FOREIGN KEY (n_regionkey) references public.region (r_regionkey) 44 ) 45 46 statement ok 47 ALTER TABLE public.nation INJECT STATISTICS '[ 48 { 49 "columns": ["n_nationkey"], 50 "created_at": "2018-01-01 1:00:00.00000+00:00", 51 "row_count": 25, 52 "distinct_count": 25 53 }, 54 { 55 "columns": ["n_name"], 56 "created_at": "2018-01-01 1:00:00.00000+00:00", 57 "row_count": 25, 58 "distinct_count": 25 59 }, 60 { 61 "columns": ["n_regionkey"], 62 "created_at": "2018-01-01 1:00:00.00000+00:00", 63 "row_count": 25, 64 "distinct_count": 5 65 }, 66 { 67 "columns": ["n_comment"], 68 "created_at": "2018-01-01 1:00:00.00000+00:00", 69 "row_count": 25, 70 "distinct_count": 25 71 } 72 ]' 73 74 statement ok 75 CREATE TABLE public.supplier 76 ( 77 s_suppkey int PRIMARY KEY, 78 s_name char(25) NOT NULL, 79 s_address varchar(40) NOT NULL, 80 s_nationkey int NOT NULL, 81 s_phone char(15) NOT NULL, 82 s_acctbal float NOT NULL, 83 s_comment varchar(101) NOT NULL, 84 INDEX s_nk (s_nationkey ASC), 85 CONSTRAINT supplier_fkey_nation FOREIGN KEY (s_nationkey) references public.nation (n_nationkey) 86 ) 87 88 statement ok 89 ALTER TABLE public.supplier INJECT STATISTICS '[ 90 { 91 "columns": ["s_suppkey"], 92 "created_at": "2018-01-01 1:00:00.00000+00:00", 93 "row_count": 10000, 94 "distinct_count": 10000 95 }, 96 { 97 "columns": ["s_name"], 98 "created_at": "2018-01-01 1:00:00.00000+00:00", 99 "row_count": 10000, 100 "distinct_count": 10000 101 }, 102 { 103 "columns": ["s_address"], 104 "created_at": "2018-01-01 1:00:00.00000+00:00", 105 "row_count": 10000, 106 "distinct_count": 10000 107 }, 108 { 109 "columns": ["s_nationkey"], 110 "created_at": "2018-01-01 1:00:00.00000+00:00", 111 "row_count": 10000, 112 "distinct_count": 25 113 }, 114 { 115 "columns": ["s_phone"], 116 "created_at": "2018-01-01 1:00:00.00000+00:00", 117 "row_count": 10000, 118 "distinct_count": 10000 119 }, 120 { 121 "columns": ["s_acctbal"], 122 "created_at": "2018-01-01 1:00:00.00000+00:00", 123 "row_count": 10000, 124 "distinct_count": 10000 125 }, 126 { 127 "columns": ["s_comment"], 128 "created_at": "2018-01-01 1:00:00.00000+00:00", 129 "row_count": 10000, 130 "distinct_count": 10000 131 } 132 ]' 133 134 statement ok 135 CREATE TABLE public.part 136 ( 137 p_partkey int PRIMARY KEY, 138 p_name varchar(55) NOT NULL, 139 p_mfgr char(25) NOT NULL, 140 p_brand char(10) NOT NULL, 141 p_type varchar(25) NOT NULL, 142 p_size int NOT NULL, 143 p_container char(10) NOT NULL, 144 p_retailprice float NOT NULL, 145 p_comment varchar(23) NOT NULL 146 ) 147 148 statement ok 149 ALTER TABLE public.part INJECT STATISTICS '[ 150 { 151 "columns": ["p_partkey"], 152 "created_at": "2018-01-01 1:00:00.00000+00:00", 153 "row_count": 200000, 154 "distinct_count": 200000 155 }, 156 { 157 "columns": ["p_name"], 158 "created_at": "2018-01-01 1:00:00.00000+00:00", 159 "row_count": 200000, 160 "distinct_count": 200000 161 }, 162 { 163 "columns": ["p_mfgr"], 164 "created_at": "2018-01-01 1:00:00.00000+00:00", 165 "row_count": 200000, 166 "distinct_count": 5 167 }, 168 { 169 "columns": ["p_brand"], 170 "created_at": "2018-01-01 1:00:00.00000+00:00", 171 "row_count": 200000, 172 "distinct_count": 25 173 }, 174 { 175 "columns": ["p_type"], 176 "created_at": "2018-01-01 1:00:00.00000+00:00", 177 "row_count": 200000, 178 "distinct_count": 150 179 }, 180 { 181 "columns": ["p_size"], 182 "created_at": "2018-01-01 1:00:00.00000+00:00", 183 "row_count": 200000, 184 "distinct_count": 50 185 }, 186 { 187 "columns": ["p_container"], 188 "created_at": "2018-01-01 1:00:00.00000+00:00", 189 "row_count": 200000, 190 "distinct_count": 40 191 }, 192 { 193 "columns": ["p_retailprice"], 194 "created_at": "2018-01-01 1:00:00.00000+00:00", 195 "row_count": 200000, 196 "distinct_count": 20000 197 }, 198 { 199 "columns": ["p_comment"], 200 "created_at": "2018-01-01 1:00:00.00000+00:00", 201 "row_count": 200000, 202 "distinct_count": 130000 203 } 204 ]' 205 206 statement ok 207 CREATE TABLE public.partsupp 208 ( 209 ps_partkey int NOT NULL, 210 ps_suppkey int NOT NULL, 211 ps_availqty int NOT NULL, 212 ps_supplycost float NOT NULL, 213 ps_comment varchar(199) NOT NULL, 214 PRIMARY KEY (ps_partkey, ps_suppkey), 215 INDEX ps_sk (ps_suppkey ASC), 216 CONSTRAINT partsupp_fkey_part FOREIGN KEY (ps_partkey) references public.part (p_partkey), 217 CONSTRAINT partsupp_fkey_supplier FOREIGN KEY (ps_suppkey) references public.supplier (s_suppkey) 218 ) 219 220 statement ok 221 ALTER TABLE public.partsupp INJECT STATISTICS '[ 222 { 223 "columns": ["ps_partkey"], 224 "created_at": "2018-01-01 1:00:00.00000+00:00", 225 "row_count": 800000, 226 "distinct_count": 200000 227 }, 228 { 229 "columns": ["ps_suppkey"], 230 "created_at": "2018-01-01 1:00:00.00000+00:00", 231 "row_count": 800000, 232 "distinct_count": 10000 233 }, 234 { 235 "columns": ["ps_availqty"], 236 "created_at": "2018-01-01 1:00:00.00000+00:00", 237 "row_count": 800000, 238 "distinct_count": 10000 239 }, 240 { 241 "columns": ["ps_supplycost"], 242 "created_at": "2018-01-01 1:00:00.00000+00:00", 243 "row_count": 800000, 244 "distinct_count": 100000 245 }, 246 { 247 "columns": ["ps_comment"], 248 "created_at": "2018-01-01 1:00:00.00000+00:00", 249 "row_count": 800000, 250 "distinct_count": 800000 251 } 252 ]' 253 254 statement ok 255 CREATE TABLE public.customer 256 ( 257 c_custkey int PRIMARY KEY, 258 c_name varchar(25) NOT NULL, 259 c_address varchar(40) NOT NULL, 260 c_nationkey int NOT NULL NOT NULL, 261 c_phone char(15) NOT NULL, 262 c_acctbal float NOT NULL, 263 c_mktsegment char(10) NOT NULL, 264 c_comment varchar(117) NOT NULL, 265 INDEX c_nk (c_nationkey ASC), 266 CONSTRAINT customer_fkey_nation FOREIGN KEY (c_nationkey) references public.nation (n_nationkey) 267 ) 268 269 statement ok 270 ALTER TABLE public.customer INJECT STATISTICS '[ 271 { 272 "columns": ["c_custkey"], 273 "created_at": "2018-01-01 1:00:00.00000+00:00", 274 "row_count": 150000, 275 "distinct_count": 150000 276 }, 277 { 278 "columns": ["c_name"], 279 "created_at": "2018-01-01 1:00:00.00000+00:00", 280 "row_count": 150000, 281 "distinct_count": 150000 282 }, 283 { 284 "columns": ["c_address"], 285 "created_at": "2018-01-01 1:00:00.00000+00:00", 286 "row_count": 150000, 287 "distinct_count": 150000 288 }, 289 { 290 "columns": ["c_nationkey"], 291 "created_at": "2018-01-01 1:00:00.00000+00:00", 292 "row_count": 150000, 293 "distinct_count": 25 294 }, 295 { 296 "columns": ["c_phone"], 297 "created_at": "2018-01-01 1:00:00.00000+00:00", 298 "row_count": 150000, 299 "distinct_count": 150000 300 }, 301 { 302 "columns": ["c_acctbal"], 303 "created_at": "2018-01-01 1:00:00.00000+00:00", 304 "row_count": 150000, 305 "distinct_count": 150000 306 }, 307 { 308 "columns": ["c_mktsegment"], 309 "created_at": "2018-01-01 1:00:00.00000+00:00", 310 "row_count": 150000, 311 "distinct_count": 5 312 }, 313 { 314 "columns": ["c_comment"], 315 "created_at": "2018-01-01 1:00:00.00000+00:00", 316 "row_count": 150000, 317 "distinct_count": 150000 318 } 319 ]' 320 321 statement ok 322 CREATE TABLE public.orders 323 ( 324 o_orderkey int PRIMARY KEY, 325 o_custkey int NOT NULL, 326 o_orderstatus char(1) NOT NULL, 327 o_totalprice float NOT NULL, 328 o_orderdate date NOT NULL, 329 o_orderpriority char(15) NOT NULL, 330 o_clerk char(15) NOT NULL, 331 o_shippriority int NOT NULL, 332 o_comment varchar(79) NOT NULL, 333 INDEX o_ck (o_custkey ASC), 334 INDEX o_od (o_orderdate ASC), 335 CONSTRAINT orders_fkey_customer FOREIGN KEY (o_custkey) references public.customer (c_custkey) 336 ) 337 338 statement ok 339 ALTER TABLE public.orders INJECT STATISTICS '[ 340 { 341 "columns": ["o_orderkey"], 342 "created_at": "2018-01-01 1:00:00.00000+00:00", 343 "row_count": 1500000, 344 "distinct_count": 1500000 345 }, 346 { 347 "columns": ["o_custkey"], 348 "created_at": "2018-01-01 1:00:00.00000+00:00", 349 "row_count": 1500000, 350 "distinct_count": 100000 351 }, 352 { 353 "columns": ["o_orderstatus"], 354 "created_at": "2018-01-01 1:00:00.00000+00:00", 355 "row_count": 1500000, 356 "distinct_count": 3 357 }, 358 { 359 "columns": ["o_totalprice"], 360 "created_at": "2018-01-01 1:00:00.00000+00:00", 361 "row_count": 1500000, 362 "distinct_count": 1500000 363 }, 364 { 365 "columns": ["o_orderdate"], 366 "created_at": "2018-01-01 1:00:00.00000+00:00", 367 "row_count": 1500000, 368 "distinct_count": 2500 369 }, 370 { 371 "columns": ["o_orderpriority"], 372 "created_at": "2018-01-01 1:00:00.00000+00:00", 373 "row_count": 1500000, 374 "distinct_count": 5 375 }, 376 { 377 "columns": ["o_clerk"], 378 "created_at": "2018-01-01 1:00:00.00000+00:00", 379 "row_count": 1500000, 380 "distinct_count": 1000 381 }, 382 { 383 "columns": ["o_shippriority"], 384 "created_at": "2018-01-01 1:00:00.00000+00:00", 385 "row_count": 1500000, 386 "distinct_count": 1 387 }, 388 { 389 "columns": ["o_comment"], 390 "created_at": "2018-01-01 1:00:00.00000+00:00", 391 "row_count": 1500000, 392 "distinct_count": 1500000 393 } 394 ]' 395 396 statement ok 397 CREATE TABLE public.lineitem 398 ( 399 l_orderkey int NOT NULL, 400 l_partkey int NOT NULL, 401 l_suppkey int NOT NULL, 402 l_linenumber int NOT NULL, 403 l_quantity float NOT NULL, 404 l_extendedprice float NOT NULL, 405 l_discount float NOT NULL, 406 l_tax float NOT NULL, 407 l_returnflag char(1) NOT NULL, 408 l_linestatus char(1) NOT NULL, 409 l_shipdate date NOT NULL, 410 l_commitdate date NOT NULL, 411 l_receiptdate date NOT NULL, 412 l_shipinstruct char(25) NOT NULL, 413 l_shipmode char(10) NOT NULL, 414 l_comment varchar(44) NOT NULL, 415 PRIMARY KEY (l_orderkey, l_linenumber), 416 INDEX l_ok (l_orderkey ASC), 417 INDEX l_pk (l_partkey ASC), 418 INDEX l_sk (l_suppkey ASC), 419 INDEX l_sd (l_shipdate ASC), 420 INDEX l_cd (l_commitdate ASC), 421 INDEX l_rd (l_receiptdate ASC), 422 INDEX l_pk_sk (l_partkey ASC, l_suppkey ASC), 423 INDEX l_sk_pk (l_suppkey ASC, l_partkey ASC), 424 CONSTRAINT lineitem_fkey_orders FOREIGN KEY (l_orderkey) references public.orders (o_orderkey), 425 CONSTRAINT lineitem_fkey_part FOREIGN KEY (l_partkey) references public.part (p_partkey), 426 CONSTRAINT lineitem_fkey_supplier FOREIGN KEY (l_suppkey) references public.supplier (s_suppkey) 427 ) 428 429 statement ok 430 ALTER TABLE public.lineitem INJECT STATISTICS '[ 431 { 432 "columns": ["l_orderkey"], 433 "created_at": "2018-01-01 1:00:00.00000+00:00", 434 "row_count": 6001215, 435 "distinct_count": 1500000 436 }, 437 { 438 "columns": ["l_partkey"], 439 "created_at": "2018-01-01 1:00:00.00000+00:00", 440 "row_count": 6001215, 441 "distinct_count": 200000 442 }, 443 { 444 "columns": ["l_suppkey"], 445 "created_at": "2018-01-01 1:00:00.00000+00:00", 446 "row_count": 6001215, 447 "distinct_count": 10000 448 }, 449 { 450 "columns": ["l_linenumber"], 451 "created_at": "2018-01-01 1:00:00.00000+00:00", 452 "row_count": 6001215, 453 "distinct_count": 7 454 }, 455 { 456 "columns": ["l_quantity"], 457 "created_at": "2018-01-01 1:00:00.00000+00:00", 458 "row_count": 6001215, 459 "distinct_count": 50 460 }, 461 { 462 "columns": ["l_extendedprice"], 463 "created_at": "2018-01-01 1:00:00.00000+00:00", 464 "row_count": 6001215, 465 "distinct_count": 1000000 466 }, 467 { 468 "columns": ["l_discount"], 469 "created_at": "2018-01-01 1:00:00.00000+00:00", 470 "row_count": 6001215, 471 "distinct_count": 11 472 }, 473 { 474 "columns": ["l_tax"], 475 "created_at": "2018-01-01 1:00:00.00000+00:00", 476 "row_count": 6001215, 477 "distinct_count": 9 478 }, 479 { 480 "columns": ["l_returnflag"], 481 "created_at": "2018-01-01 1:00:00.00000+00:00", 482 "row_count": 6001215, 483 "distinct_count": 3 484 }, 485 { 486 "columns": ["l_linestatus"], 487 "created_at": "2018-01-01 1:00:00.00000+00:00", 488 "row_count": 6001215, 489 "distinct_count": 2 490 }, 491 { 492 "columns": ["l_shipdate"], 493 "created_at": "2018-01-01 1:00:00.00000+00:00", 494 "row_count": 6001215, 495 "distinct_count": 2500 496 }, 497 { 498 "columns": ["l_commitdate"], 499 "created_at": "2018-01-01 1:00:00.00000+00:00", 500 "row_count": 6001215, 501 "distinct_count": 2500 502 }, 503 { 504 "columns": ["l_receiptdate"], 505 "created_at": "2018-01-01 1:00:00.00000+00:00", 506 "row_count": 6001215, 507 "distinct_count": 2500 508 }, 509 { 510 "columns": ["l_shipinstruct"], 511 "created_at": "2018-01-01 1:00:00.00000+00:00", 512 "row_count": 6001215, 513 "distinct_count": 4 514 }, 515 { 516 "columns": ["l_shipmode"], 517 "created_at": "2018-01-01 1:00:00.00000+00:00", 518 "row_count": 6001215, 519 "distinct_count": 7 520 }, 521 { 522 "columns": ["l_comment"], 523 "created_at": "2018-01-01 1:00:00.00000+00:00", 524 "row_count": 6001215, 525 "distinct_count": 4500000 526 } 527 ]' 528 529 # Query 1 530 query T 531 EXPLAIN (VEC) SELECT l_returnflag, l_linestatus, sum(l_quantity) AS sum_qty, sum(l_extendedprice) AS sum_base_price, sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price, sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge, avg(l_quantity) AS avg_qty, avg(l_extendedprice) AS avg_price, avg(l_discount) AS avg_disc, count(*) AS count_order FROM lineitem WHERE l_shipdate <= DATE '1998-12-01' - INTERVAL '90' DAY GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus 532 ---- 533 │ 534 └ Node 1 535 └ *colexec.sortOp 536 └ *colexec.hashAggregator 537 └ *colexec.projMultFloat64Float64Op 538 └ *colexec.projPlusFloat64Float64ConstOp 539 └ *colexec.projMultFloat64Float64Op 540 └ *colexec.projMinusFloat64ConstFloat64Op 541 └ *colexec.projMultFloat64Float64Op 542 └ *colexec.projMinusFloat64ConstFloat64Op 543 └ *colexec.selLEInt64Int64ConstOp 544 └ *colexec.colBatchScan 545 546 # Query 2 547 query T 548 EXPLAIN (VEC) SELECT s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment FROM part, supplier, partsupp, nation, region WHERE p_partkey = ps_partkey AND s_suppkey = ps_suppkey AND p_size = 15 AND p_type LIKE '%BRASS' AND s_nationkey = n_nationkey AND n_regionkey = r_regionkey AND r_name = 'EUROPE' AND ps_supplycost = ( SELECT min(ps_supplycost) FROM partsupp, supplier, nation, region WHERE p_partkey = ps_partkey AND s_suppkey = ps_suppkey AND s_nationkey = n_nationkey AND n_regionkey = r_regionkey AND r_name = 'EUROPE') ORDER BY s_acctbal DESC, n_name, s_name, p_partkey LIMIT 100 549 ---- 550 │ 551 └ Node 1 552 └ *colexec.limitOp 553 └ *colexec.topKSorter 554 └ *colexec.selEQFloat64Float64Op 555 └ *colexec.hashAggregator 556 └ *colexec.hashJoiner 557 ├ *colexec.hashJoiner 558 │ ├ *colexec.colBatchScan 559 │ └ *rowexec.joinReader 560 │ └ *colexec.mergeJoinInnerOp 561 │ ├ *colexec.colBatchScan 562 │ └ *colexec.selEQBytesBytesConstOp 563 │ └ *colexec.colBatchScan 564 └ *colexec.hashJoiner 565 ├ *colexec.hashJoiner 566 │ ├ *colexec.colBatchScan 567 │ └ *colexec.hashJoiner 568 │ ├ *colexec.colBatchScan 569 │ └ *colexec.hashJoiner 570 │ ├ *colexec.colBatchScan 571 │ └ *colexec.selEQBytesBytesConstOp 572 │ └ *colexec.colBatchScan 573 └ *colexec.selSuffixBytesBytesConstOp 574 └ *colexec.selEQInt64Int64ConstOp 575 └ *colexec.colBatchScan 576 577 # Query 3 578 query T 579 EXPLAIN (VEC) SELECT l_orderkey, sum(l_extendedprice * (1 - l_discount)) AS revenue, o_orderdate, o_shippriority FROM customer, orders, lineitem WHERE c_mktsegment = 'BUILDING' AND c_custkey = o_custkey AND l_orderkey = o_orderkey AND o_orderDATE < DATE '1995-03-15' AND l_shipdate > DATE '1995-03-15' GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue DESC, o_orderdate LIMIT 10 580 ---- 581 │ 582 └ Node 1 583 └ *colexec.limitOp 584 └ *colexec.topKSorter 585 └ *colexec.hashAggregator 586 └ *rowexec.joinReader 587 └ *colexec.hashJoiner 588 ├ *colexec.selLTInt64Int64ConstOp 589 │ └ *colexec.colBatchScan 590 └ *colexec.selEQBytesBytesConstOp 591 └ *colexec.colBatchScan 592 593 # Query 4 594 query T 595 EXPLAIN (VEC) SELECT o_orderpriority, count(*) AS order_count FROM orders WHERE o_orderdate >= DATE '1993-07-01' AND o_orderdate < DATE '1993-07-01' + INTERVAL '3' MONTH AND EXISTS ( SELECT * FROM lineitem WHERE l_orderkey = o_orderkey AND l_commitDATE < l_receiptdate) GROUP BY o_orderpriority ORDER BY o_orderpriority 596 ---- 597 │ 598 └ Node 1 599 └ *colexec.sortOp 600 └ *colexec.hashAggregator 601 └ *colexec.hashJoiner 602 ├ *rowexec.indexJoiner 603 │ └ *colexec.colBatchScan 604 └ *colexec.selLTInt64Int64Op 605 └ *colexec.colBatchScan 606 607 # Query 5 608 query T 609 EXPLAIN (VEC) SELECT n_name, sum(l_extendedprice * (1 - l_discount)) AS revenue FROM customer, orders, lineitem, supplier, nation, region WHERE c_custkey = o_custkey AND l_orderkey = o_orderkey AND l_suppkey = s_suppkey AND c_nationkey = s_nationkey AND s_nationkey = n_nationkey AND n_regionkey = r_regionkey AND r_name = 'ASIA' AND o_orderDATE >= DATE '1994-01-01' AND o_orderDATE < DATE '1994-01-01' + INTERVAL '1' YEAR GROUP BY n_name ORDER BY revenue DESC 610 ---- 611 │ 612 └ Node 1 613 └ *colexec.sortOp 614 └ *colexec.hashAggregator 615 └ *colexec.projMultFloat64Float64Op 616 └ *colexec.projMinusFloat64ConstFloat64Op 617 └ *colexec.hashJoiner 618 ├ *colexec.hashJoiner 619 │ ├ *colexec.hashJoiner 620 │ │ ├ *colexec.colBatchScan 621 │ │ └ *rowexec.joinReader 622 │ │ └ *colexec.hashJoiner 623 │ │ ├ *colexec.colBatchScan 624 │ │ └ *colexec.selEQBytesBytesConstOp 625 │ │ └ *colexec.colBatchScan 626 │ └ *rowexec.indexJoiner 627 │ └ *colexec.colBatchScan 628 └ *colexec.colBatchScan 629 630 # Query 6 631 query T 632 EXPLAIN (VEC) SELECT sum(l_extendedprice * l_discount) AS revenue FROM lineitem WHERE l_shipdate >= DATE '1994-01-01' AND l_shipdate < DATE '1994-01-01' + INTERVAL '1' YEAR AND l_discount BETWEEN 0.06 - 0.01 AND 0.06 + 0.01 AND l_quantity < 24 633 ---- 634 │ 635 └ Node 1 636 └ *colexec.orderedAggregator 637 └ *colexec.oneShotOp 638 └ *colexec.distinctChainOps 639 └ *rowexec.indexJoiner 640 └ *colexec.colBatchScan 641 642 # Query 7 643 query T 644 EXPLAIN (VEC) SELECT supp_nation, cust_nation, l_year, sum(volume) AS revenue FROM ( SELECT n1.n_name AS supp_nation, n2.n_name AS cust_nation, EXTRACT(year FROM l_shipdate) AS l_year, l_extendedprice * (1 - l_discount) AS volume FROM supplier, lineitem, orders, customer, nation n1, nation n2 WHERE s_suppkey = l_suppkey AND o_orderkey = l_orderkey AND c_custkey = o_custkey AND s_nationkey = n1.n_nationkey AND c_nationkey = n2.n_nationkey AND ( (n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') or (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')) AND l_shipdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31') AS shipping GROUP BY supp_nation, cust_nation, l_year ORDER BY supp_nation, cust_nation, l_year 645 ---- 646 │ 647 └ Node 1 648 └ *colexec.sortOp 649 └ *colexec.hashAggregator 650 └ *colexec.projMultFloat64Float64Op 651 └ *colexec.projMinusFloat64ConstFloat64Op 652 └ *colexec.defaultBuiltinFuncOperator 653 └ *colexec.constBytesOp 654 └ *colexec.hashJoiner 655 ├ *rowexec.joinReader 656 │ └ *rowexec.joinReader 657 │ └ *rowexec.joinReader 658 │ └ *colexec.caseOp 659 │ ├ *colexec.bufferOp 660 │ │ └ *colexec.hashJoiner 661 │ │ ├ *colexec.colBatchScan 662 │ │ └ *colexec.colBatchScan 663 │ ├ *colexec.constBoolOp 664 │ │ └ *colexec.andProjOp 665 │ │ ├ *colexec.bufferOp 666 │ │ ├ *colexec.projEQBytesBytesConstOp 667 │ │ └ *colexec.projEQBytesBytesConstOp 668 │ ├ *colexec.constBoolOp 669 │ │ └ *colexec.andProjOp 670 │ │ ├ *colexec.bufferOp 671 │ │ ├ *colexec.projEQBytesBytesConstOp 672 │ │ └ *colexec.projEQBytesBytesConstOp 673 │ └ *colexec.constBoolOp 674 │ └ *colexec.bufferOp 675 └ *colexec.colBatchScan 676 677 # Query 8 678 query T 679 EXPLAIN (VEC) SELECT o_year, sum(CASE WHEN nation = 'BRAZIL' THEN volume ELSE 0 END) / sum(volume) AS mkt_share FROM ( SELECT EXTRACT(year FROM o_orderdate) AS o_year, l_extendedprice * (1 - l_discount) AS volume, n2.n_name AS nation FROM part, supplier, lineitem, orders, customer, nation n1, nation n2, region WHERE p_partkey = l_partkey AND s_suppkey = l_suppkey AND l_orderkey = o_orderkey AND o_custkey = c_custkey AND c_nationkey = n1.n_nationkey AND n1.n_regionkey = r_regionkey AND r_name = 'AMERICA' AND s_nationkey = n2.n_nationkey AND o_orderdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31' AND p_type = 'ECONOMY ANODIZED STEEL') AS all_nations GROUP BY o_year ORDER BY o_year 680 ---- 681 │ 682 └ Node 1 683 └ *colexec.sortOp 684 └ *colexec.projDivFloat64Float64Op 685 └ *colexec.hashAggregator 686 └ *colexec.caseOp 687 ├ *colexec.bufferOp 688 │ └ *colexec.projMultFloat64Float64Op 689 │ └ *colexec.projMinusFloat64ConstFloat64Op 690 │ └ *colexec.defaultBuiltinFuncOperator 691 │ └ *colexec.constBytesOp 692 │ └ *colexec.hashJoiner 693 │ ├ *colexec.hashJoiner 694 │ │ ├ *colexec.hashJoiner 695 │ │ │ ├ *colexec.colBatchScan 696 │ │ │ └ *colexec.hashJoiner 697 │ │ │ ├ *colexec.hashJoiner 698 │ │ │ │ ├ *rowexec.joinReader 699 │ │ │ │ │ └ *colexec.mergeJoinInnerOp 700 │ │ │ │ │ ├ *colexec.selEQBytesBytesConstOp 701 │ │ │ │ │ │ └ *colexec.colBatchScan 702 │ │ │ │ │ └ *colexec.colBatchScan 703 │ │ │ │ └ *colexec.colBatchScan 704 │ │ │ └ *colexec.selLEInt64Int64ConstOp 705 │ │ │ └ *colexec.selGEInt64Int64ConstOp 706 │ │ │ └ *colexec.colBatchScan 707 │ │ └ *colexec.colBatchScan 708 │ └ *colexec.selEQBytesBytesConstOp 709 │ └ *colexec.colBatchScan 710 ├ *colexec.projEQBytesBytesConstOp 711 │ └ *colexec.bufferOp 712 └ *colexec.constFloat64Op 713 └ *colexec.bufferOp 714 715 # Query 9 716 query T 717 EXPLAIN (VEC) SELECT nation, o_year, sum(amount) AS sum_profit FROM ( SELECT n_name AS nation, EXTRACT(year FROM o_orderdate) AS o_year, l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity AS amount FROM part, supplier, lineitem, partsupp, orders, nation WHERE s_suppkey = l_suppkey AND ps_suppkey = l_suppkey AND ps_partkey = l_partkey AND p_partkey = l_partkey AND o_orderkey = l_orderkey AND s_nationkey = n_nationkey AND p_name LIKE '%green%') AS profit GROUP BY nation, o_year ORDER BY nation, o_year DESC 718 ---- 719 │ 720 └ Node 1 721 └ *colexec.sortOp 722 └ *colexec.hashAggregator 723 └ *rowexec.joinReader 724 └ *colexec.hashJoiner 725 ├ *colexec.hashJoiner 726 │ ├ *rowexec.joinReader 727 │ │ └ *colexec.hashJoiner 728 │ │ ├ *colexec.colBatchScan 729 │ │ └ *colexec.colBatchScan 730 │ └ *colexec.colBatchScan 731 └ *colexec.colBatchScan 732 733 # Query 10 734 query T 735 EXPLAIN (VEC) SELECT c_custkey, c_name, sum(l_extendedprice * (1 - l_discount)) AS revenue, c_acctbal, n_name, c_address, c_phone, c_comment FROM customer, orders, lineitem, nation WHERE c_custkey = o_custkey AND l_orderkey = o_orderkey AND o_orderDATE >= DATE '1993-10-01' AND o_orderDATE < DATE '1993-10-01' + INTERVAL '3' MONTH AND l_returnflag = 'R' AND c_nationkey = n_nationkey GROUP BY c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment ORDER BY revenue DESC LIMIT 20 736 ---- 737 │ 738 └ Node 1 739 └ *colexec.limitOp 740 └ *colexec.topKSorter 741 └ *colexec.hashAggregator 742 └ *rowexec.joinReader 743 └ *colexec.hashJoiner 744 ├ *colexec.hashJoiner 745 │ ├ *colexec.colBatchScan 746 │ └ *rowexec.indexJoiner 747 │ └ *colexec.colBatchScan 748 └ *colexec.colBatchScan 749 750 # Query 11 751 query T 752 EXPLAIN (VEC) SELECT ps_partkey, sum(ps_supplycost * ps_availqty::float) AS value FROM partsupp, supplier, nation WHERE ps_suppkey = s_suppkey AND s_nationkey = n_nationkey AND n_name = 'GERMANY' GROUP BY ps_partkey HAVING sum(ps_supplycost * ps_availqty::float) > ( SELECT sum(ps_supplycost * ps_availqty::float) * 0.0001 FROM partsupp, supplier, nation WHERE ps_suppkey = s_suppkey AND s_nationkey = n_nationkey AND n_name = 'GERMANY') ORDER BY value DESC 753 ---- 754 │ 755 └ Node 1 756 └ *colexec.sortOp 757 └ *rowexec.noopProcessor 758 └ *colexec.hashAggregator 759 └ *rowexec.joinReader 760 └ *rowexec.joinReader 761 └ *rowexec.joinReader 762 └ *colexec.selEQBytesBytesConstOp 763 └ *colexec.colBatchScan 764 765 # Query 12 766 query T 767 EXPLAIN (VEC) SELECT l_shipmode, sum(CASE WHEN o_orderpriority = '1-URGENT' or o_orderpriority = '2-HIGH' THEN 1 ELSE 0 END) AS high_line_count, sum(CASE WHEN o_orderpriority <> '1-URGENT' AND o_orderpriority <> '2-HIGH' THEN 1 ELSE 0 END) AS low_line_count FROM orders, lineitem WHERE o_orderkey = l_orderkey AND l_shipmode IN ('MAIL', 'SHIP') AND l_commitdate < l_receiptdate AND l_shipdate < l_commitdate AND l_receiptdate >= DATE '1994-01-01' AND l_receiptdate < DATE '1994-01-01' + INTERVAL '1' YEAR GROUP BY l_shipmode ORDER BY l_shipmode 768 ---- 769 │ 770 └ Node 1 771 └ *colexec.sortOp 772 └ *rowexec.hashAggregator 773 └ *rowexec.joinReader 774 └ *rowexec.indexJoiner 775 └ *colexec.colBatchScan 776 777 # Query 13 778 query T 779 EXPLAIN (VEC) SELECT c_count, count(*) AS custdist FROM ( SELECT c_custkey, count(o_orderkey) AS c_count FROM customer LEFT OUTER JOIN orders ON c_custkey = o_custkey AND o_comment NOT LIKE '%special%requests%' GROUP BY c_custkey) AS c_orders GROUP BY c_count ORDER BY custdist DESC, c_count DESC 780 ---- 781 │ 782 └ Node 1 783 └ *colexec.sortOp 784 └ *colexec.hashAggregator 785 └ *colexec.hashAggregator 786 └ *colexec.hashJoiner 787 ├ *colexec.selNotRegexpBytesBytesConstOp 788 │ └ *colexec.colBatchScan 789 └ *colexec.colBatchScan 790 791 # Query 14 792 query T 793 EXPLAIN (VEC) SELECT 100.00 * sum(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue FROM lineitem, part WHERE l_partkey = p_partkey AND l_shipdate >= DATE '1995-09-01' AND l_shipdate < DATE '1995-09-01' + INTERVAL '1' MONTH 794 ---- 795 │ 796 └ Node 1 797 └ *colexec.projDivFloat64Float64Op 798 └ *colexec.projMultFloat64Float64ConstOp 799 └ *colexec.orderedAggregator 800 └ *colexec.oneShotOp 801 └ *colexec.distinctChainOps 802 └ *colexec.projMultFloat64Float64Op 803 └ *colexec.projMinusFloat64ConstFloat64Op 804 └ *colexec.caseOp 805 ├ *colexec.bufferOp 806 │ └ *colexec.hashJoiner 807 │ ├ *colexec.colBatchScan 808 │ └ *rowexec.indexJoiner 809 │ └ *colexec.colBatchScan 810 ├ *colexec.projMultFloat64Float64Op 811 │ └ *colexec.projMinusFloat64ConstFloat64Op 812 │ └ *colexec.projPrefixBytesBytesConstOp 813 │ └ *colexec.bufferOp 814 └ *colexec.constFloat64Op 815 └ *colexec.bufferOp 816 817 # Query 15 818 statement ok 819 CREATE VIEW revenue0 (supplier_no, total_revenue) AS SELECT l_suppkey, sum(l_extendedprice * (1 - l_discount)) FROM lineitem WHERE l_shipdate >= DATE '1996-01-01' AND l_shipdate < DATE '1996-01-01' + INTERVAL '3' MONTH GROUP BY l_suppkey 820 821 query T 822 EXPLAIN (VEC) SELECT s_suppkey, s_name, s_address, s_phone, total_revenue FROM supplier, revenue0 WHERE s_suppkey = supplier_no AND total_revenue = ( SELECT max(total_revenue) FROM revenue0) ORDER BY s_suppkey 823 ---- 824 │ 825 └ Node 1 826 └ *colexec.mergeJoinInnerOp 827 ├ *colexec.colBatchScan 828 └ *colexec.sortOp 829 └ *rowexec.noopProcessor 830 └ *colexec.hashAggregator 831 └ *rowexec.indexJoiner 832 └ *colexec.colBatchScan 833 834 statement ok 835 DROP VIEW revenue0 836 837 # Query 16 838 query T 839 EXPLAIN (VEC) SELECT p_brand, p_type, p_size, count(distinct ps_suppkey) AS supplier_cnt FROM partsupp, part WHERE p_partkey = ps_partkey AND p_brand <> 'Brand#45' AND p_type NOT LIKE 'MEDIUM POLISHED%' AND p_size IN (49, 14, 23, 45, 19, 3, 36, 9) AND ps_suppkey NOT IN ( SELECT s_suppkey FROM supplier WHERE s_comment LIKE '%Customer%Complaints%') GROUP BY p_brand, p_type, p_size ORDER BY supplier_cnt DESC, p_brand, p_type, p_size 840 ---- 841 │ 842 └ Node 1 843 └ *colexec.sortOp 844 └ *rowexec.hashAggregator 845 └ *colexec.hashJoiner 846 ├ *colexec.mergeJoinLeftAntiOp 847 │ ├ *colexec.colBatchScan 848 │ └ *colexec.selRegexpBytesBytesConstOp 849 │ └ *colexec.colBatchScan 850 └ *colexec.selectInOpInt64 851 └ *colexec.selNotPrefixBytesBytesConstOp 852 └ *colexec.selNEBytesBytesConstOp 853 └ *colexec.colBatchScan 854 855 # Query 17 856 query T 857 EXPLAIN (VEC) SELECT sum(l_extendedprice) / 7.0 AS avg_yearly FROM lineitem, part WHERE p_partkey = l_partkey AND p_brand = 'Brand#23' AND p_container = 'MED BOX' AND l_quantity < ( SELECT 0.2 * avg(l_quantity) FROM lineitem WHERE l_partkey = p_partkey) 858 ---- 859 │ 860 └ Node 1 861 └ *colexec.projDivFloat64Float64ConstOp 862 └ *colexec.orderedAggregator 863 └ *colexec.oneShotOp 864 └ *colexec.distinctChainOps 865 └ *rowexec.joinReader 866 └ *rowexec.joinReader 867 └ *colexec.projMultFloat64Float64ConstOp 868 └ *colexec.orderedAggregator 869 └ *colexec.distinctChainOps 870 └ *rowexec.joinReader 871 └ *rowexec.joinReader 872 └ *colexec.selEQBytesBytesConstOp 873 └ *colexec.selEQBytesBytesConstOp 874 └ *colexec.colBatchScan 875 876 # Query 18 877 query T 878 EXPLAIN (VEC) SELECT c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice, sum(l_quantity) FROM customer, orders, lineitem WHERE o_orderkey IN ( SELECT l_orderkey FROM lineitem GROUP BY l_orderkey HAVING sum(l_quantity) > 300) AND c_custkey = o_custkey AND o_orderkey = l_orderkey GROUP BY c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice ORDER BY o_totalprice DESC, o_orderdate LIMIT 100 879 ---- 880 │ 881 └ Node 1 882 └ *colexec.limitOp 883 └ *colexec.topKSorter 884 └ *colexec.hashAggregator 885 └ *colexec.hashJoiner 886 ├ *colexec.colBatchScan 887 └ *colexec.hashJoiner 888 ├ *colexec.mergeJoinLeftSemiOp 889 │ ├ *colexec.colBatchScan 890 │ └ *colexec.selGTFloat64Float64ConstOp 891 │ └ *colexec.orderedAggregator 892 │ └ *colexec.distinctChainOps 893 │ └ *colexec.colBatchScan 894 └ *colexec.colBatchScan 895 896 # Query 19 897 query T 898 EXPLAIN (VEC) SELECT sum(l_extendedprice* (1 - l_discount)) AS revenue FROM lineitem, part WHERE ( p_partkey = l_partkey AND p_brand = 'Brand#12' AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') AND l_quantity >= 1 AND l_quantity <= 1 + 10 AND p_size BETWEEN 1 AND 5 AND l_shipmode IN ('AIR', 'AIR REG') AND l_shipinstruct = 'DELIVER IN PERSON') OR ( p_partkey = l_partkey AND p_brand = 'Brand#23' AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') AND l_quantity >= 10 AND l_quantity <= 10 + 10 AND p_size BETWEEN 1 AND 10 AND l_shipmode IN ('AIR', 'AIR REG') AND l_shipinstruct = 'DELIVER IN PERSON') OR ( p_partkey = l_partkey AND p_brand = 'Brand#34' AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') AND l_quantity >= 20 AND l_quantity <= 20 + 10 AND p_size BETWEEN 1 AND 15 AND l_shipmode IN ('AIR', 'AIR REG') AND l_shipinstruct = 'DELIVER IN PERSON') 899 ---- 900 │ 901 └ Node 1 902 └ *colexec.orderedAggregator 903 └ *colexec.oneShotOp 904 └ *colexec.distinctChainOps 905 └ *colexec.projMultFloat64Float64Op 906 └ *colexec.projMinusFloat64ConstFloat64Op 907 └ *colexec.caseOp 908 ├ *colexec.bufferOp 909 │ └ *colexec.hashJoiner 910 │ ├ *colexec.selEQBytesBytesConstOp 911 │ │ └ *colexec.selectInOpBytes 912 │ │ └ *colexec.colBatchScan 913 │ └ *colexec.selGEInt64Int64ConstOp 914 │ └ *colexec.colBatchScan 915 ├ *colexec.constBoolOp 916 │ └ *colexec.orProjOp 917 │ ├ *colexec.bufferOp 918 │ ├ *colexec.andProjOp 919 │ │ ├ *colexec.andProjOp 920 │ │ │ ├ *colexec.andProjOp 921 │ │ │ │ ├ *colexec.andProjOp 922 │ │ │ │ │ ├ *colexec.projEQBytesBytesConstOp 923 │ │ │ │ │ └ *colexec.projectInOpBytes 924 │ │ │ │ └ *colexec.projGEFloat64Float64ConstOp 925 │ │ │ └ *colexec.projLEFloat64Float64ConstOp 926 │ │ └ *colexec.projLEInt64Int64ConstOp 927 │ └ *colexec.andProjOp 928 │ ├ *colexec.andProjOp 929 │ │ ├ *colexec.andProjOp 930 │ │ │ ├ *colexec.andProjOp 931 │ │ │ │ ├ *colexec.projEQBytesBytesConstOp 932 │ │ │ │ └ *colexec.projectInOpBytes 933 │ │ │ └ *colexec.projGEFloat64Float64ConstOp 934 │ │ └ *colexec.projLEFloat64Float64ConstOp 935 │ └ *colexec.projLEInt64Int64ConstOp 936 ├ *colexec.constBoolOp 937 │ └ *colexec.andProjOp 938 │ ├ *colexec.bufferOp 939 │ ├ *colexec.andProjOp 940 │ │ ├ *colexec.andProjOp 941 │ │ │ ├ *colexec.andProjOp 942 │ │ │ │ ├ *colexec.projEQBytesBytesConstOp 943 │ │ │ │ └ *colexec.projectInOpBytes 944 │ │ │ └ *colexec.projGEFloat64Float64ConstOp 945 │ │ └ *colexec.projLEFloat64Float64ConstOp 946 │ └ *colexec.projLEInt64Int64ConstOp 947 └ *colexec.constBoolOp 948 └ *colexec.bufferOp 949 950 # Query 20 951 query T 952 EXPLAIN (VEC) SELECT s_name, s_address FROM supplier, nation WHERE s_suppkey IN ( SELECT ps_suppkey FROM partsupp WHERE ps_partkey IN ( SELECT p_partkey FROM part WHERE p_name LIKE 'forest%') AND ps_availqty > ( SELECT 0.5 * sum(l_quantity) FROM lineitem WHERE l_partkey = ps_partkey AND l_suppkey = ps_suppkey AND l_shipdate >= DATE '1994-01-01' AND l_shipdate < DATE '1994-01-01' + INTERVAL '1' YEAR)) AND s_nationkey = n_nationkey AND n_name = 'CANADA' ORDER BY s_name 953 ---- 954 │ 955 └ Node 1 956 └ *colexec.sortOp 957 └ *colexec.hashJoiner 958 ├ *colexec.hashJoiner 959 │ ├ *colexec.colBatchScan 960 │ └ *colexec.hashJoiner 961 │ ├ *colexec.selGTInt64Float64Op 962 │ │ └ *colexec.projMultFloat64Float64ConstOp 963 │ │ └ *colexec.hashAggregator 964 │ │ └ *colexec.hashJoiner 965 │ │ ├ *rowexec.indexJoiner 966 │ │ │ └ *colexec.colBatchScan 967 │ │ └ *colexec.colBatchScan 968 │ └ *colexec.selPrefixBytesBytesConstOp 969 │ └ *colexec.colBatchScan 970 └ *colexec.selEQBytesBytesConstOp 971 └ *colexec.colBatchScan 972 973 # Query 21 974 query T 975 EXPLAIN (VEC) SELECT s_name, count(*) AS numwait FROM supplier, lineitem l1, orders, nation WHERE s_suppkey = l1.l_suppkey AND o_orderkey = l1.l_orderkey AND o_orderstatus = 'F' AND l1.l_receiptDATE > l1.l_commitdate AND EXISTS ( SELECT * FROM lineitem l2 WHERE l2.l_orderkey = l1.l_orderkey AND l2.l_suppkey <> l1.l_suppkey) AND NOT EXISTS ( SELECT * FROM lineitem l3 WHERE l3.l_orderkey = l1.l_orderkey AND l3.l_suppkey <> l1.l_suppkey AND l3.l_receiptDATE > l3.l_commitdate) AND s_nationkey = n_nationkey AND n_name = 'SAUDI ARABIA' GROUP BY s_name ORDER BY numwait DESC, s_name LIMIT 100 976 ---- 977 │ 978 └ Node 1 979 └ *colexec.limitOp 980 └ *colexec.topKSorter 981 └ *colexec.hashAggregator 982 └ *rowexec.joinReader 983 └ *colexec.hashJoiner 984 ├ *rowexec.hashJoiner 985 │ ├ *rowexec.mergeJoiner 986 │ │ ├ *colexec.selGTInt64Int64Op 987 │ │ │ └ *colexec.colBatchScan 988 │ │ └ *colexec.selGTInt64Int64Op 989 │ │ └ *colexec.colBatchScan 990 │ └ *colexec.colBatchScan 991 └ *rowexec.joinReader 992 └ *rowexec.joinReader 993 └ *colexec.selEQBytesBytesConstOp 994 └ *colexec.colBatchScan 995 996 # Query 22 997 query T 998 EXPLAIN (VEC) SELECT cntrycode, count(*) AS numcust, sum(c_acctbal) AS totacctbal FROM ( SELECT substring(c_phone FROM 1 FOR 2) AS cntrycode, c_acctbal FROM customer WHERE substring(c_phone FROM 1 FOR 2) in ('13', '31', '23', '29', '30', '18', '17') AND c_acctbal > ( SELECT avg(c_acctbal) FROM customer WHERE c_acctbal > 0.00 AND substring(c_phone FROM 1 FOR 2) in ('13', '31', '23', '29', '30', '18', '17')) AND NOT EXISTS ( SELECT * FROM orders WHERE o_custkey = c_custkey)) AS custsale GROUP BY cntrycode ORDER BY cntrycode 999 ---- 1000 │ 1001 └ Node 1 1002 └ *colexec.sortOp 1003 └ *colexec.hashAggregator 1004 └ *rowexec.joinReader 1005 └ *rowexec.tableReader