Skip to content
This repository was archived by the owner on Aug 23, 2021. It is now read-only.

Firebird TPCH and tpcc #192

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions config/tpcc_config_firebird.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0"?>
<parameters>

<!-- Connection details -->
<dbtype>firebird</dbtype>
<driver>org.firebirdsql.jdbc.FBDriver</driver>
<DBUrl>jdbc:firebirdsql:localhost/3050:/home/ubuntu/tpcc.fdb?sql_dialect=3</DBUrl>
<username>SYSDBA</username>
<password>masterkey</password>
<isolation>TRANSACTION_READ_COMMITTED</isolation>

<!-- Scale factor is the number of warehouses in TPCC -->
<scalefactor>16</scalefactor>

<!-- The workload -->
<terminals>15</terminals>
<works>
<work>
<time>300</time>
<rate>unlimited</rate>
<weights>45,43,4,4,4</weights>
</work>
</works>

<!-- TPCC specific -->
<transactiontypes>
<transactiontype>
<name>NewOrder</name>
</transactiontype>
<transactiontype>
<name>Payment</name>
</transactiontype>
<transactiontype>
<name>OrderStatus</name>
</transactiontype>
<transactiontype>
<name>Delivery</name>
</transactiontype>
<transactiontype>
<name>StockLevel</name>
</transactiontype>
</transactiontypes>
</parameters>
142 changes: 142 additions & 0 deletions config/tpch_config_firdbird.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0"?>
<parameters>

<!-- Connection details -->
<dbtype>firebird</dbtype>
<driver>org.firebirdsql.jdbc.FBDriver</driver>
<DBUrl>jdbc:firebirdsql:localhost/3050:/home/ubuntu/test.fdb?sql_dialect=3</DBUrl>
<username>SYSDBA</username>
<password>masterkey</password>
<isolation>TRANSACTION_SERIALIZABLE</isolation>

<!-- Location for the files generated by tpch dbgen -->
<datadir>tpch/dbgen</datadir>

<!-- Format of the files that contain the tpch data -->
<!-- Values: csv or tbl-->
<fileFormat>tbl</fileFormat>

<!-- This setting doesn't do anything here -->
<scalefactor>1</scalefactor>

<!-- The workload -->
<terminals>1</terminals>
<works>
<work>
<serial>true</serial>
<rate>unlimited</rate>
<weights>all</weights>
</work>
<work>
<serial>true</serial>
<rate>unlimited</rate>
<weights>even</weights>
</work>
<work>
<serial>true</serial>
<rate>unlimited</rate>
<weights>odd</weights>
</work>
</works>

<transactiontypes>
<groupings>
<grouping>
<name>odd</name>
<weights>1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0</weights>
</grouping>
<grouping>
<name>even</name>
<weights>0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1</weights>
</grouping>
</groupings>
<transactiontype>
<name>Q1</name>
<id>1</id>
</transactiontype>
<transactiontype>
<name>Q2</name>
<id>2</id>
</transactiontype>
<transactiontype>
<name>Q3</name>
<id>3</id>
</transactiontype>
<transactiontype>
<name>Q4</name>
<id>4</id>
</transactiontype>
<transactiontype>
<name>Q5</name>
<id>5</id>
</transactiontype>
<transactiontype>
<name>Q6</name>
<id>6</id>
</transactiontype>
<transactiontype>
<name>Q7</name>
<id>7</id>
</transactiontype>
<transactiontype>
<name>Q8</name>
<id>8</id>
</transactiontype>
<transactiontype>
<name>Q9</name>
<id>9</id>
</transactiontype>
<transactiontype>
<name>Q10</name>
<id>10</id>
</transactiontype>
<transactiontype>
<name>Q11</name>
<id>11</id>
</transactiontype>
<transactiontype>
<name>Q12</name>
<id>12</id>
</transactiontype>
<transactiontype>
<name>Q13</name>
<id>13</id>
</transactiontype>
<transactiontype>
<name>Q14</name>
<id>14</id>
</transactiontype>
<transactiontype>
<name>Q15</name>
<id>15</id>
</transactiontype>
<transactiontype>
<name>Q16</name>
<id>16</id>
</transactiontype>
<transactiontype>
<name>Q17</name>
<id>17</id>
</transactiontype>
<transactiontype>
<name>Q18</name>
<id>18</id>
</transactiontype>
<transactiontype>
<name>Q19</name>
<id>19</id>
</transactiontype>
<transactiontype>
<name>Q20</name>
<id>20</id>
</transactiontype>
<transactiontype>
<name>Q21</name>
<id>21</id>
</transactiontype>
<transactiontype>
<name>Q22</name>
<id>22</id>
</transactiontype>
</transactiontypes>
</parameters>
Binary file added lib/jaybird-full-3.0.2.jar
Binary file not shown.
140 changes: 140 additions & 0 deletions src/com/oltpbenchmark/benchmarks/tpcc/ddls/tpcc-firebird-ddl.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
CREATE TABLE WAREHOUSE (
W_ID INT NOT NULL,
W_YTD DECIMAL(12,2) NOT NULL,
W_TAX DECIMAL(4,4) NOT NULL,
W_NAME VARCHAR(10) NOT NULL,
W_STREET_1 VARCHAR(20) NOT NULL,
W_STREET_2 VARCHAR(20) NOT NULL,
W_CITY VARCHAR(20) NOT NULL,
W_STATE CHAR(2) NOT NULL,
W_ZIP CHAR(9) NOT NULL,
PRIMARY KEY (W_ID)
);

CREATE TABLE DISTRICT (
D_W_ID INT NOT NULL REFERENCES WAREHOUSE (W_ID),
D_ID INT NOT NULL,
D_YTD DECIMAL(12,2) NOT NULL,
D_TAX DECIMAL(4,4) NOT NULL,
D_NEXT_O_ID INT NOT NULL,
D_NAME VARCHAR(10) NOT NULL,
D_STREET_1 VARCHAR(20) NOT NULL,
D_STREET_2 VARCHAR(20) NOT NULL,
D_CITY VARCHAR(20) NOT NULL,
D_STATE CHAR(2) NOT NULL,
D_ZIP CHAR(9) NOT NULL,
PRIMARY KEY (D_W_ID,D_ID)
);

-- TODO: C_SINCE ON UPDATE CURRENT_TIMESTAMP,
CREATE TABLE CUSTOMER (
C_W_ID INT NOT NULL,
C_D_ID INT NOT NULL,
C_ID INT NOT NULL,
C_DISCOUNT DECIMAL(4,4) NOT NULL,
C_CREDIT CHAR(2) NOT NULL,
C_LAST VARCHAR(16) NOT NULL,
C_FIRST VARCHAR(16) NOT NULL,
C_CREDIT_LIM DECIMAL(12,2) NOT NULL,
C_BALANCE DECIMAL(12,2) NOT NULL,
C_YTD_PAYMENT FLOAT NOT NULL,
C_PAYMENT_CNT INT NOT NULL,
C_DELIVERY_CNT INT NOT NULL,
C_STREET_1 VARCHAR(20) NOT NULL,
C_STREET_2 VARCHAR(20) NOT NULL,
C_CITY VARCHAR(20) NOT NULL,
C_STATE CHAR(2) NOT NULL,
C_ZIP CHAR(9) NOT NULL,
C_PHONE CHAR(16) NOT NULL,
C_SINCE TIMESTAMP NOT NULL,
C_MIDDLE CHAR(2) NOT NULL,
C_DATA VARCHAR(500) NOT NULL,
PRIMARY KEY (C_W_ID, C_D_ID, C_ID),
CONSTRAINT C_FKEY_D FOREIGN KEY (C_W_ID, C_D_ID) REFERENCES DISTRICT (D_W_ID, D_ID)
);
CREATE INDEX IDX_CUSTOMER_NAME ON CUSTOMER (C_W_ID,C_D_ID,C_LAST,C_FIRST);

-- TODO: O_ENTRY_D ON UPDATE CURRENT_TIMESTAMP
CREATE TABLE OORDER (
O_W_ID INT NOT NULL,
O_D_ID INT NOT NULL,
O_ID INT NOT NULL,
O_C_ID INT NOT NULL,
O_CARRIER_ID INT DEFAULT NULL,
O_OL_CNT DECIMAL(2,0) NOT NULL,
O_ALL_LOCAL DECIMAL(1,0) NOT NULL,
O_ENTRY_D TIMESTAMP NOT NULL,
PRIMARY KEY (O_W_ID,O_D_ID,O_ID),
UNIQUE (O_W_ID,O_D_ID,O_C_ID,O_ID),
CONSTRAINT O_FKEY_C FOREIGN KEY (O_W_ID, O_D_ID, O_C_ID) REFERENCES CUSTOMER (C_W_ID, C_D_ID, C_ID)
);

CREATE INDEX IDX_ORDER ON OORDER (O_W_ID,O_D_ID,O_C_ID,O_ID);

CREATE TABLE NEW_ORDER (
NO_W_ID INT NOT NULL,
NO_D_ID INT NOT NULL,
NO_O_ID INT NOT NULL,
PRIMARY KEY (NO_W_ID,NO_D_ID,NO_O_ID),
CONSTRAINT NO_FKEY_O FOREIGN KEY (NO_W_ID, NO_D_ID, NO_O_ID) REFERENCES OORDER (O_W_ID, O_D_ID, O_ID)
);

-- TODO: H_DATE ON UPDATE CURRENT_TIMESTAMP
CREATE TABLE HISTORY (
H_C_ID INT NOT NULL,
H_C_D_ID INT NOT NULL,
H_C_W_ID INT NOT NULL,
H_D_ID INT NOT NULL,
H_W_ID INT NOT NULL,
H_DATE TIMESTAMP NOT NULL,
H_AMOUNT DECIMAL(6,2) NOT NULL,
H_DATA VARCHAR(24) NOT NULL,
CONSTRAINT H_FKEY_C FOREIGN KEY (H_C_W_ID, H_C_D_ID, H_C_ID) REFERENCES CUSTOMER (C_W_ID, C_D_ID, C_ID),
CONSTRAINT H_FKEY_D FOREIGN KEY (H_W_ID, H_D_ID) REFERENCES DISTRICT (D_W_ID, D_ID)
);

CREATE TABLE ITEM (
I_ID INT NOT NULL,
I_NAME VARCHAR(24) NOT NULL,
I_PRICE DECIMAL(5,2) NOT NULL,
I_DATA VARCHAR(50) NOT NULL,
I_IM_ID INT NOT NULL,
PRIMARY KEY (I_ID)
);

CREATE TABLE STOCK (
S_W_ID INT NOT NULL REFERENCES WAREHOUSE (W_ID),
S_I_ID INT NOT NULL REFERENCES ITEM (I_ID),
S_QUANTITY DECIMAL(4,0) NOT NULL,
S_YTD DECIMAL(8,2) NOT NULL,
S_ORDER_CNT INT NOT NULL,
S_REMOTE_CNT INT NOT NULL,
S_DATA VARCHAR(50) NOT NULL,
S_DIST_01 CHAR(24) NOT NULL,
S_DIST_02 CHAR(24) NOT NULL,
S_DIST_03 CHAR(24) NOT NULL,
S_DIST_04 CHAR(24) NOT NULL,
S_DIST_05 CHAR(24) NOT NULL,
S_DIST_06 CHAR(24) NOT NULL,
S_DIST_07 CHAR(24) NOT NULL,
S_DIST_08 CHAR(24) NOT NULL,
S_DIST_09 CHAR(24) NOT NULL,
S_DIST_10 CHAR(24) NOT NULL,
PRIMARY KEY (S_W_ID, S_I_ID)
);

CREATE TABLE ORDER_LINE (
OL_W_ID INT NOT NULL,
OL_D_ID INT NOT NULL,
OL_O_ID INT NOT NULL,
OL_NUMBER INT NOT NULL,
OL_I_ID INT NOT NULL,
OL_DELIVERY_D TIMESTAMP,
OL_AMOUNT DECIMAL(6,2) NOT NULL,
OL_SUPPLY_W_ID INT NOT NULL,
OL_QUANTITY DECIMAL(2,0) NOT NULL,
OL_DIST_INFO CHAR(24) NOT NULL,
PRIMARY KEY (OL_W_ID,OL_D_ID,OL_O_ID,OL_NUMBER),
CONSTRAINT OL_FKEY_O FOREIGN KEY (OL_W_ID, OL_D_ID, OL_O_ID) REFERENCES OORDER (O_W_ID, O_D_ID, O_ID),
CONSTRAINT OL_FKEY_S FOREIGN KEY (OL_SUPPLY_W_ID, OL_I_ID) REFERENCES STOCK (S_W_ID, S_I_ID)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<dialects>
<dialect type="FIREBIRD">
<procedure name="Delivery">
<statement name="delivGetOrderIdSQL">
SELECT FIRST 1 SKIP 0 NO_O_ID
FROM NEW_ORDER
WHERE NO_D_ID = ? AND NO_W_ID = ? ORDER BY NO_O_ID ASC
</statement>
</procedure>
<procedure name="OrderStatus">
<statement name="ordStatGetNewestOrdSQL">
SELECT FIRST 1 SKIP 0 O_ID, O_CARRIER_ID, O_ENTRY_D
FROM OORDER
WHERE O_W_ID = ? AND O_D_ID = ? AND O_C_ID = ? ORDER BY O_ID DESC
</statement>
</procedure>
</dialect>
</dialects>
Loading