diff --git a/queries/q17.sql b/queries/q17.sql new file mode 100644 index 0000000000000000000000000000000000000000..c7943f59fc0247d334ac1ab892c4388f52f20845 --- /dev/null +++ b/queries/q17.sql @@ -0,0 +1,17 @@ +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 + ); diff --git a/queries/q20.sql b/queries/q20.sql new file mode 100644 index 0000000000000000000000000000000000000000..f81ae27735bc2004006c8a21dc553188ae0ff855 --- /dev/null +++ b/queries/q20.sql @@ -0,0 +1,37 @@ +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; diff --git a/scripts/mariadb.analyze.sql b/scripts/mariadb.analyze.sql new file mode 100644 index 0000000000000000000000000000000000000000..9009be719f61507e1f81c03a2f09d21fe6f8ece4 --- /dev/null +++ b/scripts/mariadb.analyze.sql @@ -0,0 +1,8 @@ +analyze table customer; +analyze table lineitem; +analyze table nation; +analyze table orders; +analyze table part; +analyze table partsupp; +analyze table region; +analyze table supplier; diff --git a/scripts/mariadb.constraints.sql b/scripts/mariadb.constraints.sql new file mode 100644 index 0000000000000000000000000000000000000000..1abb54faa4654f9c544df26e6180ab401fdea1b8 --- /dev/null +++ b/scripts/mariadb.constraints.sql @@ -0,0 +1,44 @@ +-- TPCH integry constraints for postgres 9.x +-- hannes@cwi.nl, 2014-04-04 + +-- For table REGION +ALTER TABLE REGION ADD PRIMARY KEY (R_REGIONKEY); + +-- For table NATION +ALTER TABLE NATION ADD PRIMARY KEY (N_NATIONKEY); +ALTER TABLE NATION ADD CONSTRAINT NATION_FK1 FOREIGN KEY (N_REGIONKEY) REFERENCES REGION; + +-- For table PART +ALTER TABLE PART ADD PRIMARY KEY (P_PARTKEY); + +-- For table SUPPLIER +ALTER TABLE SUPPLIER ADD PRIMARY KEY (S_SUPPKEY); +ALTER TABLE SUPPLIER ADD CONSTRAINT SUPPLIER_FK1 FOREIGN KEY (S_NATIONKEY) REFERENCES NATION; + +-- For table PARTSUPP +ALTER TABLE PARTSUPP ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY); + +-- For table CUSTOMER +ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_CUSTKEY); +ALTER TABLE CUSTOMER ADD CONSTRAINT CUSTOMER_FK1 FOREIGN KEY (C_NATIONKEY) REFERENCES NATION; + +-- For table LINEITEM +ALTER TABLE LINEITEM ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER); + +-- For table ORDERS +ALTER TABLE ORDERS ADD PRIMARY KEY (O_ORDERKEY); + +-- For table PARTSUPP +ALTER TABLE PARTSUPP ADD CONSTRAINT PARTSUPP_FK1 FOREIGN KEY (PS_SUPPKEY) REFERENCES SUPPLIER; +ALTER TABLE PARTSUPP ADD CONSTRAINT PARTSUPP_FK2 FOREIGN KEY (PS_PARTKEY) REFERENCES PART; + +-- For table ORDERS +ALTER TABLE ORDERS ADD CONSTRAINT ORDERS_FK1 FOREIGN KEY (O_CUSTKEY) REFERENCES CUSTOMER; + +-- For table LINEITEM +ALTER TABLE LINEITEM ADD CONSTRAINT LINEITEM_FK1 FOREIGN KEY (L_ORDERKEY) REFERENCES ORDERS; +ALTER TABLE LINEITEM ADD CONSTRAINT LINEITEM_FK2 FOREIGN KEY (L_PARTKEY,L_SUPPKEY) REFERENCES PARTSUPP; + + + + diff --git a/scripts/mariadb.load.sql b/scripts/mariadb.load.sql new file mode 100644 index 0000000000000000000000000000000000000000..a2105d608856cbfacbef7b567d2a5acf7b80894f --- /dev/null +++ b/scripts/mariadb.load.sql @@ -0,0 +1,8 @@ +COPY customer FROM 'DIR/customer.tbl' WITH DELIMITER AS '|'; +COPY lineitem FROM 'DIR/lineitem.tbl' WITH DELIMITER AS '|'; +COPY nation FROM 'DIR/nation.tbl' WITH DELIMITER AS '|'; +COPY orders FROM 'DIR/orders.tbl' WITH DELIMITER AS '|'; +COPY part FROM 'DIR/part.tbl' WITH DELIMITER AS '|'; +COPY partsupp FROM 'DIR/partsupp.tbl' WITH DELIMITER AS '|'; +COPY region FROM 'DIR/region.tbl' WITH DELIMITER AS '|'; +COPY supplier FROM 'DIR/supplier.tbl' WITH DELIMITER AS '|'; diff --git a/scripts/mariadb.schema.sql b/scripts/mariadb.schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..aed682ae7ea79aa99c7bea4c0e1b730a4234ef21 --- /dev/null +++ b/scripts/mariadb.schema.sql @@ -0,0 +1,72 @@ +-- TPCH schema postgres 9.x +-- hannes@cwi.nl, 2014-04-04 + +CREATE TABLE NATION ( N_NATIONKEY INTEGER NOT NULL, + N_NAME CHAR(25) NOT NULL, + N_REGIONKEY INTEGER NOT NULL, + N_COMMENT VARCHAR(152)); + +CREATE TABLE REGION ( R_REGIONKEY INTEGER NOT NULL, + R_NAME CHAR(25) NOT NULL, + R_COMMENT VARCHAR(152)); + +CREATE TABLE PART ( P_PARTKEY INTEGER NOT NULL, + P_NAME VARCHAR(55) NOT NULL, + P_MFGR CHAR(25) NOT NULL, + P_BRAND CHAR(10) NOT NULL, + P_TYPE VARCHAR(25) NOT NULL, + P_SIZE INTEGER NOT NULL, + P_CONTAINER CHAR(10) NOT NULL, + P_RETAILPRICE DECIMAL(15,2) NOT NULL, + P_COMMENT VARCHAR(23) NOT NULL ); + +CREATE TABLE SUPPLIER ( S_SUPPKEY INTEGER NOT NULL, + S_NAME CHAR(25) NOT NULL, + S_ADDRESS VARCHAR(40) NOT NULL, + S_NATIONKEY INTEGER NOT NULL, + S_PHONE CHAR(15) NOT NULL, + S_ACCTBAL DECIMAL(15,2) NOT NULL, + S_COMMENT VARCHAR(101) NOT NULL); + +CREATE TABLE PARTSUPP ( PS_PARTKEY INTEGER NOT NULL, + PS_SUPPKEY INTEGER NOT NULL, + PS_AVAILQTY INTEGER NOT NULL, + PS_SUPPLYCOST DECIMAL(15,2) NOT NULL, + PS_COMMENT VARCHAR(199) NOT NULL ); + +CREATE TABLE CUSTOMER ( C_CUSTKEY INTEGER NOT NULL, + C_NAME VARCHAR(25) NOT NULL, + C_ADDRESS VARCHAR(40) NOT NULL, + C_NATIONKEY INTEGER NOT NULL, + C_PHONE CHAR(15) NOT NULL, + C_ACCTBAL DECIMAL(15,2) NOT NULL, + C_MKTSEGMENT CHAR(10) NOT NULL, + C_COMMENT VARCHAR(117) NOT NULL); + +CREATE TABLE ORDERS ( O_ORDERKEY INTEGER NOT NULL, + O_CUSTKEY INTEGER NOT NULL, + O_ORDERSTATUS CHAR(1) NOT NULL, + O_TOTALPRICE DECIMAL(15,2) NOT NULL, + O_ORDERDATE DATE NOT NULL, + O_ORDERPRIORITY CHAR(15) NOT NULL, + O_CLERK CHAR(15) NOT NULL, + O_SHIPPRIORITY INTEGER NOT NULL, + O_COMMENT VARCHAR(79) NOT NULL); + +CREATE TABLE LINEITEM ( L_ORDERKEY INTEGER NOT NULL, + L_PARTKEY INTEGER NOT NULL, + L_SUPPKEY INTEGER NOT NULL, + L_LINENUMBER INTEGER NOT NULL, + L_QUANTITY DECIMAL(15,2) NOT NULL, + L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL, + L_DISCOUNT DECIMAL(15,2) NOT NULL, + L_TAX DECIMAL(15,2) NOT NULL, + L_RETURNFLAG CHAR(1) NOT NULL, + L_LINESTATUS CHAR(1) NOT NULL, + L_SHIPDATE DATE NOT NULL, + L_COMMITDATE DATE NOT NULL, + L_RECEIPTDATE DATE NOT NULL, + L_SHIPINSTRUCT CHAR(25) NOT NULL, + L_SHIPMODE CHAR(10) NOT NULL, + L_COMMENT VARCHAR(44) NOT NULL); +