You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-07 02:42:49 +03:00
changed plugin library types from SHARED to MODULE
Fixed float/double/decimal converion for prepared statements: since _gcvt (Windows) and gcvt (*nix) deliver different results we use now dtoa.c from server package, which is licensed under LGPL.
This commit is contained in:
@@ -530,6 +530,7 @@ extern double my_atof(const char*);
|
|||||||
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL)
|
#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL)
|
||||||
#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL
|
#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL
|
||||||
#define INT_MIN32 (~0x7FFFFFFFL)
|
#define INT_MIN32 (~0x7FFFFFFFL)
|
||||||
@@ -576,7 +577,7 @@ extern double my_atof(const char*);
|
|||||||
Max size that must be added to a so that we know Size to make
|
Max size that must be added to a so that we know Size to make
|
||||||
adressable obj.
|
adressable obj.
|
||||||
*/
|
*/
|
||||||
typedef long my_ptrdiff_t;
|
typedef long my_ptrdiff_t;
|
||||||
#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1))
|
#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1))
|
||||||
#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double))
|
#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double))
|
||||||
/* Size to make adressable obj. */
|
/* Size to make adressable obj. */
|
||||||
@@ -646,6 +647,13 @@ typedef long longlong;
|
|||||||
#define longlong_defined
|
#define longlong_defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_INT64
|
||||||
|
typedef longlong int64;
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_UINT64
|
||||||
|
typedef ulonglong uint64;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MIN
|
#ifndef MIN
|
||||||
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
|
@@ -23,6 +23,14 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MY_GCVT_ARG_FLOAT,
|
||||||
|
MY_GCVT_ARG_DOUBLE
|
||||||
|
} my_gcvt_arg_type;
|
||||||
|
|
||||||
|
size_t ma_fcvt(double x, int precision, char *to, my_bool *error);
|
||||||
|
size_t ma_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
|
||||||
|
my_bool *error);
|
||||||
char *ma_ll2str(long long val,char *dst, int radix);
|
char *ma_ll2str(long long val,char *dst, int radix);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -262,6 +262,7 @@ mariadb_stmt.c
|
|||||||
ma_loaddata.c
|
ma_loaddata.c
|
||||||
ma_stmt_codec.c
|
ma_stmt_codec.c
|
||||||
ma_string.c
|
ma_string.c
|
||||||
|
ma_dtoa.c
|
||||||
${CMAKE_BINARY_DIR}/libmariadb/ma_client_plugin.c
|
${CMAKE_BINARY_DIR}/libmariadb/ma_client_plugin.c
|
||||||
ma_io.c
|
ma_io.c
|
||||||
${SSL_SOURCES}
|
${SSL_SOURCES}
|
||||||
|
2826
libmariadb/ma_dtoa.c
Normal file
2826
libmariadb/ma_dtoa.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -61,6 +61,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#define UINT_MAX8 0xFF
|
#define UINT_MAX8 0xFF
|
||||||
|
|
||||||
|
#define MAX_DOUBLE_STRING_REP_LENGTH 300
|
||||||
#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN)
|
#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN)
|
||||||
#define LONGLONG_MIN ((long long) 0x8000000000000000LL)
|
#define LONGLONG_MIN ((long long) 0x8000000000000000LL)
|
||||||
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
||||||
@@ -570,76 +571,35 @@ static void convert_from_float(MYSQL_BIND *r_param, const MYSQL_FIELD *field, fl
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
#define MAX_DOUBLE_STRING_REP_LENGTH 300
|
char buff[MAX_DOUBLE_STRING_REP_LENGTH];
|
||||||
char buff[MAX_DOUBLE_STRING_REP_LENGTH];
|
size_t length;
|
||||||
size_t length;
|
|
||||||
char *end;
|
|
||||||
|
|
||||||
length= MIN(MAX_DOUBLE_STRING_REP_LENGTH - 1, r_param->buffer_length);
|
length= MIN(MAX_DOUBLE_STRING_REP_LENGTH - 1, r_param->buffer_length);
|
||||||
|
|
||||||
/* if (field->decimals >= NOT_FIXED_DEC)
|
if (field->decimals >= NOT_FIXED_DEC)
|
||||||
{
|
{
|
||||||
sprintf(buff, "%-*.*g", (int) length-1, DBL_DIG, val);
|
length= ma_gcvt(val, MY_GCVT_ARG_FLOAT, length, buff, NULL);
|
||||||
length= strlen(buff);
|
}
|
||||||
}
|
else
|
||||||
else */
|
{
|
||||||
{
|
length= ma_fcvt(val, field->decimals, buff, NULL);
|
||||||
#ifdef _WIN32
|
}
|
||||||
_gcvt(val, 6, buff);
|
|
||||||
#else
|
|
||||||
gcvt(val, 6, buff);
|
|
||||||
#endif
|
|
||||||
length= strlen(buff);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* remove trailing blanks */
|
/* check if ZEROFILL flag is active */
|
||||||
end= strchr(buff, '\0') - 1;
|
if (field->flags & ZEROFILL_FLAG)
|
||||||
while (end > buff && *end == ' ')
|
{
|
||||||
*end--= '\0';
|
/* enough space available ? */
|
||||||
|
if (field->length < length || field->length > MAX_DOUBLE_STRING_REP_LENGTH - 1)
|
||||||
/* check if ZEROFILL flag is active */
|
break;
|
||||||
if (field->flags & ZEROFILL_FLAG)
|
ma_bmove_upp(buff + field->length, buff + length, length);
|
||||||
{
|
memset((char*) buff, 0, field->length - length);
|
||||||
/* enough space available ? */
|
}
|
||||||
if (field->length < length || field->length > MAX_DOUBLE_STRING_REP_LENGTH - 1)
|
convert_froma_string(r_param, buff, strlen(buff));
|
||||||
break;
|
|
||||||
ma_bmove_upp(buff + field->length, buff + length, length);
|
|
||||||
memset((char*) buff, 0, field->length - length);
|
|
||||||
}
|
|
||||||
convert_froma_string(r_param, buff, strlen(buff));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* {{{ ps_fetch_float */
|
|
||||||
static
|
|
||||||
void ps_fetch_float(MYSQL_BIND *r_param, const MYSQL_FIELD * field, unsigned char **row)
|
|
||||||
{
|
|
||||||
switch(r_param->buffer_type)
|
|
||||||
{
|
|
||||||
case MYSQL_TYPE_FLOAT:
|
|
||||||
{
|
|
||||||
float *value= (float *)r_param->buffer;
|
|
||||||
float4get(*value, *row);
|
|
||||||
r_param->buffer_length= 4;
|
|
||||||
*r_param->error= 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
float value;
|
|
||||||
memcpy(&value, *row, sizeof(float));
|
|
||||||
float4get(value, (char *)*row);
|
|
||||||
convert_from_float(r_param, field, value, sizeof(float));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
(*row)+= 4;
|
|
||||||
}
|
|
||||||
/* }}} */
|
|
||||||
|
|
||||||
static void convert_from_double(MYSQL_BIND *r_param, const MYSQL_FIELD *field, double val, int size)
|
static void convert_from_double(MYSQL_BIND *r_param, const MYSQL_FIELD *field, double val, int size)
|
||||||
{
|
{
|
||||||
double check_trunc_val= (val > 0) ? floor(val) : -floor(-val);
|
double check_trunc_val= (val > 0) ? floor(val) : -floor(-val);
|
||||||
@@ -708,33 +668,20 @@ static void convert_from_double(MYSQL_BIND *r_param, const MYSQL_FIELD *field, d
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
#define MAX_DOUBLE_STRING_REP_LENGTH 300
|
|
||||||
char buff[MAX_DOUBLE_STRING_REP_LENGTH];
|
char buff[MAX_DOUBLE_STRING_REP_LENGTH];
|
||||||
size_t length;
|
size_t length;
|
||||||
char *end;
|
|
||||||
|
|
||||||
length= MIN(MAX_DOUBLE_STRING_REP_LENGTH - 1, r_param->buffer_length);
|
length= MIN(MAX_DOUBLE_STRING_REP_LENGTH - 1, r_param->buffer_length);
|
||||||
|
|
||||||
if (field->decimals >= NOT_FIXED_DEC)
|
if (field->decimals >= NOT_FIXED_DEC)
|
||||||
{
|
{
|
||||||
sprintf(buff, "%-*.*g", (int) length-1, DBL_DIG, val);
|
length= ma_gcvt(val, MY_GCVT_ARG_DOUBLE, length, buff, NULL);
|
||||||
length= strlen(buff);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
length= ma_fcvt(val, field->decimals, buff, NULL);
|
||||||
#else
|
|
||||||
gcvt(val, field->decimals, buff);
|
|
||||||
#endif
|
|
||||||
// sprintf(buff, "%.*f", field->decimals, val);
|
|
||||||
length= strlen(buff);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* remove trailing blanks */
|
|
||||||
end= strchr(buff, '\0') - 1;
|
|
||||||
while (end > buff && *end == ' ')
|
|
||||||
*end--= '\0';
|
|
||||||
|
|
||||||
/* check if ZEROFILL flag is active */
|
/* check if ZEROFILL flag is active */
|
||||||
if (field->flags & ZEROFILL_FLAG)
|
if (field->flags & ZEROFILL_FLAG)
|
||||||
{
|
{
|
||||||
@@ -776,6 +723,32 @@ void ps_fetch_double(MYSQL_BIND *r_param, const MYSQL_FIELD * field , unsigned c
|
|||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
/* {{{ ps_fetch_float */
|
||||||
|
static
|
||||||
|
void ps_fetch_float(MYSQL_BIND *r_param, const MYSQL_FIELD * field, unsigned char **row)
|
||||||
|
{
|
||||||
|
switch(r_param->buffer_type)
|
||||||
|
{
|
||||||
|
case MYSQL_TYPE_FLOAT:
|
||||||
|
{
|
||||||
|
float *value= (float *)r_param->buffer;
|
||||||
|
float4get(*value, *row);
|
||||||
|
r_param->buffer_length= 4;
|
||||||
|
*r_param->error= 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
float value;
|
||||||
|
memcpy(&value, *row, sizeof(float));
|
||||||
|
float4get(value, (char *)*row);
|
||||||
|
convert_from_float(r_param, field, value, sizeof(float));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
(*row)+= 4;
|
||||||
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static void convert_to_datetime(MYSQL_TIME *t, unsigned char **row, uint len, enum enum_field_types type)
|
static void convert_to_datetime(MYSQL_TIME *t, unsigned char **row, uint len, enum enum_field_types type)
|
||||||
{
|
{
|
||||||
|
@@ -20,7 +20,7 @@ IF(AUTH_DIALOG_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_LIBRARY(dialog SHARED ${DIALOG_SOURCES})
|
ADD_LIBRARY(dialog MODULE ${DIALOG_SOURCES})
|
||||||
SET_TARGET_PROPERTIES(dialog PROPERTIES PREFIX "")
|
SET_TARGET_PROPERTIES(dialog PROPERTIES PREFIX "")
|
||||||
INSTALL_PLUGIN(dialog ${CMAKE_BINARY_DIR}/plugins/auth)
|
INSTALL_PLUGIN(dialog ${CMAKE_BINARY_DIR}/plugins/auth)
|
||||||
SIGN_TARGET(dialog)
|
SIGN_TARGET(dialog)
|
||||||
@@ -40,7 +40,7 @@ IF(AUTH_OLDPASSWORD_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(OLDPASSWORD_SOURCES ${DIALOG_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
SET(OLDPASSWORD_SOURCES ${DIALOG_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_LIBRARY(mysql_old_password SHARED ${OLDPASSWORD_SOURCES})
|
ADD_LIBRARY(mysql_old_password MODULE ${OLDPASSWORD_SOURCES})
|
||||||
SET_TARGET_PROPERTIES(mysql_old_password PROPERTIES PREFIX "")
|
SET_TARGET_PROPERTIES(mysql_old_password PROPERTIES PREFIX "")
|
||||||
INSTALL_PLUGIN(mysql_old_password ${CMAKE_BINARY_DIR}/plugins/auth)
|
INSTALL_PLUGIN(mysql_old_password ${CMAKE_BINARY_DIR}/plugins/auth)
|
||||||
SIGN_TARGET(mysql_old_password)
|
SIGN_TARGET(mysql_old_password)
|
||||||
@@ -60,7 +60,7 @@ IF(AUTH_CLEARTEXT_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(CTEXT_SOURCES ${CTEXT_SOURCES} ${mysql_clear_password_RC} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
SET(CTEXT_SOURCES ${CTEXT_SOURCES} ${mysql_clear_password_RC} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_LIBRARY(mysql_clear_password SHARED ${CTEXT_SOURCES})
|
ADD_LIBRARY(mysql_clear_password MODULE ${CTEXT_SOURCES})
|
||||||
SET_TARGET_PROPERTIES(mysql_clear_password PROPERTIES PREFIX "")
|
SET_TARGET_PROPERTIES(mysql_clear_password PROPERTIES PREFIX "")
|
||||||
INSTALL_PLUGIN(mysql_clear_password ${CMAKE_BINARY_DIR}/plugins/auth)
|
INSTALL_PLUGIN(mysql_clear_password ${CMAKE_BINARY_DIR}/plugins/auth)
|
||||||
SIGN_TARGET(mysql_clear_password)
|
SIGN_TARGET(mysql_clear_password)
|
||||||
@@ -87,7 +87,7 @@ IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC")
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(GSSAPI_FOUND OR WIN32)
|
IF(GSSAPI_FOUND OR WIN32)
|
||||||
ADD_LIBRARY(auth_gssapi_client SHARED ${GSSAPI_SOURCES})
|
ADD_LIBRARY(auth_gssapi_client MODULE ${GSSAPI_SOURCES})
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
TARGET_LINK_LIBRARIES(auth_gssapi_client secur32.lib)
|
TARGET_LINK_LIBRARIES(auth_gssapi_client secur32.lib)
|
||||||
ELSE()
|
ELSE()
|
||||||
|
@@ -14,7 +14,7 @@ IF(REPLICATION_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
"FILE_DESCRIPTION:Connection plugin for master/slave environment")
|
"FILE_DESCRIPTION:Connection plugin for master/slave environment")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DHAVE_REPLICATION_DYNAMIC=1)
|
ADD_DEFINITIONS(-DHAVE_REPLICATION_DYNAMIC=1)
|
||||||
ADD_LIBRARY(replication SHARED ${replication_RC} replication.c ${EXPORT_FILE})
|
ADD_LIBRARY(replication MODULE ${replication_RC} replication.c ${EXPORT_FILE})
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
TARGET_LINK_LIBRARIES(replication libmariadb)
|
TARGET_LINK_LIBRARIES(replication libmariadb)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@@ -30,7 +30,7 @@ IF(AURORA_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
"FILE_DESCRIPTION:Connection plugin for Amazon AWS Aurora")
|
"FILE_DESCRIPTION:Connection plugin for Amazon AWS Aurora")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DHAVE_AURORA_DYNAMIC=1)
|
ADD_DEFINITIONS(-DHAVE_AURORA_DYNAMIC=1)
|
||||||
ADD_LIBRARY(aurora SHARED ${aurora_RC} aurora.c ${EXPORT_FILE})
|
ADD_LIBRARY(aurora MODULE ${aurora_RC} aurora.c ${EXPORT_FILE})
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
TARGET_LINK_LIBRARIES(aurora libmariadb)
|
TARGET_LINK_LIBRARIES(aurora libmariadb)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@@ -18,7 +18,7 @@ IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
|
||||||
SET(REMOTE_IO_SOURCES ${remote_io_RC} remote_io.c)
|
SET(REMOTE_IO_SOURCES ${remote_io_RC} remote_io.c)
|
||||||
ADD_DEFINITIONS(-DHAVE_REMOTEIO_DYNAMIC=1)
|
ADD_DEFINITIONS(-DHAVE_REMOTEIO_DYNAMIC=1)
|
||||||
ADD_LIBRARY(remote_io SHARED ${REMOTE_IO_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
ADD_LIBRARY(remote_io MODULE ${REMOTE_IO_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
||||||
TARGET_LINK_LIBRARIES(remote_io ${CURL_LIBRARIES})
|
TARGET_LINK_LIBRARIES(remote_io ${CURL_LIBRARIES})
|
||||||
SET_TARGET_PROPERTIES(remote_io PROPERTIES PREFIX "")
|
SET_TARGET_PROPERTIES(remote_io PROPERTIES PREFIX "")
|
||||||
INSTALL_PLUGIN(remote_io ${CMAKE_BINARY_DIR}/plugins/io)
|
INSTALL_PLUGIN(remote_io ${CMAKE_BINARY_DIR}/plugins/io)
|
||||||
|
@@ -20,7 +20,7 @@ IF(SOCKET_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
"FILE_DESCRIPTION:VIO plugin for socket communication")
|
"FILE_DESCRIPTION:VIO plugin for socket communication")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DHAVE_SOCKET_DYNAMIC=1)
|
ADD_DEFINITIONS(-DHAVE_SOCKET_DYNAMIC=1)
|
||||||
ADD_LIBRARY(pvio_socket SHARED ${pvio_socket_RC} pvio_socket.c ${EXPORT_FILE})
|
ADD_LIBRARY(pvio_socket MODULE ${pvio_socket_RC} pvio_socket.c ${EXPORT_FILE})
|
||||||
INSTALL_PLUGIN(pvio_socket ${CMAKE_BINARY_DIR}/plugins/pvio)
|
INSTALL_PLUGIN(pvio_socket ${CMAKE_BINARY_DIR}/plugins/pvio)
|
||||||
SIGN_TARGET(pvio_socket)
|
SIGN_TARGET(pvio_socket)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@@ -35,7 +35,7 @@ IF(WIN32)
|
|||||||
"FILE_DESCRIPTION:VIO plugin for named pipe communication")
|
"FILE_DESCRIPTION:VIO plugin for named pipe communication")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_DEFINITIONS(-DHAVE_NPIPE_DYNAMIC=1)
|
ADD_DEFINITIONS(-DHAVE_NPIPE_DYNAMIC=1)
|
||||||
ADD_LIBRARY(pvio_npipe SHARED ${pvio_npipe_RC} pvio_npipe.c ${EXPORT_FILE})
|
ADD_LIBRARY(pvio_npipe MODULE ${pvio_npipe_RC} pvio_npipe.c ${EXPORT_FILE})
|
||||||
INSTALL_PLUGIN(pvio_npipe ${CMAKE_BINARY_DIR}/plugins/pvio)
|
INSTALL_PLUGIN(pvio_npipe ${CMAKE_BINARY_DIR}/plugins/pvio)
|
||||||
SIGN_TARGET(pvio_npipe)
|
SIGN_TARGET(pvio_npipe)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@@ -48,7 +48,7 @@ IF(WIN32)
|
|||||||
"ORIGINAL_FILE_NAME:pvio_shmem.dll"
|
"ORIGINAL_FILE_NAME:pvio_shmem.dll"
|
||||||
"FILE_DESCRIPTION:VIO plugin for shared memory communication")
|
"FILE_DESCRIPTION:VIO plugin for shared memory communication")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_LIBRARY(pvio_shmem SHARED ${pvio_shmem_RC} pvio_shmem.c ${EXPORT_FILE})
|
ADD_LIBRARY(pvio_shmem MODULE ${pvio_shmem_RC} pvio_shmem.c ${EXPORT_FILE})
|
||||||
INSTALL_PLUGIN(pvio_shmem ${CMAKE_BINARY_DIR}/plugins/pvio)
|
INSTALL_PLUGIN(pvio_shmem ${CMAKE_BINARY_DIR}/plugins/pvio)
|
||||||
SIGN_TARGET(pvio_shmem)
|
SIGN_TARGET(pvio_shmem)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@@ -18,7 +18,7 @@ IF(TRACE_EXAMPLE_PLUGIN_TYPE MATCHES "DYNAMIC")
|
|||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(TRACE_EXAMPLE_SOURCES ${TRACE_EXAMPLE_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
SET(TRACE_EXAMPLE_SOURCES ${TRACE_EXAMPLE_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_LIBRARY(trace_example SHARED ${TRACE_EXAMPLE_SOURCES})
|
ADD_LIBRARY(trace_example MODULE ${TRACE_EXAMPLE_SOURCES})
|
||||||
SET_TARGET_PROPERTIES(trace_example PROPERTIES PREFIX "")
|
SET_TARGET_PROPERTIES(trace_example PROPERTIES PREFIX "")
|
||||||
INSTALL_PLUGIN(trace_example ${CMAKE_BINARY_DIR}/plugins/trace)
|
INSTALL_PLUGIN(trace_example ${CMAKE_BINARY_DIR}/plugins/trace)
|
||||||
SIGN_TARGET(trace_example)
|
SIGN_TARGET(trace_example)
|
||||||
|
@@ -2339,10 +2339,6 @@ static int test_bug4172(MYSQL *mysql)
|
|||||||
char f[100], d[100], e[100];
|
char f[100], d[100], e[100];
|
||||||
ulong f_len, d_len, e_len;
|
ulong f_len, d_len, e_len;
|
||||||
|
|
||||||
diag("numeric precision in ps not fixed now");
|
|
||||||
return SKIP;
|
|
||||||
|
|
||||||
|
|
||||||
mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
||||||
mysql_query(mysql, "CREATE TABLE t1 (f float, d double, e decimal(10,4))");
|
mysql_query(mysql, "CREATE TABLE t1 (f float, d double, e decimal(10,4))");
|
||||||
mysql_query(mysql, "INSERT INTO t1 VALUES (12345.1234, 123456.123456, "
|
mysql_query(mysql, "INSERT INTO t1 VALUES (12345.1234, 123456.123456, "
|
||||||
@@ -2378,6 +2374,7 @@ static int test_bug4172(MYSQL *mysql)
|
|||||||
row= mysql_fetch_row(res);
|
row= mysql_fetch_row(res);
|
||||||
|
|
||||||
diag("expected %s %s %s", row[0], row[1], row[2]);
|
diag("expected %s %s %s", row[0], row[1], row[2]);
|
||||||
|
diag("fetched %s %s %s", f, d, e);
|
||||||
FAIL_UNLESS(!strcmp(f, row[0]) && !strcmp(d, row[1]) && !strcmp(e, row[2]), "");
|
FAIL_UNLESS(!strcmp(f, row[0]) && !strcmp(d, row[1]) && !strcmp(e, row[2]), "");
|
||||||
|
|
||||||
mysql_free_result(res);
|
mysql_free_result(res);
|
||||||
|
Reference in New Issue
Block a user