summaryrefslogtreecommitdiff
path: root/libmysql/libmysql.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmysql/libmysql.c')
-rw-r--r--libmysql/libmysql.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index cea8ce3a499..380e53d7d47 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -3339,6 +3339,7 @@ static void fetch_string_with_conversion(MYSQL_BIND *param, char *value,
}
case MYSQL_TYPE_DATE:
case MYSQL_TYPE_DATETIME:
+ case MYSQL_TYPE_TIMESTAMP:
{
MYSQL_TIME *tm= (MYSQL_TIME *)buffer;
str_to_datetime(value, length, tm, 0, &err);
@@ -3393,7 +3394,7 @@ static void fetch_long_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
longlong value)
{
char *buffer= (char *)param->buffer;
- uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
+ uint field_is_unsigned= field->flags & UNSIGNED_FLAG;
switch (param->buffer_type) {
case MYSQL_TYPE_NULL: /* do nothing */
@@ -3429,7 +3430,7 @@ static void fetch_long_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
char buff[22]; /* Enough for longlong */
char *end= longlong10_to_str(value, buff, field_is_unsigned ? 10: -10);
/* Resort to string conversion which supports all typecodes */
- fetch_string_with_conversion(param, buff, end - buff);
+ fetch_string_with_conversion(param, buff, (uint) (end - buff));
break;
}
}
@@ -3505,7 +3506,7 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
sprintf(buff, "%.*f", (int) field->decimals, value);
end= strend(buff);
}
- fetch_string_with_conversion(param, buff, end - buff);
+ fetch_string_with_conversion(param, buff, (uint) (end - buff));
break;
}
}
@@ -3590,14 +3591,14 @@ static void fetch_result_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
{
ulong length;
enum enum_field_types field_type= field->type;
+ uint field_is_unsigned= field->flags & UNSIGNED_FLAG;
switch (field_type) {
case MYSQL_TYPE_TINY:
{
char value= (char) **row;
- uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
- longlong data= (field_is_unsigned) ? (longlong) (unsigned char) value:
- (longlong) value;
+ longlong data= field_is_unsigned ? (longlong) (unsigned char) value :
+ (longlong) value;
fetch_long_with_conversion(param, field, data);
length= 1;
break;
@@ -3606,19 +3607,18 @@ static void fetch_result_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
case MYSQL_TYPE_YEAR:
{
short value= sint2korr(*row);
- uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
- longlong data= ((field_is_unsigned) ? (longlong) (unsigned short) value:
- (longlong) value);
+ longlong data= field_is_unsigned ? (longlong) (unsigned short) value :
+ (longlong) value;
fetch_long_with_conversion(param, field, data);
length= 2;
break;
}
+ case MYSQL_TYPE_INT24: /* mediumint is sent as 4 bytes int */
case MYSQL_TYPE_LONG:
{
long value= sint4korr(*row);
- uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
- longlong data= ((field_is_unsigned) ? (longlong) (unsigned long) value:
- (longlong) value);
+ longlong data= field_is_unsigned ? (longlong) (unsigned long) value :
+ (longlong) value;
fetch_long_with_conversion(param, field, data);
length= 4;
break;