mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/opt/local/work/mysql-4.1-15613
into mysql.com:/opt/local/work/mysql-5.0-root
This commit is contained in:
@ -14638,7 +14638,70 @@ static void test_bug16144()
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
Bug #15613: "libmysqlclient API function mysql_stmt_prepare returns wrong
|
||||
field length"
|
||||
*/
|
||||
|
||||
static void test_bug15613()
|
||||
{
|
||||
MYSQL_STMT *stmt;
|
||||
const char *stmt_text;
|
||||
MYSQL_RES *metadata;
|
||||
MYSQL_FIELD *field;
|
||||
int rc;
|
||||
myheader("test_bug15613");
|
||||
|
||||
/* I. Prepare the table */
|
||||
rc= mysql_query(mysql, "set names latin1");
|
||||
myquery(rc);
|
||||
mysql_query(mysql, "drop table if exists t1");
|
||||
rc= mysql_query(mysql,
|
||||
"create table t1 (t text character set utf8, "
|
||||
"tt tinytext character set utf8, "
|
||||
"mt mediumtext character set utf8, "
|
||||
"lt longtext character set utf8, "
|
||||
"vl varchar(255) character set latin1,"
|
||||
"vb varchar(255) character set binary,"
|
||||
"vu varchar(255) character set utf8)");
|
||||
myquery(rc);
|
||||
|
||||
stmt= mysql_stmt_init(mysql);
|
||||
|
||||
/* II. Check SELECT metadata */
|
||||
stmt_text= ("select t, tt, mt, lt, vl, vb, vu from t1");
|
||||
rc= mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text));
|
||||
metadata= mysql_stmt_result_metadata(stmt);
|
||||
field= mysql_fetch_fields(metadata);
|
||||
if (!opt_silent)
|
||||
{
|
||||
printf("Field lengths (client character set is latin1):\n"
|
||||
"text character set utf8:\t\t%lu\n"
|
||||
"tinytext character set utf8:\t\t%lu\n"
|
||||
"mediumtext character set utf8:\t\t%lu\n"
|
||||
"longtext character set utf8:\t\t%lu\n"
|
||||
"varchar(255) character set latin1:\t%lu\n"
|
||||
"varchar(255) character set binary:\t%lu\n"
|
||||
"varchar(255) character set utf8:\t%lu\n",
|
||||
field[0].length, field[1].length, field[2].length, field[3].length,
|
||||
field[4].length, field[5].length, field[6].length);
|
||||
}
|
||||
DIE_UNLESS(field[0].length == 65535);
|
||||
DIE_UNLESS(field[1].length == 255);
|
||||
DIE_UNLESS(field[2].length == 16777215);
|
||||
DIE_UNLESS(field[3].length == 4294967295UL);
|
||||
DIE_UNLESS(field[4].length == 255);
|
||||
DIE_UNLESS(field[5].length == 255);
|
||||
DIE_UNLESS(field[6].length == 255);
|
||||
|
||||
/* III. Cleanup */
|
||||
rc= mysql_query(mysql, "drop table t1");
|
||||
myquery(rc);
|
||||
rc= mysql_query(mysql, "set names default");
|
||||
myquery(rc);
|
||||
mysql_stmt_close(stmt);
|
||||
}
|
||||
|
||||
@ -14903,6 +14966,7 @@ static struct my_tests_st my_tests[]= {
|
||||
{ "test_bug14845", test_bug14845 },
|
||||
{ "test_bug15510", test_bug15510},
|
||||
{ "test_bug16144", test_bug16144 },
|
||||
{ "test_bug15613", test_bug15613 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user