github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/cmd/roachtest/tpchvec_smithcmp.toml (about)

     1  smither = "vec-off"
     2  seed = -1
     3  timeoutmins = 30
     4  stmttimeoutsecs = 120
     5  
     6  sql = [
     7  """
     8  SELECT
     9  	l_returnflag,
    10  	l_linestatus,
    11  	sum(l_quantity) AS sum_qty,
    12  	sum(l_extendedprice) AS sum_base_price,
    13  	sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
    14  	sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
    15  	avg(l_quantity) AS avg_qty,
    16  	avg(l_extendedprice) AS avg_price,
    17  	avg(l_discount) AS avg_disc,
    18  	count(*) AS count_order
    19  FROM
    20  	lineitem
    21  WHERE
    22  	l_shipdate <= $1::DATE - $2::INTERVAL
    23  GROUP BY
    24  	l_returnflag,
    25  	l_linestatus
    26  ORDER BY
    27  	l_returnflag,
    28  	l_linestatus;
    29  """,
    30  """
    31  SELECT
    32  	s_acctbal,
    33  	s_name,
    34  	n_name,
    35  	p_partkey,
    36  	p_mfgr,
    37  	s_address,
    38  	s_phone,
    39  	s_comment
    40  FROM
    41  	part,
    42  	supplier,
    43  	partsupp,
    44  	nation,
    45  	region
    46  WHERE
    47  	p_partkey = ps_partkey
    48  	AND s_suppkey = ps_suppkey
    49  	AND p_size = $1
    50  	AND p_type LIKE '%BRASS'
    51  	AND s_nationkey = n_nationkey
    52  	AND n_regionkey = r_regionkey
    53  	AND r_name = 'EUROPE'
    54  	AND ps_supplycost = (
    55  		SELECT
    56  			min(ps_supplycost)
    57  		FROM
    58  			partsupp,
    59  			supplier,
    60  			nation,
    61  			region
    62  		WHERE
    63  			p_partkey = ps_partkey
    64  			AND s_suppkey = ps_suppkey
    65  			AND s_nationkey = n_nationkey
    66  			AND n_regionkey = r_regionkey
    67  			AND r_name = 'EUROPE'
    68  	)
    69  ORDER BY
    70  	s_acctbal DESC,
    71  	n_name,
    72  	s_name,
    73  	p_partkey
    74  LIMIT 100;
    75  """,
    76  """
    77  SELECT
    78  	l_orderkey,
    79  	sum(l_extendedprice * (1 - l_discount)) AS revenue,
    80  	o_orderdate,
    81  	o_shippriority
    82  FROM
    83  	customer,
    84  	orders,
    85  	lineitem
    86  WHERE
    87  	c_mktsegment = 'BUILDING'
    88  	AND c_custkey = o_custkey
    89  	AND l_orderkey = o_orderkey
    90  	AND o_orderDATE < $1::DATE
    91  	AND l_shipdate > $2::DATE
    92  GROUP BY
    93  	l_orderkey,
    94  	o_orderdate,
    95  	o_shippriority
    96  ORDER BY
    97  	revenue DESC,
    98  	o_orderdate
    99  LIMIT 10;
   100  """,
   101  """
   102  SELECT
   103  	o_orderpriority,
   104  	count(*) AS order_count
   105  FROM
   106  	orders
   107  WHERE
   108  	o_orderdate >= $1::DATE
   109  	AND o_orderdate < $2::DATE + $3::INTERVAL
   110  	AND EXISTS (
   111  		SELECT
   112  			*
   113  		FROM
   114  			lineitem
   115  		WHERE
   116  			l_orderkey = o_orderkey
   117  			AND l_commitDATE < l_receiptdate
   118  	)
   119  GROUP BY
   120  	o_orderpriority
   121  ORDER BY
   122  	o_orderpriority;
   123  """,
   124  """
   125  SELECT
   126  	n_name,
   127  	sum(l_extendedprice * (1 - l_discount)) AS revenue
   128  FROM
   129  	customer,
   130  	orders,
   131  	lineitem,
   132  	supplier,
   133  	nation,
   134  	region
   135  WHERE
   136  	c_custkey = o_custkey
   137  	AND l_orderkey = o_orderkey
   138  	AND l_suppkey = s_suppkey
   139  	AND c_nationkey = s_nationkey
   140  	AND s_nationkey = n_nationkey
   141  	AND n_regionkey = r_regionkey
   142  	AND r_name = 'ASIA'
   143  	AND o_orderDATE >= $1::DATE
   144  	AND o_orderDATE < $2::DATE + $3::INTERVAL
   145  GROUP BY
   146  	n_name
   147  ORDER BY
   148  	revenue DESC;
   149  """,
   150  """
   151  SELECT
   152  	sum(l_extendedprice * l_discount) AS revenue
   153  FROM
   154  	lineitem
   155  WHERE
   156  	l_shipdate >= $1::DATE
   157  	AND l_shipdate < $2::DATE + $3::INTERVAL
   158  	AND l_discount BETWEEN $4::FLOAT8 - $5::FLOAT8 AND $6::FLOAT8 + $7::FLOAT8
   159  	AND l_quantity < $8::FLOAT8;
   160  """,
   161  """
   162  SELECT
   163  	supp_nation,
   164  	cust_nation,
   165  	l_year,
   166  	sum(volume) AS revenue
   167  FROM
   168  	(
   169  		SELECT
   170  			n1.n_name AS supp_nation,
   171  			n2.n_name AS cust_nation,
   172  			EXTRACT(year FROM l_shipdate) AS l_year,
   173  			l_extendedprice * (1 - l_discount) AS volume
   174  		FROM
   175  			supplier,
   176  			lineitem,
   177  			orders,
   178  			customer,
   179  			nation n1,
   180  			nation n2
   181  		WHERE
   182  			s_suppkey = l_suppkey
   183  			AND o_orderkey = l_orderkey
   184  			AND c_custkey = o_custkey
   185  			AND s_nationkey = n1.n_nationkey
   186  			AND c_nationkey = n2.n_nationkey
   187  			AND (
   188  				(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY')
   189  				or (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')
   190  			)
   191  			AND l_shipdate BETWEEN $1::DATE AND $2::DATE
   192  	) AS shipping
   193  GROUP BY
   194  	supp_nation,
   195  	cust_nation,
   196  	l_year
   197  ORDER BY
   198  	supp_nation,
   199  	cust_nation,
   200  	l_year;
   201  """,
   202  """
   203  SELECT
   204  	o_year,
   205  	sum(CASE
   206  		WHEN nation = 'BRAZIL' THEN volume
   207  		ELSE 0
   208  	END) / sum(volume) AS mkt_share
   209  FROM
   210  	(
   211  		SELECT
   212  			EXTRACT(year FROM o_orderdate) AS o_year,
   213  			l_extendedprice * (1 - l_discount) AS volume,
   214  			n2.n_name AS nation
   215  		FROM
   216  			part,
   217  			supplier,
   218  			lineitem,
   219  			orders,
   220  			customer,
   221  			nation n1,
   222  			nation n2,
   223  			region
   224  		WHERE
   225  			p_partkey = l_partkey
   226  			AND s_suppkey = l_suppkey
   227  			AND l_orderkey = o_orderkey
   228  			AND o_custkey = c_custkey
   229  			AND c_nationkey = n1.n_nationkey
   230  			AND n1.n_regionkey = r_regionkey
   231  			AND r_name = 'AMERICA'
   232  			AND s_nationkey = n2.n_nationkey
   233  			AND o_orderdate BETWEEN $1::DATE AND $2::DATE
   234  			AND p_type = 'ECONOMY ANODIZED STEEL'
   235  	) AS all_nations
   236  GROUP BY
   237  	o_year
   238  ORDER BY
   239  	o_year;
   240  """,
   241  """
   242  SELECT
   243  	c_custkey,
   244  	c_name,
   245  	sum(l_extendedprice * (1 - l_discount)) AS revenue,
   246  	c_acctbal,
   247  	n_name,
   248  	c_address,
   249  	c_phone,
   250  	c_comment
   251  FROM
   252  	customer,
   253  	orders,
   254  	lineitem,
   255  	nation
   256  WHERE
   257  	c_custkey = o_custkey
   258  	AND l_orderkey = o_orderkey
   259  	AND o_orderDATE >= $1::DATE
   260  	AND o_orderDATE < $2::DATE + $3::INTERVAL
   261  	AND l_returnflag = 'R'
   262  	AND c_nationkey = n_nationkey
   263  GROUP BY
   264  	c_custkey,
   265  	c_name,
   266  	c_acctbal,
   267  	c_phone,
   268  	n_name,
   269  	c_address,
   270  	c_comment
   271  ORDER BY
   272  	revenue DESC
   273  LIMIT 20;
   274  """,
   275  """
   276  SELECT
   277  	ps_partkey,
   278  	sum(ps_supplycost * ps_availqty::float) AS value
   279  FROM
   280  	partsupp,
   281  	supplier,
   282  	nation
   283  WHERE
   284  	ps_suppkey = s_suppkey
   285  	AND s_nationkey = n_nationkey
   286  	AND n_name = 'GERMANY'
   287  GROUP BY
   288  	ps_partkey HAVING
   289  		sum(ps_supplycost * ps_availqty::float) > (
   290  			SELECT
   291  				sum(ps_supplycost * ps_availqty::float) * $1::FLOAT8
   292  			FROM
   293  				partsupp,
   294  				supplier,
   295  				nation
   296  			WHERE
   297  				ps_suppkey = s_suppkey
   298  				AND s_nationkey = n_nationkey
   299  				AND n_name = 'GERMANY'
   300  		)
   301  ORDER BY
   302  	value DESC, ps_partkey;
   303  """,
   304  """
   305  SELECT
   306  	l_shipmode,
   307  	sum(CASE
   308  		WHEN o_orderpriority = '1-URGENT'
   309  			or o_orderpriority = '2-HIGH'
   310  			THEN 1
   311  		ELSE 0
   312  	END) AS high_line_count,
   313  	sum(CASE
   314  		WHEN o_orderpriority <> '1-URGENT'
   315  			AND o_orderpriority <> '2-HIGH'
   316  			THEN 1
   317  		ELSE 0
   318  	END) AS low_line_count
   319  FROM
   320  	orders,
   321  	lineitem
   322  WHERE
   323  	o_orderkey = l_orderkey
   324  	AND l_shipmode IN ('MAIL', 'SHIP')
   325  	AND l_commitdate < l_receiptdate
   326  	AND l_shipdate < l_commitdate
   327  	AND l_receiptdate >= $1::DATE
   328  	AND l_receiptdate < $2::DATE + $3::INTERVAL
   329  GROUP BY
   330  	l_shipmode
   331  ORDER BY
   332  	l_shipmode;
   333  """,
   334  """
   335  SELECT
   336  	100.00 * sum(CASE
   337  		WHEN p_type LIKE 'PROMO%'
   338  			THEN l_extendedprice * (1 - l_discount)
   339  		ELSE 0
   340  	END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue
   341  FROM
   342  	lineitem,
   343  	part
   344  WHERE
   345  	l_partkey = p_partkey
   346  	AND l_shipdate >= $1::DATE
   347  	AND l_shipdate < $2::DATE + $3::INTERVAL;
   348  """,
   349  """
   350  SELECT
   351  	c_name,
   352  	c_custkey,
   353  	o_orderkey,
   354  	o_orderdate,
   355  	o_totalprice,
   356  	sum(l_quantity)
   357  FROM
   358  	customer,
   359  	orders,
   360  	lineitem
   361  WHERE
   362  	o_orderkey IN (
   363  		SELECT
   364  			l_orderkey
   365  		FROM
   366  			lineitem
   367  		GROUP BY
   368  			l_orderkey HAVING
   369  				sum(l_quantity) > $1::INT8
   370  	)
   371  	AND c_custkey = o_custkey
   372  	AND o_orderkey = l_orderkey
   373  GROUP BY
   374  	c_name,
   375  	c_custkey,
   376  	o_orderkey,
   377  	o_orderdate,
   378  	o_totalprice
   379  ORDER BY
   380  	o_totalprice DESC,
   381  	o_orderdate
   382  LIMIT 100;
   383  """,
   384  """
   385  SELECT
   386  	sum(l_extendedprice* (1 - l_discount)) AS revenue
   387  FROM
   388  	lineitem,
   389  	part
   390  WHERE
   391  	(
   392  		p_partkey = l_partkey
   393  		AND p_brand = 'Brand#12'
   394  		AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
   395  		AND l_quantity >= $1::INT8 AND l_quantity <= $2::INT8 + $3::INT8
   396  		AND p_size BETWEEN $4::INT8 AND $5::INT8
   397  		AND l_shipmode IN ('AIR', 'AIR REG')
   398  		AND l_shipinstruct = 'DELIVER IN PERSON'
   399  	)
   400  	OR
   401  	(
   402  		p_partkey = l_partkey
   403  		AND p_brand = 'Brand#23'
   404  		AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
   405  		AND l_quantity >= $6::INT8 AND l_quantity <= $7::INT8 + $8::INT8
   406  		AND p_size BETWEEN $9::INT8 AND $10::INT8
   407  		AND l_shipmode IN ('AIR', 'AIR REG')
   408  		AND l_shipinstruct = 'DELIVER IN PERSON'
   409  	)
   410  	OR
   411  	(
   412  		p_partkey = l_partkey
   413  		AND p_brand = 'Brand#34'
   414  		AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
   415  		AND l_quantity >= $11::INT8 AND l_quantity <= $12::INT8 + $13::INT8
   416  		AND p_size BETWEEN $14::INT8 AND $15::INT8
   417  		AND l_shipmode IN ('AIR', 'AIR REG')
   418  		AND l_shipinstruct = 'DELIVER IN PERSON'
   419  	);
   420  """,
   421  """
   422  SELECT
   423  	s_name,
   424  	s_address
   425  FROM
   426  	supplier,
   427  	nation
   428  WHERE
   429  	s_suppkey IN (
   430  		SELECT
   431  			ps_suppkey
   432  		FROM
   433  			partsupp
   434  		WHERE
   435  			ps_partkey IN (
   436  				SELECT
   437  					p_partkey
   438  				FROM
   439  					part
   440  				WHERE
   441  					p_name LIKE 'forest%'
   442  			)
   443  			AND ps_availqty > (
   444  				SELECT
   445  					$1::FLOAT8 * sum(l_quantity)
   446  				FROM
   447  					lineitem
   448  				WHERE
   449  					l_partkey = ps_partkey
   450  					AND l_suppkey = ps_suppkey
   451  					AND l_shipdate >= $2::DATE
   452  					AND l_shipdate < $3::DATE + $4::INTERVAL
   453  			)
   454  	)
   455  	AND s_nationkey = n_nationkey
   456  	AND n_name = 'CANADA'
   457  ORDER BY
   458  	s_name;
   459  """,
   460  """
   461  SELECT
   462  	cntrycode,
   463  	count(*) AS numcust,
   464  	sum(c_acctbal) AS totacctbal
   465  FROM
   466  	(
   467  		SELECT
   468  			substring(c_phone FROM $1::INT4 FOR $2::INT4) AS cntrycode,
   469  			c_acctbal
   470  		FROM
   471  			customer
   472  		WHERE
   473  			substring(c_phone FROM $3::INT4 FOR $4::INT4) in
   474          ('13', '31', '23', '29', '30', '18', '17')
   475  			AND c_acctbal > (
   476  				SELECT
   477  					avg(c_acctbal)
   478  				FROM
   479  					customer
   480  				WHERE
   481  					c_acctbal > $5::FLOAT8
   482  					AND substring(c_phone FROM $6::INT4 FOR $7::INT4) in
   483              ('13', '31', '23', '29', '30', '18', '17')
   484  			)
   485  			AND NOT EXISTS (
   486  				SELECT
   487  					*
   488  				FROM
   489  					orders
   490  				WHERE
   491  					o_custkey = c_custkey
   492  			)
   493  	) AS custsale
   494  GROUP BY
   495  	cntrycode
   496  ORDER BY
   497  	cntrycode;
   498  """,
   499  ]
   500  
   501  # Missing: 9, 13, 15, 16, 17, 21
   502  # These are missing either because 1) they use a CREATE VIEW, or 2)
   503  # they don't have any parameters that make sense to randomize, and we'd
   504  # thus be executing the same query each time. Queries that don't change
   505  # should be tested in other places; smithcmp is for random testing.
   506  
   507  [databases.vec-off]
   508  addr = "postgresql://root@localhost:26257/tpch?sslmode=disable"
   509  allowmutations = true
   510  initsql = """
   511  set vectorize=off;
   512  """
   513  
   514  [databases.vec-on]
   515  addr = "postgresql://root@localhost:26257/tpch?sslmode=disable"
   516  allowmutations = true
   517  initsql = """
   518  set vectorize=on;
   519  """