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
|
Description: Fix conversion of YEAR type
libmysqlclient treats YEAR as a short int, but this package thought it was an int4.
Author: Christian Hofstaedtler <zeha@debian.org>
Origin: vendor
Forwarded: no
Last-Update: 2016-02-27
---
--- a/ext/mysql2/result.c
+++ b/ext/mysql2/result.c
@@ -278,12 +278,12 @@ static void rb_mysql_result_alloc_result
wrapper->result_buffers[i].buffer_length = sizeof(signed char);
break;
case MYSQL_TYPE_SHORT: // short int
+ case MYSQL_TYPE_YEAR: // short int
wrapper->result_buffers[i].buffer = xcalloc(1, sizeof(short int));
wrapper->result_buffers[i].buffer_length = sizeof(short int);
break;
case MYSQL_TYPE_INT24: // int
case MYSQL_TYPE_LONG: // int
- case MYSQL_TYPE_YEAR: // int
wrapper->result_buffers[i].buffer = xcalloc(1, sizeof(int));
wrapper->result_buffers[i].buffer_length = sizeof(int);
break;
@@ -406,6 +406,7 @@ static VALUE rb_mysql_result_fetch_row_s
}
break;
case MYSQL_TYPE_SHORT: // short int
+ case MYSQL_TYPE_YEAR: // short int
if (result_buffer->is_unsigned) {
val = UINT2NUM(*((unsigned short int*)result_buffer->buffer));
} else {
@@ -414,7 +415,6 @@ static VALUE rb_mysql_result_fetch_row_s
break;
case MYSQL_TYPE_INT24: // int
case MYSQL_TYPE_LONG: // int
- case MYSQL_TYPE_YEAR: // int
if (result_buffer->is_unsigned) {
val = UINT2NUM(*((unsigned int*)result_buffer->buffer));
} else {
|