mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
A fix and a test case for Bug#9735.
No separate typecode for MEDIUMTEXT/LONGTEXT is added, as we have no sound decision yet what typecodes and for what types are sent by the server (aka what constitutes a distinct type in MySQL). mysql-test/r/ps_2myisam.result: Test results fixed: new longtext/longblob length (2^32) mysql-test/r/ps_3innodb.result: Test results fixed: new longtext/longblob length (2^32) mysql-test/r/ps_4heap.result: Test results fixed: new longtext/longblob length (2^32) mysql-test/r/ps_5merge.result: Test results fixed: new longtext/longblob length (2^32) mysql-test/r/ps_6bdb.result: Test results fixed: new longtext/longblob length (2^32) mysql-test/r/ps_7ndb.result: Test results fixed: new longtext/longblob length (2^32) sql/field.cc: A fix for Bug#9735 "mysql_fetch_fields() acts strange on LONGBLOB/LONGTEXT": fix wrong initialization of field_length in case of BLOB fields. tests/mysql_client_test.c: A test case for Bug#9735 "mysql_fetch_fields() acts strange on LONGBLOB/LONGTEXT"
This commit is contained in:
@ -672,7 +672,7 @@ static void verify_prepare_field(MYSQL_RES *result,
|
||||
fprintf(stdout, "\n org_table:`%s`\t(expected: `%s`)",
|
||||
field->org_table, org_table);
|
||||
fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db);
|
||||
fprintf(stdout, "\n length :`%ld`\t(expected: `%ld`)",
|
||||
fprintf(stdout, "\n length :`%lu`\t(expected: `%lu`)",
|
||||
field->length, length * cs->mbmaxlen);
|
||||
fprintf(stdout, "\n maxlength:`%ld`", field->max_length);
|
||||
fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr);
|
||||
@ -11670,6 +11670,34 @@ static void test_bug8378()
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* Test correct max length for MEDIUMTEXT and LONGTEXT columns */
|
||||
|
||||
static void test_bug9735()
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
int rc;
|
||||
|
||||
myheader("test_bug9735");
|
||||
|
||||
rc= mysql_query(mysql, "drop table if exists t1");
|
||||
myquery(rc);
|
||||
rc= mysql_query(mysql, "create table t1 (a mediumtext, b longtext) "
|
||||
"character set latin1");
|
||||
myquery(rc);
|
||||
rc= mysql_query(mysql, "select * from t1");
|
||||
myquery(rc);
|
||||
res= mysql_store_result(mysql);
|
||||
verify_prepare_field(res, 0, "a", "a", MYSQL_TYPE_BLOB,
|
||||
"t1", "t1", current_db, (1U << 24)-1, 0);
|
||||
verify_prepare_field(res, 1, "b", "b", MYSQL_TYPE_BLOB,
|
||||
"t1", "t1", current_db, ~0U, 0);
|
||||
mysql_free_result(res);
|
||||
rc= mysql_query(mysql, "drop table t1");
|
||||
myquery(rc);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Read and parse arguments and MySQL options from my.cnf
|
||||
*/
|
||||
@ -11884,6 +11912,7 @@ static struct my_tests_st my_tests[]= {
|
||||
{ "test_bug8330", test_bug8330 },
|
||||
{ "test_bug7990", test_bug7990 },
|
||||
{ "test_bug8378", test_bug8378 },
|
||||
{ "test_bug9735", test_bug9735 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user