Created
December 20, 2022 22:45
-
-
Save avantgardnerio/5bdf77297956add71cbf664d3366224b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public TpccStatements(Connection conn, int fetchSize) throws Exception { | |
this.conn = conn; | |
// NewOrder statements. | |
pStmts[0] = prepareStatement("SELECT c.c_discount, c.c_last, c.c_credit, w.w_tax FROM customer AS c JOIN warehouse AS w ON c.c_w_id = w_id AND w.w_id = $1 AND c.c_w_id = $2 AND c.c_d_id = $3 AND c.c_id = $4"); | |
pStmts[1] = prepareStatement("SELECT d_next_o_id, d_tax FROM district WHERE d_id = $1 AND d_w_id = $2 FOR UPDATE"); | |
pStmts[2] = prepareStatement("UPDATE district SET d_next_o_id = $1 + 1 WHERE d_id = $2 AND d_w_id = $3"); | |
pStmts[3] = prepareStatement("INSERT INTO orders (o_id, o_d_id, o_w_id, o_c_id, o_entry_d, o_ol_cnt, o_all_local) VALUES($1, $2, $3, $4, $5, $6, $7)"); | |
pStmts[4] = prepareStatement("INSERT INTO new_orders (no_o_id, no_d_id, no_w_id) VALUES ($1,$2,$3)"); | |
pStmts[5] = prepareStatement("SELECT i_price, i_name, i_data FROM item WHERE i_id = $1"); | |
pStmts[6] = prepareStatement("SELECT s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04, s_dist_05, s_dist_06, s_dist_07, s_dist_08, s_dist_09, s_dist_10 FROM stock WHERE s_i_id = $1 AND s_w_id = $2 FOR UPDATE"); | |
pStmts[7] = prepareStatement("UPDATE stock SET s_quantity = $1 WHERE s_i_id = $2 AND s_w_id = $3"); | |
pStmts[8] = prepareStatement("INSERT INTO order_line (ol_o_id, ol_d_id, ol_w_id, ol_number, ol_i_id, ol_supply_w_id, ol_quantity, ol_amount, ol_dist_info) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"); | |
// Payment statements. | |
pStmts[9] = prepareStatement("UPDATE warehouse SET w_ytd = w_ytd + $1 WHERE w_id = $2"); | |
pStmts[10] = prepareStatement("SELECT w_street_1, w_street_2, w_city, w_state, w_zip, w_name FROM warehouse WHERE w_id = $1"); | |
pStmts[11] = prepareStatement("UPDATE district SET d_ytd = d_ytd + $1 WHERE d_w_id = $2 AND d_id = $3"); | |
pStmts[12] = prepareStatement("SELECT d_street_1, d_street_2, d_city, d_state, d_zip, d_name FROM district WHERE d_w_id = $1 AND d_id = $2"); | |
pStmts[13] = prepareStatement("SELECT count(c_id) FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_last = $3"); | |
pStmts[14] = prepareStatement("SELECT c_id FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_last = $3 ORDER BY c_first"); | |
pStmts[15] = prepareStatement("SELECT c_first, c_middle, c_last, c_street_1, c_street_2, c_city, c_state, c_zip, c_phone, c_credit, c_credit_lim, c_discount, c_balance, c_since FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_id = $3 FOR UPDATE"); | |
pStmts[16] = prepareStatement("SELECT c_data FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_id = $3"); | |
pStmts[17] = prepareStatement("UPDATE customer SET c_balance = $1, c_data = $2 WHERE c_w_id = $3 AND c_d_id = $4 AND c_id = $5"); | |
pStmts[18] = prepareStatement("UPDATE customer SET c_balance = $1 WHERE c_w_id = $2 AND c_d_id = $3 AND c_id = $4"); | |
pStmts[19] = prepareStatement("INSERT INTO history(h_c_d_id, h_c_w_id, h_c_id, h_d_id, h_w_id, h_date, h_amount, h_data) VALUES($1, $2, $3, $4, $5, $6, $7, $8)"); | |
// OrderStat statements. | |
pStmts[20] = prepareStatement("SELECT count(c_id) FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_last = $3"); | |
pStmts[21] = prepareStatement("SELECT c_balance, c_first, c_middle, c_last FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_last = $3 ORDER BY c_first"); | |
pStmts[22] = prepareStatement("SELECT c_balance, c_first, c_middle, c_last FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_id = $3"); | |
pStmts[23] = prepareStatement("SELECT o_id, o_entry_d, COALESCE(o_carrier_id,0) FROM orders WHERE o_w_id = $1 AND o_d_id = $2 AND o_c_id = $3 AND o_id = (SELECT MAX(o_id) FROM orders WHERE o_w_id = $4 AND o_d_id = $5 AND o_c_id = $6)"); | |
pStmts[24] = prepareStatement("SELECT ol_i_id, ol_supply_w_id, ol_quantity, ol_amount, ol_delivery_d FROM order_line WHERE ol_w_id = $1 AND ol_d_id = $2 AND ol_o_id = $3"); | |
// Delivery statements. | |
pStmts[25] = prepareStatement("SELECT COALESCE(MIN(no_o_id),0) FROM new_orders WHERE no_d_id = $1 AND no_w_id = $2"); | |
pStmts[26] = prepareStatement("DELETE FROM new_orders WHERE no_o_id = $1 AND no_d_id = $2 AND no_w_id = $3"); | |
pStmts[27] = prepareStatement("SELECT o_c_id FROM orders WHERE o_id = $1 AND o_d_id = $2 AND o_w_id = $3"); | |
pStmts[28] = prepareStatement("UPDATE orders SET o_carrier_id = $1 WHERE o_id = $2 AND o_d_id = $3 AND o_w_id = $4"); | |
pStmts[29] = prepareStatement("UPDATE order_line SET ol_delivery_d = $1 WHERE ol_o_id = $2 AND ol_d_id = $3 AND ol_w_id = $4"); | |
pStmts[30] = prepareStatement("SELECT SUM(ol_amount) FROM order_line WHERE ol_o_id = $1 AND ol_d_id = $2 AND ol_w_id = $3"); | |
pStmts[31] = prepareStatement("UPDATE customer SET c_balance = c_balance + $1 , c_delivery_cnt = c_delivery_cnt + 1 WHERE c_id = $2 AND c_d_id = $3 AND c_w_id = $4"); | |
// Slev statements. | |
pStmts[32] = prepareStatement("SELECT d_next_o_id FROM district WHERE d_id = $1 AND d_w_id = $2"); | |
pStmts[33] = prepareStatement("SELECT DISTINCT ol_i_id FROM order_line WHERE ol_w_id = $1 AND ol_d_id = $2 AND ol_o_id < $3 AND ol_o_id >= ($4 - 20)"); | |
pStmts[34] = prepareStatement("SELECT count(*) FROM stock WHERE s_w_id = $1 AND s_i_id = $2 AND s_quantity < $3"); | |
// These are used in place of pStmts[0] in order to avoid joins | |
pStmts[35] = prepareStatement("SELECT c_discount, c_last, c_credit FROM customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_id = $3"); | |
pStmts[36] = prepareStatement("SELECT w_tax FROM warehouse WHERE w_id = $1"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment