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