function prepared_statements_for_run()

in perfkitbenchmarker/data/sysbench/spanner_pg_tpcc_run.lua [25:237]


function prepared_statements_for_run(table_num)
  
  con:query("PREPARE select_customer_info"..table_num..
    [[ as SELECT c_discount, c_last, c_credit, w_tax
       FROM customer]]..table_num..[[ , warehouse]]..table_num..[[
       WHERE w_id = $1
       AND c_w_id = w_id
       AND c_d_id = $2
       AND c_id = $3]])

  con:query("PREPARE get_next_order_id_and_tax"..table_num..
    [[ as SELECT d_next_o_id, d_tax
       FROM district]]..table_num..[[
       WHERE d_w_id = $1
       AND d_id = $2]])

  con:query("PREPARE get_next_order_id"..table_num..
    [[ as SELECT d_next_o_id
       FROM district]]..table_num..[[
       WHERE d_id = $1 AND d_w_id= $2]])

  con:query("PREPARE update_next_order_id"..table_num..
    [[ as UPDATE district]]..table_num..[[
       SET d_next_o_id = $1
       WHERE d_id = $2 AND d_w_id= $3]])

  con:query("PREPARE insert_order"..table_num.."(bigint,bigint,bigint,bigint,bigint,bigint)"..
    [[ as INSERT INTO orders]]..table_num..[[
       (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,NOW(),$5,$6)]])

  con:query("PREPARE insert_new_order"..table_num..
    [[ as INSERT INTO new_orders]]..table_num..[[ (no_o_id, no_d_id, no_w_id)
       VALUES ($1,$2,$3)]])

  con:query("PREPARE select_item"..table_num..
    [[ as SELECT i_price, i_name, i_data
       FROM item]]..table_num..[[
       WHERE i_id = $1]])

  con:query("PREPARE select_stock"..table_num..
    [[ as 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]]..table_num..[[
       WHERE s_i_id = $1 AND s_w_id= $2]])

  con:query("PREPARE update_stock"..table_num..
    [[ as UPDATE stock]]..table_num..[[
       SET s_quantity = $1
       WHERE s_i_id = $2
       AND s_w_id= $3]])

  con:query("PREPARE insert_order_line"..table_num..
    [[ as INSERT INTO order_line]]..table_num..[[
       (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)]])

  con:query("PREPARE update_warehouse"..table_num..
    [[ as UPDATE warehouse]]..table_num..[[
       SET w_ytd = w_ytd + $1
       WHERE w_id = $2]])

  con:query("PREPARE select_warehouse"..table_num..
    [[ as SELECT w_street_1, w_street_2, w_city, w_state, w_zip, w_name
       FROM warehouse]]..table_num..[[
       WHERE w_id = $1]])

  con:query("PREPARE update_district"..table_num..
    [[ as UPDATE district]]..table_num..[[
       SET d_ytd = d_ytd + $1
       WHERE d_w_id = $2
       AND d_id= $3]])

  con:query("PREPARE select_district"..table_num..
    [[ as SELECT d_street_1, d_street_2, d_city, d_state, d_zip, d_name
       FROM district]]..table_num..[[
       WHERE d_w_id = $1
       AND d_id = $2]])

  con:query("PREPARE count_customer"..table_num..
    [[ as SELECT count(c_id) namecnt
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1
       AND c_d_id= $2 AND c_last=$3 ]])

  con:query("PREPARE select_customer"..table_num..
    [[ as SELECT c_id
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1 AND c_d_id= $2
       AND c_last=$3 ORDER BY c_first ]])

  con:query("PREPARE select_customer_details"..table_num..
    [[ as 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_ytd_payment, c_since
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1
       AND c_d_id= $2
       AND c_id=$3 ]])

  con:query("PREPARE select_customer_c_data"..table_num..
    [[ as SELECT c_data
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1
       AND c_d_id=$2
       AND c_id= $3]])

  con:query("PREPARE update_customer_1_"..table_num..
    [[ as UPDATE customer]]..table_num..[[
       SET c_balance=$1, c_ytd_payment=$2, c_data=$3
       WHERE c_w_id = $4
       AND c_d_id=$5
       AND c_id=$6]])

  con:query("PREPARE update_customer_2_"..table_num..
    [[ as UPDATE customer]]..table_num..[[
       SET c_balance=$1, c_ytd_payment=$2
       WHERE c_w_id = $3
       AND c_d_id=$4
       AND c_id=$5]])

  con:query("PREPARE insert_history"..table_num.."(bigint,bigint,bigint,bigint,bigint,bigint,varchar)"..
    [[ as INSERT INTO history]]..table_num..[[
       (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,NOW(),$6,$7)]])

  con:query("PREPARE select_customer_balance_1_"..table_num..
    [[ as SELECT c_balance, c_first, c_middle, c_id
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1
       AND c_d_id= $2
       AND c_last=$3 ORDER BY c_first]])

  con:query("PREPARE select_customer_balance_2_"..table_num..
    [[ as SELECT c_balance, c_first, c_middle, c_last
       FROM customer]]..table_num..[[
       WHERE c_w_id = $1
       AND c_d_id=$2
       AND c_id=$3]])

  con:query("PREPARE select_order"..table_num..
    [[ as SELECT o_id, o_carrier_id, o_entry_d
       FROM orders]]..table_num..[[
       WHERE o_w_id = $1
       AND o_d_id = $2
       AND o_c_id = $3
       ORDER BY o_id DESC]])

  con:query("PREPARE select_order_line"..table_num..
    [[ as SELECT ol_i_id, ol_supply_w_id, ol_quantity, ol_amount, ol_delivery_d
       FROM order_line]]..table_num..[[
       WHERE ol_w_id = $1 AND ol_d_id = $2  AND ol_o_id = $3]])

  con:query("PREPARE select_new_order"..table_num..
    [[ as SELECT no_o_id
       FROM new_orders]]..table_num..[[
       WHERE no_d_id = $1
       AND no_w_id = $2
       ORDER BY no_o_id ASC LIMIT 1]])

  con:query("PREPARE delete_new_order"..table_num..
    [[ as DELETE FROM new_orders]]..table_num..[[
       WHERE no_o_id = $1
       AND no_d_id = $2
       AND no_w_id = $3]])

  con:query("PREPARE select_order_customer"..table_num..
    [[ as SELECT o_c_id
       FROM orders]]..table_num..[[
       WHERE o_id = $1
       AND o_d_id = $2
       AND o_w_id = $3]])

  con:query("PREPARE update_order"..table_num..
    [[ as UPDATE orders]]..table_num..[[
       SET o_carrier_id = $1
       WHERE o_id = $2
       AND o_d_id = $3
       AND o_w_id = $4]])

  con:query("PREPARE update_order_line"..table_num..
    [[ as UPDATE order_line]]..table_num..[[
       SET ol_delivery_d = NOW()
       WHERE ol_o_id = $1
       AND ol_d_id = $2
       AND ol_w_id = $3]])

  con:query("PREPARE sum_order_line"..table_num..
    [[ as SELECT SUM(ol_amount) sm
       FROM order_line]]..table_num..[[
       WHERE ol_o_id = $1
       AND ol_d_id = $2
       AND ol_w_id = $3]])

  con:query("PREPARE update_customer_bal"..table_num..
    [[ as UPDATE customer]]..table_num..[[
       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]])

  con:query("PREPARE count_order_line"..table_num..
    [[ as SELECT COUNT(DISTINCT (s_i_id))
       FROM order_line]]..table_num..[[, stock]]..table_num..[[
       WHERE ol_w_id = $1
       AND ol_d_id = $2
       AND ol_o_id < $3
       AND ol_o_id >= $4
       AND s_w_id= $5
       AND s_i_id=ol_i_id
       AND s_quantity < $6]])

end