MYODBC_MYSQL.h (82 lines of code) (raw):
// Copyright (c) 2009, 2024, Oracle and/or its affiliates.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License, version 2.0, as
// published by the Free Software Foundation.
//
// This program is designed to work with certain software (including
// but not limited to OpenSSL) that is licensed under separate terms, as
// designated in a particular file or component or in included license
// documentation. The authors of MySQL hereby grant you an additional
// permission to link the program and your derivative works with the
// separately licensed software that they have either included with
// the program or referenced in the documentation.
//
// Without limiting anything contained in the foregoing, this file,
// which is part of Connector/ODBC, is also subject to the
// Universal FOSS Exception, version 1.0, a copy of which can be found at
// https://oss.oracle.com/licenses/universal-foss-exception.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License, version 2.0, for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef MYODBC_MYSQL_H
#define MYODBC_MYSQL_H
#define DONT_DEFINE_VOID
#define my_bool bool
#define TRUE 1
#define FALSE 0
#define WIN32_LEAN_AND_MEAN
#if (MYSQLCLIENT_STATIC_LINKING)
#include <my_config.h>
#include <my_sys.h>
#include <mysql.h>
#include <mysqld_error.h>
#include <my_alloc.h>
#include <mysql/service_mysql_alloc.h>
#include <m_ctype.h>
#include <my_io.h>
#else
#include "include/mysql-8.0/my_config.h"
#include "include/mysql-8.0/my_sys.h"
#include <mysql.h>
#include <mysqld_error.h>
#include "include/mysql-8.0/my_alloc.h"
#include "include/mysql-8.0/mysql/service_mysql_alloc.h"
#include "include/mysql-8.0/m_ctype.h"
#include "include/mysql-8.0/my_io.h"
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#define PSI_NOT_INSTRUMENTED 0
#define MIN_MYSQL_VERSION 40100L
#if MYSQL_VERSION_ID < MIN_MYSQL_VERSION
# error "Connector/ODBC requires v4.1 (or later) of the MySQL client library"
#endif
#if !MYSQLCLIENT_STATIC_LINKING || MYSQL_VERSION_ID >= 80018
/*
Note: Things no longer defined in client library headers, but still used
by ODBC code.
*/
#define set_if_bigger(a, b) \
do { \
if ((a) < (b)) (a) = (b); \
} while (0)
#define set_if_smaller(a, b) \
do { \
if ((a) > (b)) (a) = (b); \
} while (0)
#endif
#define my_sys_init myodbc::my_init
#define mysys_end myodbc::my_end
#define x_free(A) { void *tmp= (A); if (tmp) free((char *) tmp); }
#define myodbc_malloc(A, B) (B == MY_ZEROFILL ? calloc(A, 1) : malloc(A))
#define myodbc_realloc(A, B) realloc(A, B)
#define myodbc_snprintf snprintf
/* Get rid of defines from my_config.h that conflict with our myconf.h */
#ifdef VERSION
# undef VERSION
#endif
#ifdef PACKAGE
# undef PACKAGE
#endif
#ifdef HAVE_LIBCRYPT
#undef HAVE_LIBCRYPT
#endif
#ifdef PACKAGE_BUGREPORT
#undef PACKAGE_BUGREPORT
#endif
#ifdef PACKAGE_NAME
#undef PACKAGE_NAME
#endif
#ifdef PACKAGE_STRING
#undef PACKAGE_STRING
#endif
#ifdef PACKAGE_TARNAME
#undef PACKAGE_TARNAME
#endif
#ifdef PACKAGE_VERSION
#undef PACKAGE_VERSION
#endif
/*
It doesn't matter to us what SIZEOF_LONG means to MySQL's headers, but its
value matters a great deal to unixODBC, which calculates it differently.
This causes problems where an application linked against unixODBC thinks
SIZEOF_LONG == 4, and the driver was compiled thinking SIZEOF_LONG == 8,
such as on Solaris x86_64 using Sun C 5.8.
This stems from unixODBC's use of silly platform macros to guess
SIZEOF_LONG instead of just using sizeof(long).
*/
#ifdef SIZEOF_LONG
# undef SIZEOF_LONG
#endif
#ifdef __cplusplus
}
#endif
#endif