aboutsummaryrefslogtreecommitdiff
path: root/odb/mysql/mysql-types.hxx
blob: 32cb332b58f89131fc75667b7835944d1bc2109b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// file      : odb/mysql/mysql-types.hxx
// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license   : GNU GPL v2; see accompanying LICENSE file

#ifndef ODB_MYSQL_MYSQL_TYPES_HXX
#define ODB_MYSQL_MYSQL_TYPES_HXX

#include <odb/mysql/details/config.hxx>

#include <odb/mysql/version.hxx>

// Starting with 8.0.1 instead of my_bool MySQL uses bool directly. We keep
// using the alias for compatibility with previous versions.
//
#if !defined(LIBODB_MYSQL_MARIADB) && MYSQL_VERSION_ID >= 80001
typedef bool my_bool;
#else
typedef char my_bool;
#endif

// Starting with 8.0.11 MySQL renamed st_mysql_bind to MYSQL_BIND.
//
#if defined(LIBODB_MYSQL_MARIADB) || MYSQL_VERSION_ID < 80011
typedef struct st_mysql_bind MYSQL_BIND;
#endif

// MariaDB defines time types directly in mysql.h. Note that MariaDB is only
// supported by the build2 build so we include the header as <mysql/mysql.h>
// unconditionally.
//
#ifdef LIBODB_MYSQL_MARIADB
#  include <mysql/mysql.h>
#else
#  ifdef LIBODB_MYSQL_INCLUDE_SHORT
#    include <mysql_time.h>
#  else
#    include <mysql/mysql_time.h>
#  endif
#endif

#endif // ODB_MYSQL_MYSQL_TYPES_HXX