diff options
author | unknown <monty@mysql.com> | 2004-04-30 14:24:06 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-04-30 14:24:06 +0300 |
commit | 7bf15f4b7956b6f57ec6f695382e4589814c2d79 (patch) | |
tree | 2b276018e20491b28c92dabd57798ede13ed56df /tests | |
parent | 72c7b3529e02d5b4b4e8ba1c907dea8b7eb743ea (diff) | |
download | mariadb-git-7bf15f4b7956b6f57ec6f695382e4589814c2d79.tar.gz |
Only calculate MYSQL_FIELD->max_length if mysql_stmt_attr_set(..., STMT_ATTR_UPDATE_MAX_LENGTH) is done.
tests/client_test.c:
Test mysql_stmt_attr_set(...STMT_ATTR_UPDATE_MAX_LENGTH)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/client_test.c | 68 |
1 files changed, 42 insertions, 26 deletions
diff --git a/tests/client_test.c b/tests/client_test.c index 7f2ed177fc9..8aaa9983bc9 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -100,7 +100,7 @@ if (r) \ assert(r == 0);\ } -#define mystmt_r(stmt,r) \ +#define check_execute_r(stmt,r) \ { \ if (r) \ mysterror(stmt,NULL); \ @@ -1486,15 +1486,15 @@ static void test_ps_null_param() { strmov(query, *cur_query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); rc = mysql_bind_param(stmt,&in_bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_bind_result(stmt,&out_bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_fetch(stmt); assert(rc != MYSQL_NO_DATA); assert(out_is_null); @@ -2437,6 +2437,7 @@ static void test_long_data_str1() char data[255]; long length, length1; ulong max_blob_length, blob_length; + my_bool true_value; MYSQL_RES *result; MYSQL_BIND bind[2]; MYSQL_FIELD *field; @@ -2534,6 +2535,22 @@ static void test_long_data_str1() result= mysql_get_metadata(stmt); field= mysql_fetch_fields(result); + /* First test what happens if STMT_ATTR_UPDATE_MAX_LENGTH is not used */ + DBUG_ASSERT(field->max_length == 0); + mysql_free_result(result); + + /* Enable updating of field->max_length */ + true_value= 1; + mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &true_value); + rc = mysql_execute(stmt); + check_execute(stmt,rc); + + rc= mysql_stmt_store_result(stmt); + check_execute(stmt,rc); + + result= mysql_get_metadata(stmt); + field= mysql_fetch_fields(result); + DBUG_ASSERT(field->max_length == max_blob_length); /* Fetch results into a data buffer that is smaller than data */ @@ -5784,7 +5801,7 @@ static void test_pure_coverage() bind[0].buffer_type= MYSQL_TYPE_GEOMETRY; rc = mysql_bind_param(stmt, bind); - mystmt_r(stmt, rc); /* unsupported buffer type */ + check_execute_r(stmt, rc); /* unsupported buffer type */ bind[0].buffer_type= MYSQL_TYPE_STRING; rc = mysql_bind_param(stmt, bind); @@ -5803,13 +5820,13 @@ static void test_pure_coverage() bind[0].buffer_type= MYSQL_TYPE_GEOMETRY; rc = mysql_bind_result(stmt, bind); - mystmt_r(stmt, rc); /* unsupported buffer type */ + check_execute_r(stmt, rc); /* unsupported buffer type */ rc = mysql_stmt_store_result(stmt); check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt_r(stmt, rc); /* commands out of sync */ + check_execute_r(stmt, rc); /* commands out of sync */ mysql_stmt_close(stmt); @@ -7443,7 +7460,7 @@ static void test_fetch_offset() check_execute(stmt,rc); rc = mysql_fetch_column(stmt,bind,0,0); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); rc = mysql_bind_result(stmt, bind); check_execute(stmt,rc); @@ -7484,7 +7501,7 @@ static void test_fetch_offset() assert(rc == MYSQL_NO_DATA); rc = mysql_fetch_column(stmt,bind,1,0); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); mysql_stmt_close(stmt); } @@ -7534,7 +7551,7 @@ static void test_fetch_column() check_execute(stmt,rc); rc = mysql_fetch_column(stmt,bind,1,0); /* No-op at this point */ - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); rc = mysql_fetch(stmt); check_execute(stmt,rc); @@ -7610,7 +7627,7 @@ static void test_fetch_column() assert(rc == MYSQL_NO_DATA); rc = mysql_fetch_column(stmt,bind,1,0); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); mysql_stmt_close(stmt); } @@ -8464,11 +8481,11 @@ static void test_bug2248() /* This should not hang */ rc= mysql_fetch(stmt); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); /* And this too */ rc= mysql_stmt_store_result(stmt); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); mysql_stmt_close(stmt); @@ -8488,7 +8505,7 @@ static void test_bug2248() /* This should return proper error */ rc= mysql_fetch(stmt); - mystmt_r(stmt,rc); + check_execute_r(stmt,rc); assert(rc==MYSQL_NO_DATA); mysql_stmt_close(stmt); @@ -8833,7 +8850,7 @@ static void test_rename() myquery(rc); rc= mysql_execute(stmt); - mystmt_r(stmt, rc); + check_execute_r(stmt, rc); fprintf(stdout, "rename without t3\n"); rc= mysql_query(mysql,"create table t3 (a int)"); @@ -8844,7 +8861,7 @@ static void test_rename() fprintf(stdout, "rename with t3\n"); rc= mysql_execute(stmt); - mystmt_r(stmt, rc); + check_execute_r(stmt, rc); fprintf(stdout, "rename renamed\n"); rc= mysql_query(mysql,"rename table t2 to t1, t4 to t3"); @@ -9246,13 +9263,12 @@ static void test_bug3035() bind_array[7].is_unsigned= 1; stmt= mysql_stmt_init(mysql); - - mystmt_init(stmt); + check_stmt(stmt); stmt_text= "INSERT INTO t1 (i8, ui8, i16, ui16, i32, ui32, i64, ui64) " "VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; rc= mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text)); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_bind_param(stmt, bind_array); @@ -9266,7 +9282,7 @@ static void test_bug3035() uint64_val= uint64_min; rc= mysql_stmt_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); int8_val= int8_max; uint8_val= uint8_max; @@ -9278,21 +9294,21 @@ static void test_bug3035() uint64_val= uint64_max; mysql_stmt_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); stmt_text= "SELECT i8, ui8, i16, ui16, i32, ui32, i64, ui64 " "FROM t1 ORDER BY id ASC"; mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text)); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_bind_result(stmt, bind_array); rc= mysql_stmt_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(int8_val == int8_min); assert(uint8_val == uint8_min); @@ -9304,7 +9320,7 @@ static void test_bug3035() assert(uint64_val == uint64_min); rc= mysql_stmt_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(int8_val == int8_max); assert(uint8_val == uint8_max); |