mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Some comments regarding Bug#6275 ""client_test" fail in 4.1.7 make test"
This commit is contained in:
parent
6aab88c916
commit
a8ba534cee
1 changed files with 19 additions and 3 deletions
|
@ -635,12 +635,15 @@ static void verify_prepare_field(MYSQL_RES *result,
|
|||
unsigned long length, const char *def)
|
||||
{
|
||||
MYSQL_FIELD *field;
|
||||
CHARSET_INFO *cs;
|
||||
|
||||
if (!(field= mysql_fetch_field_direct(result, no)))
|
||||
{
|
||||
fprintf(stdout, "\n *** ERROR: FAILED TO GET THE RESULT ***");
|
||||
exit(1);
|
||||
}
|
||||
cs= get_charset(field->charsetnr, 0);
|
||||
DIE_UNLESS(cs);
|
||||
if (!opt_silent)
|
||||
{
|
||||
fprintf(stdout, "\n field[%d]:", no);
|
||||
|
@ -654,7 +657,7 @@ static void verify_prepare_field(MYSQL_RES *result,
|
|||
field->org_table, org_table);
|
||||
fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db);
|
||||
fprintf(stdout, "\n length :`%ld`\t(expected: `%ld`)",
|
||||
field->length, length);
|
||||
field->length, length * cs->mbmaxlen);
|
||||
fprintf(stdout, "\n maxlength:`%ld`", field->max_length);
|
||||
fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr);
|
||||
fprintf(stdout, "\n default :`%s`\t(expected: `%s`)",
|
||||
|
@ -663,11 +666,24 @@ static void verify_prepare_field(MYSQL_RES *result,
|
|||
}
|
||||
DIE_UNLESS(strcmp(field->name, name) == 0);
|
||||
DIE_UNLESS(strcmp(field->org_name, org_name) == 0);
|
||||
DIE_UNLESS(field->type == type);
|
||||
/*
|
||||
XXX: silent column specification change works based on number of
|
||||
bytes a column occupies. So CHAR -> VARCHAR upgrade is possible even
|
||||
for CHAR(2) column if its character set is multibyte.
|
||||
VARCHAR -> CHAR downgrade won't work for VARCHAR(3) as one would
|
||||
expect.
|
||||
*/
|
||||
if (cs->mbmaxlen == 1)
|
||||
DIE_UNLESS(field->type == type);
|
||||
DIE_UNLESS(strcmp(field->table, table) == 0);
|
||||
DIE_UNLESS(strcmp(field->org_table, org_table) == 0);
|
||||
DIE_UNLESS(strcmp(field->db, db) == 0);
|
||||
DIE_UNLESS(field->length == length);
|
||||
/*
|
||||
Character set should be taken into account for multibyte encodings, such
|
||||
as utf8. Field length is calculated as number of characters * maximum
|
||||
number of bytes a character can occupy.
|
||||
*/
|
||||
DIE_UNLESS(field->length == length * cs->mbmaxlen);
|
||||
if (def)
|
||||
DIE_UNLESS(strcmp(field->def, def) == 0);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue