mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Fix for verification tests: truncation of post digits should not return an error
This commit is contained in:
parent
44dcec99b1
commit
b3a2a3d6d9
1 changed files with 5 additions and 4 deletions
|
@ -3656,6 +3656,7 @@ static void fetch_long_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
|
|||
}
|
||||
}
|
||||
|
||||
#define MY_TRUNC(val) (val < 0 ? - floor(-val) : floor(val))
|
||||
|
||||
/*
|
||||
Convert double/float column to supplied buffer of any type.
|
||||
|
@ -3688,7 +3689,7 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
|
|||
*buffer= (uint8) value;
|
||||
else
|
||||
*buffer= (int8) value;
|
||||
*param->error= value != (param->is_unsigned ? (double) ((uint8) *buffer) :
|
||||
*param->error= MY_TRUNC(value) != (param->is_unsigned ? (double) ((uint8) *buffer) :
|
||||
(double) ((int8) *buffer));
|
||||
break;
|
||||
case MYSQL_TYPE_SHORT:
|
||||
|
@ -3702,7 +3703,7 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
|
|||
short data= (short) value;
|
||||
shortstore(buffer, data);
|
||||
}
|
||||
*param->error= value != (param->is_unsigned ? (double) (*(ushort*) buffer):
|
||||
*param->error= MY_TRUNC(value) != (param->is_unsigned ? (double) (*(ushort*) buffer):
|
||||
(double) (*(short*) buffer));
|
||||
break;
|
||||
case MYSQL_TYPE_LONG:
|
||||
|
@ -3716,7 +3717,7 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
|
|||
int32 data= (int32) value;
|
||||
longstore(buffer, data);
|
||||
}
|
||||
*param->error= value != (param->is_unsigned ? (double) (*(uint32*) buffer):
|
||||
*param->error= MY_TRUNC(value) != (param->is_unsigned ? (double) (*(uint32*) buffer):
|
||||
(double) (*(int32*) buffer));
|
||||
break;
|
||||
case MYSQL_TYPE_LONGLONG:
|
||||
|
@ -3730,7 +3731,7 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
|
|||
longlong data= (longlong) value;
|
||||
longlongstore(buffer, data);
|
||||
}
|
||||
*param->error= value != (param->is_unsigned ?
|
||||
*param->error= MY_TRUNC(value) != (param->is_unsigned ?
|
||||
ulonglong2double(*(ulonglong*) buffer) :
|
||||
(double) (*(longlong*) buffer));
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue