A fix and a test case for Bug#16144 "mysql_stmt_attr_get type error":
use the right type in mysql_stmt_attr_get
This commit is contained in:
parent
70bb06685b
commit
19fd36e254
@ -2733,7 +2733,7 @@ my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
|
|||||||
{
|
{
|
||||||
switch (attr_type) {
|
switch (attr_type) {
|
||||||
case STMT_ATTR_UPDATE_MAX_LENGTH:
|
case STMT_ATTR_UPDATE_MAX_LENGTH:
|
||||||
*(unsigned long *) value= stmt->update_max_length;
|
*(my_bool*) value= stmt->update_max_length;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -11753,6 +11753,25 @@ static void test_bug12925()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Bug #16144: mysql_stmt_attr_get type error */
|
||||||
|
|
||||||
|
static void test_bug16144()
|
||||||
|
{
|
||||||
|
const my_bool flag_orig= (my_bool) 0xde;
|
||||||
|
my_bool flag= flag_orig;
|
||||||
|
MYSQL_STMT *stmt;
|
||||||
|
myheader("test_bug16144");
|
||||||
|
|
||||||
|
/* Check that attr_get returns correct data on little and big endian CPUs */
|
||||||
|
stmt= mysql_stmt_init(mysql);
|
||||||
|
mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (const void*) &flag);
|
||||||
|
mysql_stmt_attr_get(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &flag);
|
||||||
|
DIE_UNLESS(flag == flag_orig);
|
||||||
|
|
||||||
|
mysql_stmt_close(stmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Read and parse arguments and MySQL options from my.cnf
|
Read and parse arguments and MySQL options from my.cnf
|
||||||
*/
|
*/
|
||||||
@ -11974,6 +11993,7 @@ static struct my_tests_st my_tests[]= {
|
|||||||
{ "test_bug12001", test_bug12001 },
|
{ "test_bug12001", test_bug12001 },
|
||||||
{ "test_bug11718", test_bug11718 },
|
{ "test_bug11718", test_bug11718 },
|
||||||
{ "test_bug12925", test_bug12925 },
|
{ "test_bug12925", test_bug12925 },
|
||||||
|
{ "test_bug16144", test_bug16144 },
|
||||||
{ 0, 0 }
|
{ 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user