1/*
2 A temporary header to resolve WebScaleSQL vs MariaDB differences
3 when porting MyRocks to MariaDB.
4*/
5#ifndef RDB_MARIADB_PORT_H
6#define RDB_MARIADB_PORT_H
7
8#include "my_global.h" /* ulonglong */
9#include "atomic_stat.h"
10
11// These are for split_into_vector:
12#include <vector>
13#include <string>
14
15/* The following is copied from storage/innobase/univ.i: */
16#ifndef MY_ATTRIBUTE
17#if defined(__GNUC__)
18# define MY_ATTRIBUTE(A) __attribute__(A)
19#else
20# define MY_ATTRIBUTE(A)
21#endif
22#endif
23
24/* Struct used for IO performance counters, shared among multiple threads */
25struct my_io_perf_atomic_struct {
26 atomic_stat<ulonglong> bytes;
27 atomic_stat<ulonglong> requests;
28 atomic_stat<ulonglong> svc_time; /*!< time to do read or write operation */
29 atomic_stat<ulonglong> svc_time_max;
30 atomic_stat<ulonglong> wait_time; /*!< total time in the request array */
31 atomic_stat<ulonglong> wait_time_max;
32 atomic_stat<ulonglong> slow_ios; /*!< requests that take too long */
33};
34typedef struct my_io_perf_atomic_struct my_io_perf_atomic_t;
35
36////////////////////////////////////////////////////////////////////////////
37
38/*
39 Temporary stand-in for
40 fae59683dc116be2cc78b0b30d61c84659c33bd3
41 Print stack traces before committing suicide
42
43*/
44#define abort_with_stack_traces() { abort(); }
45
46////////////////////////////////////////////////////////////////////////////
47typedef struct my_io_perf_struct my_io_perf_t;
48
49std::vector<std::string> split_into_vector(const std::string& input,
50 char delimiter);
51
52void
53mysql_bin_log_commit_pos(THD *thd, ulonglong *out_pos, const char **out_file);
54
55#endif
56