745
748
fprintf(stdout, "\n org_table:`%s`\t(expected: `%s`)",
746
749
field->org_table, org_table);
747
750
fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db);
748
fprintf(stdout, "\n length :`%lu`\t(expected: `%lu`)",
749
field->length, length * cs->mbmaxlen);
751
fprintf(stdout, "\n length :`%lu`\t(expected: `%llu`)",
752
field->length, expected_field_length);
750
753
fprintf(stdout, "\n maxlength:`%ld`", field->max_length);
751
754
fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr);
752
755
fprintf(stdout, "\n default :`%s`\t(expected: `%s`)",
782
785
as utf8. Field length is calculated as number of characters * maximum
783
786
number of bytes a character can occupy.
785
if (length && field->length != length * cs->mbmaxlen)
788
if (length && (field->length != expected_field_length))
787
fprintf(stderr, "Expected field length: %d, got length: %d\n",
788
(int) (length * cs->mbmaxlen), (int) field->length);
789
DIE_UNLESS(field->length == length * cs->mbmaxlen);
790
fprintf(stderr, "Expected field length: %llu, got length: %lu\n",
791
expected_field_length, field->length);
792
DIE_UNLESS(field->length == expected_field_length);
792
795
DIE_UNLESS(strcmp(field->def, def) == 0);
17713
17716
DBUG_VOID_RETURN;
17721
Bug#36326: nested transaction and select
17724
#ifdef HAVE_QUERY_CACHE
17726
static void test_bug36326()
17730
DBUG_ENTER("test_bug36326");
17731
myheader("test_bug36326");
17733
rc= mysql_autocommit(mysql, TRUE);
17735
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
17737
rc= mysql_query(mysql, "CREATE TABLE t1 (a INTEGER)");
17739
rc= mysql_query(mysql, "INSERT INTO t1 VALUES (1)");
17741
rc= mysql_query(mysql, "SET GLOBAL query_cache_type = 1");
17743
rc= mysql_query(mysql, "SET GLOBAL query_cache_size = 1048576");
17745
DIE_UNLESS(!(mysql->server_status & SERVER_STATUS_IN_TRANS));
17746
DIE_UNLESS(mysql->server_status & SERVER_STATUS_AUTOCOMMIT);
17747
rc= mysql_query(mysql, "BEGIN");
17749
DIE_UNLESS(mysql->server_status & SERVER_STATUS_IN_TRANS);
17750
rc= mysql_query(mysql, "SELECT * FROM t1");
17752
rc= my_process_result(mysql);
17753
DIE_UNLESS(rc == 1);
17754
rc= mysql_rollback(mysql);
17756
rc= mysql_query(mysql, "ROLLBACK");
17758
DIE_UNLESS(!(mysql->server_status & SERVER_STATUS_IN_TRANS));
17759
rc= mysql_query(mysql, "SELECT * FROM t1");
17761
DIE_UNLESS(!(mysql->server_status & SERVER_STATUS_IN_TRANS));
17762
rc= my_process_result(mysql);
17763
DIE_UNLESS(rc == 1);
17764
rc= mysql_query(mysql, "DROP TABLE t1");
17766
rc= mysql_query(mysql, "SET GLOBAL query_cache_size = 0");
17775
Bug#41078: With CURSOR_TYPE_READ_ONLY mysql_stmt_fetch() returns short
17779
static void test_bug41078(void)
17782
MYSQL_STMT *stmt= 0;
17783
MYSQL_BIND param, result;
17784
ulong cursor_type= CURSOR_TYPE_READ_ONLY;
17787
const char param_str[]= "abcdefghijklmn";
17788
my_bool is_null, error;
17790
DBUG_ENTER("test_bug41078");
17792
rc= mysql_query(mysql, "SET NAMES UTF8");
17795
stmt= mysql_simple_prepare(mysql, "SELECT ?");
17797
verify_param_count(stmt, 1);
17799
rc= mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, &cursor_type);
17800
check_execute(stmt, rc);
17802
bzero(¶m, sizeof(param));
17803
param.buffer_type= MYSQL_TYPE_STRING;
17804
param.buffer= (void *) param_str;
17805
len= sizeof(param_str) - 1;
17806
param.length= &len;
17808
rc= mysql_stmt_bind_param(stmt, ¶m);
17809
check_execute(stmt, rc);
17811
rc= mysql_stmt_execute(stmt);
17812
check_execute(stmt, rc);
17814
bzero(&result, sizeof(result));
17815
result.buffer_type= MYSQL_TYPE_STRING;
17816
result.buffer= str;
17817
result.buffer_length= sizeof(str);
17818
result.is_null= &is_null;
17819
result.length= &len;
17820
result.error= &error;
17822
rc= mysql_stmt_bind_result(stmt, &result);
17823
check_execute(stmt, rc);
17825
rc= mysql_stmt_store_result(stmt);
17826
check_execute(stmt, rc);
17828
rc= mysql_stmt_fetch(stmt);
17829
check_execute(stmt, rc);
17831
DIE_UNLESS(len == sizeof(param_str) - 1 && !strcmp(str, param_str));
17833
mysql_stmt_close(stmt);
17716
17839
Read and parse arguments and MySQL options from my.cnf