Skip to content

Instantly share code, notes, and snippets.

@itiut
Last active August 29, 2015 14:01
Show Gist options
  • Save itiut/434dab9ec32386ac1a5b to your computer and use it in GitHub Desktop.
Save itiut/434dab9ec32386ac1a5b to your computer and use it in GitHub Desktop.
MySQLでTPC-Hを測定するときのDBGENのパッチ (DBGEN 2.17.0)
--- dss.ddl.orig 2014-05-14 19:02:45.467176916 +0900
+++ dss.ddl 2014-05-14 19:09:33.887164975 +0900
@@ -1,14 +1,14 @@
-- Sccsid: @(#)dss.ddl 2.1.8.1
-CREATE TABLE NATION ( N_NATIONKEY INTEGER NOT NULL,
+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,
+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,
+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,
@@ -18,7 +18,7 @@
P_RETAILPRICE DECIMAL(15,2) NOT NULL,
P_COMMENT VARCHAR(23) NOT NULL );
-CREATE TABLE SUPPLIER ( S_SUPPKEY INTEGER 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,
@@ -26,13 +26,13 @@
S_ACCTBAL DECIMAL(15,2) NOT NULL,
S_COMMENT VARCHAR(101) NOT NULL);
-CREATE TABLE PARTSUPP ( PS_PARTKEY INTEGER 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,
+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,
@@ -41,7 +41,7 @@
C_MKTSEGMENT CHAR(10) NOT NULL,
C_COMMENT VARCHAR(117) NOT NULL);
-CREATE TABLE ORDERS ( O_ORDERKEY INTEGER 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,
@@ -51,7 +51,7 @@
O_SHIPPRIORITY INTEGER NOT NULL,
O_COMMENT VARCHAR(79) NOT NULL);
-CREATE TABLE LINEITEM ( L_ORDERKEY INTEGER 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,
--- dss.ri.orig 2014-05-14 19:19:12.227148065 +0900
+++ dss.ri 2014-05-14 20:27:44.547027828 +0900
@@ -1,99 +1,99 @@
-- Sccsid: @(#)dss.ri 2.1.8.1
--- TPCD Benchmark Version 8.0
+-- tpch Benchmark Version 8.0
-CONNECT TO TPCD;
+-- CONNECT TO tpch;
---ALTER TABLE TPCD.REGION DROP PRIMARY KEY;
---ALTER TABLE TPCD.NATION DROP PRIMARY KEY;
---ALTER TABLE TPCD.PART DROP PRIMARY KEY;
---ALTER TABLE TPCD.SUPPLIER DROP PRIMARY KEY;
---ALTER TABLE TPCD.PARTSUPP DROP PRIMARY KEY;
---ALTER TABLE TPCD.ORDERS DROP PRIMARY KEY;
---ALTER TABLE TPCD.LINEITEM DROP PRIMARY KEY;
---ALTER TABLE TPCD.CUSTOMER DROP PRIMARY KEY;
+-- ALTER TABLE tpch.region DROP PRIMARY KEY;
+-- ALTER TABLE tpch.nation DROP PRIMARY KEY;
+-- ALTER TABLE tpch.part DROP PRIMARY KEY;
+-- ALTER TABLE tpch.supplier DROP PRIMARY KEY;
+-- ALTER TABLE tpch.partsupp DROP PRIMARY KEY;
+-- ALTER TABLE tpch.orders DROP PRIMARY KEY;
+-- ALTER TABLE tpch.lineitem DROP PRIMARY KEY;
+-- ALTER TABLE tpch.customer DROP PRIMARY KEY;
-- For table REGION
-ALTER TABLE TPCD.REGION
+ALTER TABLE tpch.region
ADD PRIMARY KEY (R_REGIONKEY);
-- For table NATION
-ALTER TABLE TPCD.NATION
+ALTER TABLE tpch.nation
ADD PRIMARY KEY (N_NATIONKEY);
-ALTER TABLE TPCD.NATION
-ADD FOREIGN KEY NATION_FK1 (N_REGIONKEY) references TPCD.REGION;
+ALTER TABLE tpch.nation
+ADD FOREIGN KEY NATION_FK1 (N_REGIONKEY) references tpch.region (R_REGIONKEY);
COMMIT WORK;
-- For table PART
-ALTER TABLE TPCD.PART
+ALTER TABLE tpch.part
ADD PRIMARY KEY (P_PARTKEY);
COMMIT WORK;
-- For table SUPPLIER
-ALTER TABLE TPCD.SUPPLIER
+ALTER TABLE tpch.supplier
ADD PRIMARY KEY (S_SUPPKEY);
-ALTER TABLE TPCD.SUPPLIER
-ADD FOREIGN KEY SUPPLIER_FK1 (S_NATIONKEY) references TPCD.NATION;
+ALTER TABLE tpch.supplier
+ADD FOREIGN KEY SUPPLIER_FK1 (S_NATIONKEY) references tpch.nation (N_NATIONKEY);
COMMIT WORK;
-- For table PARTSUPP
-ALTER TABLE TPCD.PARTSUPP
+ALTER TABLE tpch.partsupp
ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY);
COMMIT WORK;
-- For table CUSTOMER
-ALTER TABLE TPCD.CUSTOMER
+ALTER TABLE tpch.customer
ADD PRIMARY KEY (C_CUSTKEY);
-ALTER TABLE TPCD.CUSTOMER
-ADD FOREIGN KEY CUSTOMER_FK1 (C_NATIONKEY) references TPCD.NATION;
+ALTER TABLE tpch.customer
+ADD FOREIGN KEY CUSTOMER_FK1 (C_NATIONKEY) references tpch.nation (N_NATIONKEY);
COMMIT WORK;
-- For table LINEITEM
-ALTER TABLE TPCD.LINEITEM
+ALTER TABLE tpch.lineitem
ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);
COMMIT WORK;
-- For table ORDERS
-ALTER TABLE TPCD.ORDERS
+ALTER TABLE tpch.orders
ADD PRIMARY KEY (O_ORDERKEY);
COMMIT WORK;
-- For table PARTSUPP
-ALTER TABLE TPCD.PARTSUPP
-ADD FOREIGN KEY PARTSUPP_FK1 (PS_SUPPKEY) references TPCD.SUPPLIER;
+ALTER TABLE tpch.partsupp
+ADD FOREIGN KEY PARTSUPP_FK1 (PS_SUPPKEY) references tpch.supplier (S_SUPPKEY);
COMMIT WORK;
-ALTER TABLE TPCD.PARTSUPP
-ADD FOREIGN KEY PARTSUPP_FK2 (PS_PARTKEY) references TPCD.PART;
+ALTER TABLE tpch.partsupp
+ADD FOREIGN KEY PARTSUPP_FK2 (PS_PARTKEY) references tpch.part (P_PARTKEY);
COMMIT WORK;
-- For table ORDERS
-ALTER TABLE TPCD.ORDERS
-ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references TPCD.CUSTOMER;
+ALTER TABLE tpch.orders
+ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references tpch.customer (C_CUSTKEY);
COMMIT WORK;
-- For table LINEITEM
-ALTER TABLE TPCD.LINEITEM
-ADD FOREIGN KEY LINEITEM_FK1 (L_ORDERKEY) references TPCD.ORDERS;
+ALTER TABLE tpch.lineitem
+ADD FOREIGN KEY LINEITEM_FK1 (L_ORDERKEY) references tpch.orders (O_ORDERKEY);
COMMIT WORK;
-ALTER TABLE TPCD.LINEITEM
+ALTER TABLE tpch.lineitem
ADD FOREIGN KEY LINEITEM_FK2 (L_PARTKEY,L_SUPPKEY) references
- TPCD.PARTSUPP;
+ tpch.partsupp (PS_PARTKEY, PS_SUPPKEY);
COMMIT WORK;
--- makefile.suite 2014-04-09 10:52:26.000000000 +0900
+++ Makefile 2014-05-13 19:04:27.647966647 +0900
@@ -100,15 +100,15 @@
################
## CHANGE NAME OF ANSI COMPILER HERE
################
-CC =
+CC = gcc
# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
# SQLSERVER, SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are: ATT, DOS, HP, IBM, ICL, MVS,
# SGI, SUN, U2200, VMS, LINUX, WIN32
# Current values for WORKLOAD are: TPCH
-DATABASE=
-MACHINE =
-WORKLOAD =
+DATABASE= MYSQL
+MACHINE = LINUX
+WORKLOAD = TPCH
#
CFLAGS = -g -DDBNAME=\"dss\" -D$(MACHINE) -D$(DATABASE) -D$(WORKLOAD) -DRNG_TEST -D_FILE_OFFSET_BITS=64
LDFLAGS = -O
--- tpcd.h.orig 2014-05-16 02:56:06.748914416 +0900
+++ tpcd.h 2014-05-16 03:03:27.940901516 +0900
@@ -112,6 +112,15 @@
#define SET_DBASE ".LOGON %s\n"
#endif
+#ifdef MYSQL
+#define GEN_QUERY_PLAN "EXPLAIN"
+#define START_TRAN "START TRANSACTION"
+#define END_TRAN "COMMIT"
+#define SET_OUTPUT "INTO OUTFILE"
+#define SET_ROWCOUNT "LIMIT %d\n"
+#define SET_DBASE "USE %s;\n"
+#endif
+
#define MAX_VARS 8 /* max number of host vars in any query */
#define QLEN_MAX 2048 /* max length of any query */
#define QUERIES_PER_SET 22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment