1#!/usr/bin/env sysbench
2-- Copyright (C) 2006-2017 Alexey Kopytov <akopytov@gmail.com>
3
4-- This program is free software; you can redistribute it and/or modify
5-- it under the terms of the GNU General Public License as published by
6-- the Free Software Foundation; either version 2 of the License, or
7-- (at your option) any later version.
8
9-- This program is distributed in the hope that it will be useful,
10-- but WITHOUT ANY WARRANTY; without even the implied warranty of
11-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12-- GNU General Public License for more details.
13
14-- You should have received a copy of the GNU General Public License
15-- along with this program; if not, write to the Free Software
16-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18-- ----------------------------------------------------------------------
19-- Read/Write OLTP benchmark
20-- ----------------------------------------------------------------------
21
22require("oltp_common")
23
24function prepare_statements()
25   if not sysbench.opt.skip_trx then
26      prepare_begin()
27      prepare_commit()
28   end
29
30   prepare_point_selects()
31
32   if sysbench.opt.range_selects then
33      prepare_simple_ranges()
34      prepare_sum_ranges()
35      prepare_order_ranges()
36      prepare_distinct_ranges()
37   end
38
39   prepare_index_updates()
40   prepare_non_index_updates()
41   prepare_delete_inserts()
42end
43
44function event()
45   if not sysbench.opt.skip_trx then
46      begin()
47   end
48
49   execute_point_selects()
50
51   if sysbench.opt.range_selects then
52      execute_simple_ranges()
53      execute_sum_ranges()
54      execute_order_ranges()
55      execute_distinct_ranges()
56   end
57
58   execute_index_updates()
59   execute_non_index_updates()
60   execute_delete_inserts()
61
62   if not sysbench.opt.skip_trx then
63      commit()
64   end
65end
66