diff --git a/include/mysql.h b/include/mysql.h index a5d8dc4c5f9..41302191066 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -87,8 +87,8 @@ typedef struct st_mysql_field { char *db; /* Database for table */ char *catalog; /* Catalog for table */ char *def; /* Default value (set by mysql_list_fields) */ - unsigned long length; /* Width of column */ - unsigned long max_length; /* Max width of selected set */ + unsigned long length; /* Width of column (create length) */ + unsigned long max_length; /* Max width for selected set */ unsigned int name_length; unsigned int org_name_length; unsigned int table_length; @@ -120,6 +120,7 @@ typedef unsigned long long my_ulonglong; typedef struct st_mysql_rows { struct st_mysql_rows *next; /* list of rows */ MYSQL_ROW data; + ulong length; } MYSQL_ROWS; typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ @@ -547,11 +548,14 @@ typedef struct st_mysql_bind unsigned long offset; /* offset position for char/binary fetch */ unsigned long internal_length; /* Used if length is 0 */ unsigned int param_number; /* For null count and error messages */ + unsigned int pack_length; /* Internal length for packed data */ my_bool is_unsigned; /* set if integer type is unsigned */ my_bool long_data_used; /* If used with mysql_send_long_data */ my_bool internal_is_null; /* Used if is_null is 0 */ void (*store_param_func)(NET *net, struct st_mysql_bind *param); void (*fetch_result)(struct st_mysql_bind *, unsigned char **row); + void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); } MYSQL_BIND; diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index ac6d6b8777a..83346f46c5e 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -85,6 +85,7 @@ my_bool net_flush(NET *net); #define MAX_LONG_DATA_LENGTH 8192 #define unsigned_field(A) ((A)->flags & UNSIGNED_FLAG) +static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data); static void append_wild(char *to,char *end,const char *wild); sig_handler pipe_sig_handler(int sig); static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to, @@ -2529,10 +2530,6 @@ my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, { switch (attr_type) { case STMT_ATTR_UPDATE_MAX_LENGTH: - /* - Do we need a flags variable for all attributes or a bool for each - attribute? - */ stmt->update_max_length= value ? *(const my_bool*) value : 0; break; default: @@ -2549,7 +2546,7 @@ my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, switch (attr_type) { case STMT_ATTR_UPDATE_MAX_LENGTH: *(unsigned long *) value= stmt->update_max_length; - break; + break; default: return TRUE; } @@ -3341,6 +3338,43 @@ static void fetch_result_str(MYSQL_BIND *param, uchar **row) } +/* + functions to calculate max lengths for strings during + mysql_stmt_store_result() +*/ + +static void skip_result_fixed(MYSQL_BIND *param, + MYSQL_FIELD *field __attribute__((unused)), + uchar **row) + +{ + (*row)+= param->pack_length; +} + + +static void skip_result_with_length(MYSQL_BIND *param __attribute__((unused)), + MYSQL_FIELD *field __attribute__((unused)), + uchar **row) + +{ + ulong length= net_field_length(row); + (*row)+= length; +} + + +static void skip_result_string(MYSQL_BIND *param __attribute__((unused)), + MYSQL_FIELD *field, + uchar **row) + +{ + ulong length= net_field_length(row); + (*row)+= length; + if (field->max_length < length) + field->max_length= length; +} + + + /* Setup the bind buffers for resultset processing */ @@ -3348,6 +3382,7 @@ static void fetch_result_str(MYSQL_BIND *param, uchar **row) my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind) { MYSQL_BIND *param, *end; + MYSQL_FIELD *field; ulong bind_count; uint param_count= 0; DBUG_ENTER("mysql_stmt_bind_result"); @@ -3370,7 +3405,9 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind) memcpy((char*) stmt->bind, (char*) bind, sizeof(MYSQL_BIND) * bind_count); - for (param= stmt->bind, end= param+bind_count; param < end ; param++) + for (param= stmt->bind, end= param + bind_count, field= stmt->fields ; + param < end ; + param++, field++) { /* Set param->is_null to point to a dummy variable if it's not set. @@ -3388,15 +3425,18 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind) /* Setup data copy functions for the different supported types */ switch (param->buffer_type) { case MYSQL_TYPE_NULL: /* for dummy binds */ + *param->length= 0; break; case MYSQL_TYPE_TINY: param->fetch_result= fetch_result_tinyint; *param->length= 1; break; case MYSQL_TYPE_SHORT: + case MYSQL_TYPE_YEAR: param->fetch_result= fetch_result_short; *param->length= 2; break; + case MYSQL_TYPE_INT24: case MYSQL_TYPE_LONG: param->fetch_result= fetch_result_int32; *param->length= 4; @@ -3445,6 +3485,58 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind) param->buffer_type, param_count); DBUG_RETURN(1); } + + /* Setup skip_result functions (to calculate max_length) */ + param->skip_result= skip_result_fixed; + switch (field->type) { + case MYSQL_TYPE_NULL: /* for dummy binds */ + param->pack_length= 0; + break; + case MYSQL_TYPE_TINY: + param->pack_length= 1; + break; + case MYSQL_TYPE_YEAR: + case MYSQL_TYPE_SHORT: + param->pack_length= 2; + break; + case MYSQL_TYPE_INT24: + case MYSQL_TYPE_LONG: + param->pack_length= 4; + break; + case MYSQL_TYPE_LONGLONG: + param->pack_length= 8; + break; + case MYSQL_TYPE_FLOAT: + param->pack_length= 4; + break; + case MYSQL_TYPE_DOUBLE: + param->pack_length= 8; + break; + case MYSQL_TYPE_TIME: + case MYSQL_TYPE_DATE: + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + param->skip_result= skip_result_with_length; + break; + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_ENUM: + case MYSQL_TYPE_SET: + case MYSQL_TYPE_GEOMETRY: + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_STRING: + param->skip_result= skip_result_string; + break; + default: + strmov(stmt->sqlstate, unknown_sqlstate); + sprintf(stmt->last_error, + ER(stmt->last_errno= CR_UNSUPPORTED_PARAM_TYPE), + field->type, param_count); + DBUG_RETURN(1); + } } stmt->bind_result_done= TRUE; DBUG_RETURN(0); @@ -3458,7 +3550,7 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind) static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row) { MYSQL_BIND *bind, *end; - MYSQL_FIELD *field, *field_end; + MYSQL_FIELD *field; uchar *null_ptr, bit; /* Precondition: if stmt->field_count is zero or row is NULL, read_row_* @@ -3478,10 +3570,8 @@ static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row) bit= 4; /* first 2 bits are reserved */ /* Copy complete row to application buffers */ - for (bind= stmt->bind, end= (MYSQL_BIND *) bind + stmt->field_count, - field= stmt->fields, - field_end= (MYSQL_FIELD *)stmt->fields+stmt->field_count; - bind < end && field < field_end; + for (bind= stmt->bind, end= bind + stmt->field_count, field= stmt->fields ; + bind < end ; bind++, field++) { if (*null_ptr & bit) @@ -3514,6 +3604,7 @@ static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row) return 0; } + int cli_unbuffered_fetch(MYSQL *mysql, char **row) { if (packet_error == net_safe_read(mysql)) @@ -3524,6 +3615,7 @@ int cli_unbuffered_fetch(MYSQL *mysql, char **row) return 0; } + /* Fetch and return row data to bound buffers, if any */ @@ -3620,6 +3712,28 @@ int cli_read_binary_rows(MYSQL_STMT *stmt) mysql= mysql->last_used_con; + if (stmt->update_max_length && !stmt->bind_result_done) + { + /* + We must initalize the bind structure to be able to calculate + max_length + */ + MYSQL_BIND *bind, *end; + MYSQL_FIELD *field; + bzero((char*) stmt->bind, sizeof(*stmt->bind)* stmt->field_count); + + for (bind= stmt->bind, end= bind + stmt->field_count, field= stmt->fields; + bind < end ; + bind++, field++) + { + bind->buffer_type= field->type; + bind->buffer_length=1; + } + + mysql_stmt_bind_result(stmt, stmt->bind); + stmt->bind_result_done= 0; /* No normal bind done */ + } + while ((pkt_len= net_safe_read(mysql)) != packet_error) { cp= net->read_pos; @@ -3629,13 +3743,16 @@ int cli_read_binary_rows(MYSQL_STMT *stmt) sizeof(MYSQL_ROWS) + pkt_len - 1))) { set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate); - DBUG_RETURN(1); + goto err; } cur->data= (MYSQL_ROW) (cur+1); *prev_ptr= cur; prev_ptr= &cur->next; memcpy((char *) cur->data, (char *) cp+1, pkt_len-1); - ++result->rows; + cur->length= pkt_len; /* To allow us to do sanity checks */ + result->rows++; + if (stmt->update_max_length) + stmt_update_metadata(stmt, cur); } else { @@ -3647,6 +3764,8 @@ int cli_read_binary_rows(MYSQL_STMT *stmt) } } set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate); + +err: DBUG_RETURN(1); } @@ -3909,6 +4028,49 @@ const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt) DBUG_RETURN(stmt->last_error); } + +/* + Update meta data for statement + + SYNOPSIS + stmt_update_metadata() + stmt Statement handler + row Binary data + + NOTES + Only updates MYSQL_FIELD->max_length for strings + +*/ + +static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data) +{ + MYSQL_BIND *bind, *end; + MYSQL_FIELD *field; + uchar *null_ptr, bit; + uchar *row= (uchar*) data->data; + uchar *row_end= row + data->length; + + null_ptr= row; + row+= (stmt->field_count+9)/8; /* skip null bits */ + bit= 4; /* first 2 bits are reserved */ + + /* Go throw all fields and calculate metadata */ + for (bind= stmt->bind, end= bind + stmt->field_count, field= stmt->fields ; + bind < end ; + bind++, field++) + { + if (!(*null_ptr & bit)) + (*bind->skip_result)(bind, field, &row); + DBUG_ASSERT(row <= row_end); + if (!((bit<<=1) & 255)) + { + bit= 1; /* To next byte */ + null_ptr++; + } + } +} + + /******************************************************************** Transactional APIs *********************************************************************/ diff --git a/scripts/fill_help_tables.sh b/scripts/fill_help_tables.sh index cb5437f7178..a62fe0e0b11 100644 --- a/scripts/fill_help_tables.sh +++ b/scripts/fill_help_tables.sh @@ -45,6 +45,7 @@ use strict; use Getopt::Long; my $insert_portion_size= 15; +my $maximum_line_length= 2040; my $error_prefix= "---- help parsing errors :"; my $path_to_lex_file= "../sql/lex.h"; @@ -166,6 +167,7 @@ sub add_description print_error "double description for $topic_name\n"; } $topics{$topic_name}->{description}= $description; + $topics{$topic_name}->{line_of_description}= $cur_line; add_topic_to_category($topic_name); } @@ -515,21 +517,52 @@ if (scalar(@topic_names)) { my $header= "insert into help_topic ". "(help_topic_id,help_category_id,name,description,example) values "; + my $line_accumulator= $header; + my $lines_in_accumulator= 0; + my $actual_max_line_length= $maximum_line_length-2; # for ";\n" my $topic_name; my $count= 0; foreach $topic_name (@topic_names) { - print_insert_header($count,$header); my $topic= $topics{$topic_name}; - print "($count,"; - print "$topic->{category}->{__id__},"; - print "\"$topic_name\","; - print "\"$topic->{description}\","; - print "\"$topic->{example}\")"; + my $line= "($count,"; + $line.= "$topic->{category}->{__id__},"; + $line.= "\"$topic_name\","; + $line.= "\"$topic->{description}\","; + $line.= "\"$topic->{example}\")"; + if ($lines_in_accumulator <= $insert_portion_size && + length($line) + length($line_accumulator) < $actual_max_line_length) + { + if ($lines_in_accumulator ne 0) + { + $line_accumulator.= ","; + } + $line_accumulator.= $line; + $lines_in_accumulator++; + } + else + { + if (length($line) + length($header) >= $actual_max_line_length) + { + $cur_line= $topics{$topic_name}->{line_of_description}; + print_error "too long record for topic \"$topic_name\" \n". + " please decrease its description or example!\n"; + } + else + { + print "$line_accumulator;\n"; + $line_accumulator= $header.$line; + $lines_in_accumulator= 1; + } + } $topics{$topic_name}->{__id__}= $count; $count++; } - printf ";\n\n"; + if ($lines_in_accumulator ne 0) + { + print "$line_accumulator;\n"; + } + printf "\n"; } my @keywords_names= keys(%keywords); diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 1861e8c52f8..61d173aac05 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -200,15 +200,28 @@ if test "$in_rpm" -eq 0 -a "$windows" -eq 0 then echo "Installing all prepared tables" fi -if ( - $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows - if test -n "$fill_help_tables" - then - cat $fill_help_tables - fi -) | eval "$mysqld $defaults $mysqld_opt --bootstrap --skip-grant-tables \ - --basedir=$basedir --datadir=$ldata --skip-innodb --skip-bdb $args" +mysqld_install_cmd_line="$mysqld $defaults $mysqld_opt --bootstrap \ +--skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \ +--skip-bdb $args" +if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \ + | eval "$mysqld_install_cmd_line" then + if test -n "$fill_help_tables" + then + if test "$in_rpm" -eq 0 -a "$windows" -eq 0 + then + echo "Fill help tables" + fi + if ! (echo "use mysql; + " + cat $fill_help_tables) | eval "$mysqld_install_cmd_line" + then + echo "" + echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!" + echo "The \"HELP\" command might not work properly" + echo "" + fi + fi if test "$in_rpm" = 0 -a "$windows" = 0 then echo "" @@ -250,7 +263,7 @@ then fi exit 0 else - echo "Installation of grant tables failed!" + echo "Installation of system tables failed!" echo echo "Examine the logs in $ldata for more information." echo "You can also try to start the mysqld daemon with:" diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 3a3ebc93f51..a69c048a918 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1095,6 +1095,12 @@ extern "C" pthread_handler_decl(handle_bootstrap,arg) while (fgets(buff, thd->net.max_packet, file)) { uint length=(uint) strlen(buff); + if (buff[length-1]!='\n' && !feof(file)) + { + send_error(thd,ER_NET_PACKET_TOO_LARGE, NullS); + thd->is_fatal_error= 1; + break; + } while (length && (my_isspace(thd->charset(), buff[length-1]) || buff[length-1] == ';')) length--; diff --git a/tests/client_test.c b/tests/client_test.c index 419302d818a..8aaa9983bc9 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -56,6 +56,8 @@ static unsigned int iter_count= 0; static time_t start_time, end_time; static double total_time; +const char *default_dbug_option="d:t:o,/tmp/client_test.trace"; + #define myheader(str) \ { \ fprintf(stdout,"\n\n#####################################\n"); \ @@ -91,28 +93,28 @@ if (r) \ assert(r != 0); \ } -#define mystmt(stmt,r) \ +#define check_execute(stmt,r) \ { \ if (r) \ mysterror(stmt,NULL); \ assert(r == 0);\ } -#define mystmt_r(stmt,r) \ +#define check_execute_r(stmt,r) \ { \ if (r) \ mysterror(stmt,NULL); \ assert(r != 0);\ } -#define mystmt_init(stmt) \ +#define check_stmt(stmt) \ { \ if ( stmt == 0) \ myerror(NULL); \ assert(stmt != 0); \ } -#define mystmt_init_r(stmt) \ +#define check_stmt_r(stmt) \ { \ if (stmt == 0) \ myerror(NULL);\ @@ -430,10 +432,10 @@ uint my_process_stmt_result(MYSQL_STMT *stmt) my_print_result_metadata(result); rc= mysql_bind_result(stmt,buffer); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_field_seek(result, 0); while (mysql_fetch(stmt) == 0) @@ -481,10 +483,10 @@ uint my_stmt_result(const char *buff) fprintf(stdout,"\n\n %s", buff); stmt= mysql_simple_prepare(mysql,buff); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); row_count= my_process_stmt_result(stmt); mysql_stmt_close(stmt); @@ -520,9 +522,12 @@ static void verify_col_data(const char *table, const char *col, fprintf(stdout,"\n *** ERROR: FAILED TO GET THE RESULT ***"); exit(1); } - fprintf(stdout,"\n obtained: `%s` (expected: `%s`)", - row[field], exp_data); - assert(strcmp(row[field],exp_data) == 0); + if (strcmp(row[field],exp_data)) + { + fprintf(stdout,"\n obtained: `%s` (expected: `%s`)", + row[field], exp_data); + assert(0); + } mysql_free_result(result); } @@ -620,7 +625,7 @@ static void execute_prepare_query(const char *query, ulonglong exp_count) int rc; stmt= mysql_simple_prepare(mysql,query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); myquery(rc); @@ -928,7 +933,7 @@ static void test_prepare_simple() /* insert */ strmov(query,"INSERT INTO test_prepare_simple VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); mysql_stmt_close(stmt); @@ -936,7 +941,7 @@ static void test_prepare_simple() /* update */ strmov(query,"UPDATE test_prepare_simple SET id=? WHERE id=? AND name= ?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,3); mysql_stmt_close(stmt); @@ -944,18 +949,18 @@ static void test_prepare_simple() /* delete */ strmov(query,"DELETE FROM test_prepare_simple WHERE id=10"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); /* delete */ strmov(query,"DELETE FROM test_prepare_simple WHERE id=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -964,7 +969,7 @@ static void test_prepare_simple() /* select */ strmov(query,"SELECT * FROM test_prepare_simple WHERE id=? AND name= ?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -1002,7 +1007,7 @@ static void test_prepare_field_result() strmov(query,"SELECT int_c,var_c,date_c as date,ts_c,char_c FROM \ test_prepare_field_result as t1 WHERE int_c=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -1050,11 +1055,11 @@ static void test_prepare_syntax() strmov(query,"INSERT INTO test_prepare_syntax VALUES(?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init_r(stmt); + check_stmt_r(stmt); strmov(query,"SELECT id,name FROM test_prepare_syntax WHERE id=? AND WHERE"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init_r(stmt); + check_stmt_r(stmt); /* now fetch the results ..*/ rc = mysql_commit(mysql); @@ -1100,7 +1105,7 @@ static void test_prepare() /* insert by prepare */ strxmov(query,"INSERT INTO my_prepare VALUES(?,?,?,?,?,?,?)",NullS); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,7); @@ -1135,7 +1140,7 @@ static void test_prepare() } rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); int_data = 320; small_data = 1867; @@ -1148,7 +1153,7 @@ static void test_prepare() { length[1]= my_sprintf(str_data,(str_data, "MySQL%d",int_data)); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); int_data += 25; small_data += 10; big_data += 100; @@ -1166,14 +1171,14 @@ static void test_prepare() assert(tiny_data == (char) my_stmt_result("SELECT * FROM my_prepare")); stmt = mysql_simple_prepare(mysql,"SELECT * FROM my_prepare"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); /* get the result */ rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); o_int_data = 320; o_small_data = 1867; @@ -1187,7 +1192,7 @@ static void test_prepare() len = my_sprintf(data, (data, "MySQL%d",o_int_data)); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n"); @@ -1271,7 +1276,7 @@ static void test_double_compare() strmov(query, "UPDATE test_double_compare SET col1=100 WHERE col1 = ? AND col2 = ? AND COL3 = ?"); stmt = mysql_simple_prepare(mysql,query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,3); @@ -1301,10 +1306,10 @@ static void test_double_compare() strmov(real_data,"10.2"); double_data = 34.5; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_affected_rows(0); @@ -1352,11 +1357,11 @@ static void test_null() /* insert by prepare, wrong column name */ strmov(query,"INSERT INTO test_null(col3,col2) VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init_r(stmt); + check_stmt_r(stmt); strmov(query,"INSERT INTO test_null(col1,col2) VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -1367,13 +1372,13 @@ static void test_null() bind[1]=bind[0]; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); /* now, execute the prepared statement to insert 10 records.. */ for (nData=0; nData<10; nData++) { rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } /* Re-bind with MYSQL_TYPE_NULL */ @@ -1382,12 +1387,12 @@ static void test_null() bind[1]= bind[0]; rc = mysql_bind_param(stmt,bind); - mystmt(stmt,rc); + check_execute(stmt,rc); for (nData=0; nData<10; nData++) { rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } mysql_stmt_close(stmt); @@ -1408,13 +1413,13 @@ static void test_null() bind[1].is_null= &is_null[1]; stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_null"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_bind_result(stmt,bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= 0; is_null[0]= is_null[1]= 0; @@ -1481,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); @@ -1551,13 +1556,13 @@ static void test_fetch_null() assert(3 == my_stmt_result(query)); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= 0; while (mysql_fetch(stmt) != MYSQL_NO_DATA) @@ -1590,12 +1595,12 @@ static void test_select_version() myheader("test_select_version"); stmt = mysql_simple_prepare(mysql, "SELECT @@version"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); my_process_stmt_result(stmt); mysql_stmt_close(stmt); @@ -1612,14 +1617,14 @@ static void test_select_show_table() myheader("test_select_show_table"); stmt = mysql_simple_prepare(mysql, "SHOW TABLES FROM mysql"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); for (i= 1; i < 3; i++) { rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } my_process_stmt_result(stmt); @@ -1707,10 +1712,10 @@ static void test_select_prepare() myquery(rc); stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_select"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); mysql_stmt_close(stmt); @@ -1737,10 +1742,10 @@ static void test_select_prepare() myquery(rc); stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_select"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); mysql_stmt_close(stmt); @@ -1792,7 +1797,7 @@ static void test_select() strmov(query,"SELECT * FROM test_select WHERE id=? AND name=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -1813,10 +1818,10 @@ static void test_select() bind[0].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 1); @@ -1851,7 +1856,7 @@ session_id char(9) NOT NULL, \ strmov(query,"SELECT * FROM test_select WHERE session_id = ?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -1864,10 +1869,10 @@ session_id char(9) NOT NULL, \ bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 1); @@ -1880,10 +1885,10 @@ session_id char(9) NOT NULL, \ bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 0); @@ -1896,10 +1901,10 @@ session_id char(9) NOT NULL, \ bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 1); @@ -1929,7 +1934,7 @@ static void test_bug1180() strmov(query,"SELECT * FROM test_select WHERE ?=\"1111\" and session_id = \"abc\""); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -1942,10 +1947,10 @@ static void test_bug1180() bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 0); @@ -1958,10 +1963,10 @@ static void test_bug1180() bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 1); @@ -1974,10 +1979,10 @@ static void test_bug1180() bind[0].is_null=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(my_process_stmt_result(stmt) == 0); @@ -2009,7 +2014,7 @@ static void test_bug1644() strmov(query, "INSERT INTO foo_dfr VALUES (?,?,?,? )"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt, 4); @@ -2025,20 +2030,20 @@ static void test_bug1644() } rc= mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); isnull= 1; for (i = 0 ; i < 4 ; i++) bind[i].is_null= &isnull; rc= mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); isnull= 0; num= 88; @@ -2046,10 +2051,10 @@ static void test_bug1644() bind[i].is_null= &isnull; rc= mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); @@ -2107,43 +2112,43 @@ static void test_select_show() myquery(rc); stmt = mysql_simple_prepare(mysql, "show columns from test_show"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); my_process_stmt_result(stmt); mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "show tables from mysql like ?"); - mystmt_init_r(stmt); + check_stmt_r(stmt); strxmov(query,"show tables from ", current_db, " like \'test_show\'", NullS); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); my_process_stmt_result(stmt); mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "describe test_show"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); my_process_stmt_result(stmt); mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "show keys from test_show"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(1 == my_process_stmt_result(stmt)); mysql_stmt_close(stmt); @@ -2192,7 +2197,7 @@ static void test_simple_update() /* insert by prepare */ strmov(query,"UPDATE test_update SET col2=? WHERE col1=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2211,10 +2216,10 @@ static void test_simple_update() bind[1].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_affected_rows(1); mysql_stmt_close(stmt); @@ -2267,11 +2272,11 @@ static void test_long_data() strmov(query,"INSERT INTO test_long_data(col1,col2) VALUES(?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init_r(stmt); + check_stmt_r(stmt); strmov(query,"INSERT INTO test_long_data(col1,col2,col3) VALUES(?,?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,3); @@ -2288,7 +2293,7 @@ static void test_long_data() bind[2]=bind[1]; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); int_data= 999; data = (char *)"Michael"; @@ -2297,14 +2302,14 @@ static void test_long_data() rc = mysql_send_long_data(stmt,1,data,strlen(data)); data = (char *)" 'Monty' Widenius"; rc = mysql_send_long_data(stmt,1,data,strlen(data)); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_send_long_data(stmt,2,"Venu (venu@mysql.com)",4); - mystmt(stmt, rc); + check_execute(stmt, rc); /* execute */ rc = mysql_execute(stmt); fprintf(stdout," mysql_execute() returned %d\n",rc); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_commit(mysql); myquery(rc); @@ -2359,7 +2364,7 @@ static void test_long_data_str() strmov(query,"INSERT INTO test_long_data_str VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2378,7 +2383,7 @@ static void test_long_data_str() bind[1].is_null= &is_null[1]; is_null[1]=0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); length = 40; strmov(data,"MySQL AB"); @@ -2387,12 +2392,12 @@ static void test_long_data_str() for(i=0; i < 4; i++) { rc = mysql_send_long_data(stmt,1,(char *)data,5); - mystmt(stmt, rc); + check_execute(stmt, rc); } /* execute */ rc = mysql_execute(stmt); fprintf(stdout," mysql_execute() returned %d\n",rc); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); @@ -2416,6 +2421,9 @@ static void test_long_data_str() while (i--) strxmov(data,data,"MySQL",NullS); verify_col_data("test_long_data_str","longstr", data); + + rc = mysql_query(mysql,"DROP TABLE test_long_data_str"); + myquery(rc); } @@ -2428,8 +2436,11 @@ static void test_long_data_str1() int rc, i; 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; myheader("test_long_data_str1"); @@ -2450,7 +2461,7 @@ static void test_long_data_str1() strmov(query,"INSERT INTO test_long_data_str VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2465,23 +2476,23 @@ static void test_long_data_str1() bind[1].buffer_type=FIELD_TYPE_BLOB; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); length = my_sprintf(data, (data, "MySQL AB")); /* supply data in pieces */ for (i=0; i < 3; i++) { rc = mysql_send_long_data(stmt,0,data,length); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_send_long_data(stmt,1,data,2); - mystmt(stmt, rc); + check_execute(stmt, rc); } /* execute */ rc = mysql_execute(stmt); fprintf(stdout," mysql_execute() returned %d\n",rc); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); @@ -2494,6 +2505,11 @@ static void test_long_data_str1() /* get the result */ result = mysql_store_result(mysql); + + mysql_field_seek(result, 1); + field= mysql_fetch_field(result); + max_blob_length= field->max_length; + mytest(result); assert(1 == my_process_result_set(result)); @@ -2504,6 +2520,68 @@ static void test_long_data_str1() my_sprintf(data,(data,"%d",i*2)); verify_col_data("test_long_data_str","length(blb)",data); + + /* Test length of field->max_length */ + stmt= mysql_simple_prepare(mysql, "SELECT * from test_long_data_str"); + check_stmt(stmt); + verify_param_count(stmt,0); + + 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); + + /* 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 */ + bzero((char*) bind, sizeof(*bind)); + bind[0].buffer_type= MYSQL_TYPE_BLOB; + bind[0].buffer= (char *) &data; /* this buffer won't be altered */ + bind[0].buffer_length= 16; + bind[0].length= &blob_length; + rc= mysql_bind_result(stmt,bind); + data[16]= 0; + + DBUG_ASSERT((mysql_fetch(stmt) == 0)); + DBUG_ASSERT(strlen(data) == 16); + DBUG_ASSERT(blob_length == max_blob_length); + + /* Fetch all data */ + bzero((char*) (bind+1), sizeof(*bind)); + bind[1].buffer_type= MYSQL_TYPE_BLOB; + bind[1].buffer= (char *) &data; /* this buffer won't be altered */ + bind[1].buffer_length= sizeof(data); + bind[1].length= &blob_length; + bzero(data, sizeof(data)); + mysql_stmt_fetch_column(stmt, bind+1, 0, 0); + DBUG_ASSERT(strlen(data) == max_blob_length); + + mysql_free_result(result); + mysql_stmt_close(stmt); + + /* Drop created table */ + rc = mysql_query(mysql,"DROP TABLE test_long_data_str"); + myquery(rc); } @@ -2539,7 +2617,7 @@ static void test_long_data_bin() strmov(query,"INSERT INTO test_long_data_bin VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2555,7 +2633,7 @@ static void test_long_data_bin() bind[1].length= 0; /* Will not be used */ bind[1].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); length = 10; strmov(data,"MySQL AB"); @@ -2566,13 +2644,13 @@ static void test_long_data_bin() for (i=0; i < 100; i++) { rc = mysql_send_long_data(stmt,1,(char *)data,4); - mystmt(stmt, rc); + check_execute(stmt, rc); } } /* execute */ rc = mysql_execute(stmt); fprintf(stdout," mysql_execute() returned %d\n",rc); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); @@ -2634,7 +2712,7 @@ static void test_simple_delete() /* insert by prepare */ strmov(query,"DELETE FROM test_simple_delete WHERE col1=? AND col2=? AND col3=100"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2654,10 +2732,10 @@ static void test_simple_delete() bind[0].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_affected_rows(1); @@ -2714,7 +2792,7 @@ static void test_update() strmov(query,"INSERT INTO test_update(col2,col3) VALUES(?,?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -2733,18 +2811,18 @@ static void test_update() bind[1].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); nData=100; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_affected_rows(1); mysql_stmt_close(stmt); strmov(query,"UPDATE test_update SET col2=? WHERE col3=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); nData=100; @@ -2761,10 +2839,10 @@ static void test_update() bind[1].is_null= 0; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_affected_rows(1); mysql_stmt_close(stmt); @@ -2810,12 +2888,12 @@ static void test_prepare_noparam() /* insert by prepare */ strmov(query,"INSERT INTO my_prepare VALUES(10,'venu')"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); @@ -2889,16 +2967,16 @@ static void test_bind_result() bind[1].is_null= &is_null[1]; stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_bind_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %d,%s(%lu)",nData, szData, length1); assert(nData == 10); @@ -2906,7 +2984,7 @@ static void test_bind_result() assert(length1 == 4); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 2: %d,%s(%lu)",nData, szData, length1); assert(nData == 20); @@ -2915,7 +2993,7 @@ static void test_bind_result() length=99; rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); if (is_null[0]) fprintf(stdout,"\n row 3: NULL,%s(%lu)", szData, length1); @@ -3010,16 +3088,16 @@ static void test_bind_result_ext() bind[7].buffer_length= sizeof(bData); stmt = mysql_simple_prepare(mysql, "select * from test_bind_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n data (tiny) : %d", t_data); fprintf(stdout, "\n data (short) : %d", s_data); @@ -3137,16 +3215,16 @@ static void test_bind_result_ext1() } stmt = mysql_simple_prepare(mysql, "select * from test_bind_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n data (tiny) : %s(%lu)", t_data, length[0]); fprintf(stdout, "\n data (short) : %f(%lu)", s_data, length[1]); @@ -3197,7 +3275,7 @@ static void bind_fetch(int row_count) my_bool is_null[7]; stmt = mysql_simple_prepare(mysql,"INSERT INTO test_bind_fetch VALUES(?,?,?,?,?,?,?)"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt, 7); @@ -3209,7 +3287,7 @@ static void bind_fetch(int row_count) bind[i].is_null= 0; } rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); while (count--) { @@ -3220,7 +3298,7 @@ static void bind_fetch(int row_count) rc+= 12; } rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } rc = mysql_commit(mysql); @@ -3257,18 +3335,18 @@ static void bind_fetch(int row_count) bind[6].buffer_length= sizeof(s_data); rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); while (row_count--) { rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n"); fprintf(stdout, "\n tiny : %ld(%lu)", data[0], length[0]); @@ -3402,17 +3480,17 @@ static void test_fetch_date() assert(1 == my_stmt_result("SELECT * FROM test_bind_result")); stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_bind_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); ts_4[0]='\0'; rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n date : %s(%lu)", date, d_length); fprintf(stdout, "\n time : %s(%lu)", time, t_length); @@ -3730,7 +3808,7 @@ static void test_prepare_ext() /* insert by prepare - all integers */ strmov(query,(char *)"INSERT INTO test_prepare_ext(c1,c2,c3,c4,c5,c6) VALUES(?,?,?,?,?,?)"); stmt = mysql_simple_prepare(mysql,query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,6); @@ -3766,7 +3844,7 @@ static void test_prepare_ext() } rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); /* * integer to integer @@ -3774,7 +3852,7 @@ static void test_prepare_ext() for (nData=0; nData<10; nData++, tData++, sData++,bData++) { rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } mysql_stmt_close(stmt); @@ -3783,11 +3861,11 @@ static void test_prepare_ext() myquery(rc); stmt = mysql_simple_prepare(mysql,"SELECT c1,c2,c3,c4,c5,c6 FROM test_prepare_ext"); - mystmt_init(stmt); + check_stmt(stmt); /* get the result */ rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(nData == (int)my_process_stmt_result(stmt)); @@ -3929,7 +4007,7 @@ static void test_insert() /* insert by prepare */ stmt = mysql_simple_prepare(mysql, "INSERT INTO test_prep_insert VALUES(?,?)"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -3947,14 +4025,14 @@ static void test_insert() bind[1].length= &length; rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); /* now, execute the prepared statement to insert 10 records.. */ for (tiny_data=0; tiny_data < 3; tiny_data++) { length = my_sprintf(str_data, (str_data, "MySQL%d",tiny_data)); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } mysql_stmt_close(stmt); @@ -4001,7 +4079,7 @@ static void test_prepare_resultset() myquery(rc); stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_prepare_resultset"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); @@ -4114,25 +4192,25 @@ static void test_stmt_close() strmov(query,"DO \"nothing\""); stmt1= mysql_simple_prepare(lmysql, query); - mystmt_init(stmt1); + check_stmt(stmt1); verify_param_count(stmt1, 0); strmov(query,"INSERT INTO test_stmt_close(id) VALUES(?)"); stmt_x= mysql_simple_prepare(mysql, query); - mystmt_init(stmt_x); + check_stmt(stmt_x); verify_param_count(stmt_x, 1); strmov(query,"UPDATE test_stmt_close SET id=? WHERE id=?"); stmt3= mysql_simple_prepare(lmysql, query); - mystmt_init(stmt3); + check_stmt(stmt3); verify_param_count(stmt3, 2); strmov(query,"SELECT * FROM test_stmt_close WHERE id=?"); stmt2= mysql_simple_prepare(lmysql, query); - mystmt_init(stmt2); + check_stmt(stmt2); verify_param_count(stmt2, 1); @@ -4160,10 +4238,10 @@ static void test_stmt_close() bind[0].is_null=0; rc = mysql_bind_param(stmt_x, bind); - mystmt(stmt_x, rc); + check_execute(stmt_x, rc); rc = mysql_execute(stmt_x); - mystmt(stmt_x, rc); + check_execute(stmt_x, rc); verify_st_affected_rows(stmt_x, 1); @@ -4199,7 +4277,7 @@ static void test_set_variable() mysql_autocommit(mysql, TRUE); stmt1 = mysql_simple_prepare(mysql, "show variables like 'max_error_count'"); - mystmt_init(stmt1); + check_stmt(stmt1); get_bind[0].buffer_type= MYSQL_TYPE_STRING; get_bind[0].buffer= (char *)var; @@ -4214,13 +4292,13 @@ static void test_set_variable() get_bind[1].length= 0; rc = mysql_execute(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); rc = mysql_bind_result(stmt1, get_bind); - mystmt(stmt1, rc); + check_execute(stmt1, rc); rc = mysql_fetch(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); fprintf(stdout, "\n max_error_count(default): %d", get_count); def_count= get_count; @@ -4230,7 +4308,7 @@ static void test_set_variable() assert(rc == MYSQL_NO_DATA); stmt = mysql_simple_prepare(mysql, "set max_error_count=?"); - mystmt_init(stmt); + check_stmt(stmt); set_bind[0].buffer_type= MYSQL_TYPE_LONG; set_bind[0].buffer= (char *)&set_count; @@ -4238,19 +4316,19 @@ static void test_set_variable() set_bind[0].length= 0; rc = mysql_bind_param(stmt, set_bind); - mystmt(stmt,rc); + check_execute(stmt,rc); set_count= 31; rc= mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_commit(mysql); rc = mysql_execute(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); rc = mysql_fetch(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); fprintf(stdout, "\n max_error_count : %d", get_count); assert(get_count == set_count); @@ -4261,13 +4339,13 @@ static void test_set_variable() /* restore back to default */ set_count= def_count; rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); rc = mysql_fetch(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); fprintf(stdout, "\n max_error_count(default): %d", get_count); assert(get_count == set_count); @@ -4305,7 +4383,7 @@ static void test_insert_meta() strmov(query,"INSERT INTO test_prep_insert VALUES(10,'venu1','test')"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); @@ -4316,7 +4394,7 @@ static void test_insert_meta() strmov(query,"INSERT INTO test_prep_insert VALUES(?,'venu',?)"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -4368,7 +4446,7 @@ static void test_update_meta() strmov(query,"UPDATE test_prep_update SET col1=10, col2='venu1' WHERE col3='test'"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); @@ -4379,7 +4457,7 @@ static void test_update_meta() strmov(query,"UPDATE test_prep_update SET col1=?, col2='venu' WHERE col3=?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -4435,7 +4513,7 @@ static void test_select_meta() strmov(query,"SELECT * FROM test_prep_select WHERE col1=10"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,0); @@ -4444,7 +4522,7 @@ static void test_select_meta() strmov(query,"SELECT col1, col3 from test_prep_select WHERE col1=? AND col3='test' AND col2= ?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,2); @@ -4579,10 +4657,10 @@ static void test_multi_stmt() myquery(rc); stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_multi_table WHERE id = ?"); - mystmt_init(stmt); + check_stmt(stmt); stmt2 = mysql_simple_prepare(mysql, "UPDATE test_multi_table SET name='updated' WHERE id=10"); - mystmt_init(stmt2); + check_stmt(stmt2); verify_param_count(stmt,1); @@ -4601,18 +4679,18 @@ static void test_multi_stmt() bind[1].is_null= &is_null[1]; rc = mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); id = 10; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); id = 999; rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n int_data: %d(%lu)", id, length[0]); fprintf(stdout, "\n str_data: %s(%lu)", name, length[1]); @@ -4624,23 +4702,23 @@ static void test_multi_stmt() /* alter the table schema now */ stmt1 = mysql_simple_prepare(mysql,"DELETE FROM test_multi_table WHERE id = ? AND name=?"); - mystmt_init(stmt1); + check_stmt(stmt1); verify_param_count(stmt1,2); rc = mysql_bind_param(stmt1, bind); - mystmt(stmt1, rc); + check_execute(stmt1, rc); rc = mysql_execute(stmt2); - mystmt(stmt2, rc); + check_execute(stmt2, rc); verify_st_affected_rows(stmt2, 1); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n int_data: %d(%lu)", id, length[0]); fprintf(stdout, "\n str_data: %s(%lu)", name, length[1]); @@ -4651,14 +4729,14 @@ static void test_multi_stmt() assert(rc == MYSQL_NO_DATA); rc = mysql_execute(stmt1); - mystmt(stmt1, rc); + check_execute(stmt1, rc); verify_st_affected_rows(stmt1, 1); mysql_stmt_close(stmt1); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); @@ -4850,7 +4928,7 @@ static void test_prepare_alter() myquery(rc); stmt = mysql_simple_prepare(mysql, "INSERT INTO test_prep_alter VALUES(?,'monty')"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -4862,18 +4940,18 @@ static void test_prepare_alter() bind[0].is_null= &is_null; rc = mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); id = 30; length= 0; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); if (thread_query((char *)"ALTER TABLE test_prep_alter change id id_new varchar(20)")) exit(0); is_null=1; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(4 == my_stmt_result("SELECT * FROM test_prep_alter")); @@ -5034,7 +5112,7 @@ static void test_prepare_multi_statements() } strmov(query, "select 1; select 'another value'"); stmt = mysql_simple_prepare(mysql_local,query); - mystmt_init_r(stmt); + check_stmt_r(stmt); mysql_close(mysql_local); } @@ -5089,19 +5167,19 @@ static void test_store_result() length1= 0; stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_store_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %ld,%s(%lu)", nData, szData, length1); assert(nData == 10); @@ -5109,7 +5187,7 @@ static void test_store_result() assert(length1 == 4); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 2: %ld,%s(%lu)",nData, szData, length1); assert(nData == 20); @@ -5118,7 +5196,7 @@ static void test_store_result() length=99; rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); if (is_null[0]) fprintf(stdout,"\n row 3: NULL,%s(%lu)", szData, length1); @@ -5130,13 +5208,13 @@ static void test_store_result() assert(rc == MYSQL_NO_DATA); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %ld,%s(%lu)",nData, szData, length1); assert(nData == 10); @@ -5144,7 +5222,7 @@ static void test_store_result() assert(length1 == 4); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 2: %ld,%s(%lu)",nData, szData, length1); assert(nData == 20); @@ -5153,7 +5231,7 @@ static void test_store_result() length=99; rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); if (is_null[0]) fprintf(stdout,"\n row 3: NULL,%s(%lu)", szData, length1); @@ -5200,13 +5278,13 @@ static void test_store_result1() myquery(rc); stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_store_result"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = 0; while (mysql_fetch(stmt) != MYSQL_NO_DATA) @@ -5215,10 +5293,10 @@ static void test_store_result1() assert(rc == 3); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = 0; while (mysql_fetch(stmt) != MYSQL_NO_DATA) @@ -5271,24 +5349,24 @@ static void test_store_result2() strmov((char *)query , "SELECT col1 FROM test_store_result where col1= ?"); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); nData = 10; length= 0; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); nData = 0; rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %d",nData); assert(nData == 10); @@ -5298,14 +5376,14 @@ static void test_store_result2() nData = 20; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); nData = 0; rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %d",nData); assert(nData == 20); @@ -5363,23 +5441,23 @@ static void test_subselect() bind[0].is_null= 0; stmt = mysql_simple_prepare(mysql, "INSERT INTO test_sub2(id) SELECT * FROM test_sub1 WHERE id=?", 100); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); id = 2; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_st_affected_rows(stmt, 1); id = 9; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_st_affected_rows(stmt, 0); @@ -5392,20 +5470,20 @@ static void test_subselect() assert(1 == my_stmt_result("SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=7)")); stmt = mysql_simple_prepare(mysql, query, 150); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + check_execute(stmt, rc); id = 7; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %d",id); assert(id == 1); @@ -5415,10 +5493,10 @@ static void test_subselect() id= 8; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n row 1: %d",id); assert(id == 0); @@ -5446,7 +5524,7 @@ static void test_bind_date_conv(uint row_count) uint year, month, day, hour, minute, sec; stmt = mysql_simple_prepare(mysql,"INSERT INTO test_date VALUES(?,?,?,?)"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt, 4); @@ -5475,7 +5553,7 @@ static void test_bind_date_conv(uint row_count) } rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); for (count= 0; count < row_count; count++) { @@ -5491,7 +5569,7 @@ static void test_bind_date_conv(uint row_count) tm[i].second= sec+count; } rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } rc = mysql_commit(mysql); @@ -5505,18 +5583,18 @@ static void test_bind_date_conv(uint row_count) myquery(rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); for (count=0; count < row_count; count++) { rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n"); for (i= 0; i < array_elements(bind); i++) @@ -5697,25 +5775,25 @@ static void test_pure_coverage() myquery(rc); stmt = mysql_simple_prepare(mysql,"insert into test_pure(c67788) values(10)"); - mystmt_init_r(stmt); + check_stmt_r(stmt); /* Query without params and result should allow to bind 0 arrays */ stmt = mysql_simple_prepare(mysql,"insert into test_pure(c2) values(10)"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt, (MYSQL_BIND*)0); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_bind_result(stmt, (MYSQL_BIND*)0); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql,"insert into test_pure(c2) values(?)"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].length= &length; bind[0].is_null= 0; @@ -5723,32 +5801,32 @@ 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); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql,"select * from test_pure"); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); 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); - mystmt(stmt, rc); + 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); @@ -5782,10 +5860,10 @@ static void test_buffers() myquery(rc); stmt = mysql_simple_prepare(mysql,"select str from test_buffer"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); bzero(buffer, 20); /* Avoid overruns in printf() */ @@ -5796,14 +5874,14 @@ static void test_buffers() bind[0].buffer= (char *)buffer; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); buffer[1]='X'; rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n data: %s (%lu)", buffer, length); assert(buffer[0] == 'M'); assert(buffer[1] == 'X'); @@ -5811,30 +5889,30 @@ static void test_buffers() bind[0].buffer_length=8; rc = mysql_bind_result(stmt, bind);/* re-bind */ - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n data: %s (%lu)", buffer, length); assert(strncmp(buffer,"Database",8) == 0); assert(length == 8); bind[0].buffer_length=12; rc = mysql_bind_result(stmt, bind);/* re-bind */ - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n data: %s (%lu)", buffer, length); assert(strcmp(buffer,"Open-Source") == 0); assert(length == 11); bind[0].buffer_length=6; rc = mysql_bind_result(stmt, bind);/* re-bind */ - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n data: %s (%lu)", buffer, length); assert(strncmp(buffer,"Popula",6) == 0); assert(length == 7); @@ -5860,7 +5938,7 @@ static void test_open_direct() myquery(rc); stmt = mysql_simple_prepare(mysql,"INSERT INTO test_open_direct values(10,'mysql')"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_query(mysql, "SELECT * FROM test_open_direct"); myquery(rc); @@ -5872,7 +5950,7 @@ static void test_open_direct() mysql_free_result(result); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_st_affected_rows(stmt, 1); @@ -5886,7 +5964,7 @@ static void test_open_direct() mysql_free_result(result); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); verify_st_affected_rows(stmt, 1); @@ -5903,41 +5981,41 @@ static void test_open_direct() /* run a direct query in the middle of a fetch */ stmt= mysql_simple_prepare(mysql,"SELECT * FROM test_open_direct"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_query(mysql,"INSERT INTO test_open_direct(id) VALUES(20)"); myquery_r(rc); rc = mysql_stmt_close(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_query(mysql,"INSERT INTO test_open_direct(id) VALUES(20)"); myquery(rc); /* run a direct query with store result */ stmt= mysql_simple_prepare(mysql,"SELECT * FROM test_open_direct"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_query(mysql,"drop table test_open_direct"); myquery(rc); rc = mysql_stmt_close(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } /* @@ -5954,10 +6032,10 @@ static void test_fetch_nobuffs() stmt = mysql_simple_prepare(mysql,"SELECT DATABASE(), CURRENT_USER(), \ CURRENT_DATE(), CURRENT_TIME()"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = 0; while (mysql_fetch(stmt) != MYSQL_NO_DATA) @@ -5977,10 +6055,10 @@ static void test_fetch_nobuffs() bind[3].buffer= (char *)str[3]; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = 0; while (mysql_fetch(stmt) != MYSQL_NO_DATA) @@ -6027,10 +6105,10 @@ static void test_ushort_bug() stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_ushort"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); bind[0].buffer_type= MYSQL_TYPE_SHORT; bind[0].buffer= (char *)&short_value; @@ -6053,10 +6131,10 @@ static void test_ushort_bug() bind[3].length= &t_length; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout,"\n ushort : %d (%ld)", short_value, s_length); fprintf(stdout,"\n ulong : %ld (%ld)", long_value, l_length); @@ -6111,10 +6189,10 @@ static void test_sshort_bug() stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_sshort"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); bind[0].buffer_type= MYSQL_TYPE_SHORT; bind[0].buffer= (char *)&short_value; @@ -6137,10 +6215,10 @@ static void test_sshort_bug() bind[3].length= &t_length; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout,"\n sshort : %d (%ld)", short_value, s_length); fprintf(stdout,"\n slong : %ld (%ld)", long_value, l_length); @@ -6195,10 +6273,10 @@ static void test_stiny_bug() stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_stiny"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); bind[0].buffer_type= MYSQL_TYPE_SHORT; bind[0].buffer= (char *)&short_value; @@ -6221,10 +6299,10 @@ static void test_stiny_bug() bind[3].length= &t_length; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout,"\n sshort : %d (%ld)", short_value, s_length); fprintf(stdout,"\n slong : %ld (%ld)", long_value, l_length); @@ -6280,10 +6358,10 @@ static void test_field_misc() mysql_free_result(result); stmt = mysql_simple_prepare(mysql,"SELECT @@autocommit"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); result = mysql_get_metadata(stmt); mytest(result); @@ -6300,10 +6378,10 @@ static void test_field_misc() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "SELECT @@table_type"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); bind[0].buffer_type= MYSQL_TYPE_STRING; bind[0].buffer= table_type; @@ -6312,10 +6390,10 @@ static void test_field_misc() bind[0].buffer_length= NAME_LEN; rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n default table type: %s(%ld)", table_type, type_length); rc = mysql_fetch(stmt); @@ -6324,13 +6402,13 @@ static void test_field_misc() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "SELECT @@table_type"); - mystmt_init(stmt); + check_stmt(stmt); result = mysql_get_metadata(stmt); mytest(result); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -6344,13 +6422,13 @@ static void test_field_misc() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "SELECT @@max_error_count"); - mystmt_init(stmt); + check_stmt(stmt); result = mysql_get_metadata(stmt); mytest(result); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -6364,13 +6442,13 @@ static void test_field_misc() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "SELECT @@max_allowed_packet"); - mystmt_init(stmt); + check_stmt(stmt); result = mysql_get_metadata(stmt); mytest(result); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -6384,13 +6462,13 @@ static void test_field_misc() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "SELECT @@sql_warnings"); - mystmt_init(stmt); + check_stmt(stmt); result = mysql_get_metadata(stmt); mytest(result); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -6445,10 +6523,10 @@ static void test_set_option() fprintf(stdout,"\n with SQL_SELECT_LIMIT=2 (prepare)"); stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_limit"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(2 == my_process_stmt_result(stmt)); @@ -6460,10 +6538,10 @@ static void test_set_option() myquery(rc); stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_limit"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(4 == my_process_stmt_result(stmt)); @@ -6544,7 +6622,7 @@ static void test_prepare_grant() myquery_r(rc); stmt= mysql_simple_prepare(mysql,"DELETE FROM test_grant"); - mystmt_init_r(stmt); + check_stmt_r(stmt); assert(4 == my_stmt_result("SELECT * FROM test_grant")); @@ -6590,10 +6668,10 @@ static void test_frm_bug() myquery(rc); stmt = mysql_simple_prepare(mysql, "show variables like 'datadir'"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); bind[0].buffer_type= MYSQL_TYPE_STRING; bind[0].buffer= data_dir; @@ -6603,10 +6681,10 @@ static void test_frm_bug() bind[1]=bind[0]; rc = mysql_bind_result(stmt,bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout,"\n data directory: %s", data_dir); @@ -6673,7 +6751,7 @@ static void test_decimal_bug() myquery(rc); stmt = mysql_simple_prepare(mysql,"select c1 from test_decimal_bug where c1= ?"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_STRING; bind[0].buffer= (char *)data; @@ -6683,18 +6761,18 @@ static void test_decimal_bug() is_null= 0; rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); strcpy(data, "8.0"); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); data[0]=0; rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n data: %s", data); assert(strcmp(data, "8.00")==0); @@ -6704,14 +6782,14 @@ static void test_decimal_bug() strcpy(data, "5.61"); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); data[0]=0; rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n data: %s", data); assert(strcmp(data, "5.61")==0); @@ -6721,21 +6799,21 @@ static void test_decimal_bug() is_null= 1; rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); strcpy(data, "10.22"); is_null= 0; rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); data[0]=0; rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n data: %s", data); assert(strcmp(data, "10.22")==0); @@ -6769,10 +6847,10 @@ static void test_explain_bug() myquery(rc); stmt = mysql_simple_prepare(mysql, "explain test_explain"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert( 2 == my_process_stmt_result(stmt)); @@ -6805,10 +6883,10 @@ static void test_explain_bug() mysql_stmt_close(stmt); stmt = mysql_simple_prepare(mysql, "explain select id, name FROM test_explain"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert( 1 == my_process_stmt_result(stmt)); @@ -7060,7 +7138,7 @@ static void test_logs() length= (ulong)(strmov((char *)data,"INSERT INTO test_logs VALUES(?,?)") - data); stmt = mysql_prepare(mysql, data, length); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_SHORT; bind[0].buffer= (char *)&id; @@ -7077,61 +7155,61 @@ static void test_logs() length= (ulong)(strmov((char *)data,"MySQL - Open Source Database")- data); rc = mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); strmov((char *)data, "'"); length= 1; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); strmov((char *)data, "\""); length= 1; rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); length= (ulong)(strmov((char *)data, "my\'sql\'")-data); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); length= (ulong)(strmov((char *)data, "my\"sql\"")-data); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); length= (ulong)(strmov((char *)data,"INSERT INTO test_logs VALUES(20,'mysql')") - data); stmt = mysql_prepare(mysql, data, length); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); length= (ulong)(strmov((char *)data, "SELECT * FROM test_logs WHERE id=?") - data); stmt = mysql_prepare(mysql, data, length); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); bind[1].buffer_length= 255; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n id : %d", id); fprintf(stdout, "\n name : %s(%ld)", data, length); @@ -7141,7 +7219,7 @@ static void test_logs() assert(strcmp(data,"MySQL - Open Source")==0); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n name : %s(%ld)", data, length); @@ -7149,7 +7227,7 @@ static void test_logs() assert(strcmp(data,"'")==0); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n name : %s(%ld)", data, length); @@ -7157,7 +7235,7 @@ static void test_logs() assert(strcmp(data,"\"")==0); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n name : %s(%ld)", data, length); @@ -7165,7 +7243,7 @@ static void test_logs() assert(strcmp(data,"my\'sql\'")==0); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n name : %s(%ld)", data, length); @@ -7216,29 +7294,29 @@ static void test_nstmts() length = (long)(strmov(query, "insert into test_nstmts values(?)")-query); stmt = mysql_prepare(mysql, query, length); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); mysql_stmt_close(stmt); } stmt = mysql_simple_prepare(mysql," select count(*) from test_nstmts"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); i = 0; rc = mysql_bind_result(stmt, bind); - mystmt(stmt, rc); + check_execute(stmt, rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "\n total rows: %d", i); assert( i == total_stmts); @@ -7275,7 +7353,7 @@ static void test_fetch_seek() myquery(rc); stmt = mysql_simple_prepare(mysql,"select * from test_seek"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_LONG; bind[0].buffer= (char *)&c1; @@ -7294,16 +7372,16 @@ static void test_fetch_seek() bind[2].buffer_length= sizeof(c3); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 0: %ld,%s,%s", c1,c2,c3); @@ -7312,32 +7390,32 @@ static void test_fetch_seek() row = mysql_stmt_row_seek(stmt, row); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 2: %ld,%s,%s", c1,c2,c3); row = mysql_stmt_row_seek(stmt, row); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 2: %ld,%s,%s", c1,c2,c3); mysql_stmt_data_seek(stmt, 0); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 0: %ld,%s,%s", c1,c2,c3); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); @@ -7370,7 +7448,7 @@ static void test_fetch_offset() myquery(rc); stmt = mysql_simple_prepare(mysql,"select * from test_column"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_STRING; bind[0].buffer= (char *)data; @@ -7379,43 +7457,43 @@ static void test_fetch_offset() bind[0].length= &length; rc = mysql_execute(stmt); - mystmt(stmt,rc); + 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); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); data[0]= '\0'; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s (%ld)", data, length); assert(strncmp(data,"abcd",4) == 0 && length == 10); rc = mysql_fetch_column(stmt,bind,0,5); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s (%ld)", data, length); assert(strncmp(data,"fg",2) == 0 && length == 10); rc = mysql_fetch_column(stmt,bind,0,9); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %s (%ld)", data, length); assert(strncmp(data,"j",1) == 0 && length == 10); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); is_null= 0; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(is_null == 1); @@ -7423,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); } @@ -7450,7 +7528,7 @@ static void test_fetch_column() myquery(rc); stmt = mysql_simple_prepare(mysql,"select * from test_column order by c2 desc"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_LONG; bind[0].buffer= (char *)&bc1; @@ -7464,19 +7542,19 @@ static void test_fetch_column() bind[1].length= &bl2; rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + 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); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 0: %d,%s", bc1,bc2); @@ -7488,13 +7566,13 @@ static void test_fetch_column() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,1,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s(%ld)", c2, l2); assert(strncmp(c2,"venu",4)==0 && l2 == 4); c2[0]= '\0'; l2= 0; rc = mysql_fetch_column(stmt,bind,1,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s(%ld)", c2, l2); assert(strcmp(c2,"venu")==0 && l2 == 4); @@ -7506,12 +7584,12 @@ static void test_fetch_column() bind[0].length= &l1; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %d(%ld)", c1, l1); assert(c1 == 1 && l1 == 4); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n row 1: %d,%s", bc1,bc2); @@ -7523,13 +7601,13 @@ static void test_fetch_column() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,1,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s(%ld)", c2, l2); assert(strncmp(c2,"mysq",4)==0 && l2 == 5); c2[0]= '\0'; l2= 0; rc = mysql_fetch_column(stmt,bind,1,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %si(%ld)", c2, l2); assert(strcmp(c2,"mysql")==0 && l2 == 5); @@ -7541,7 +7619,7 @@ static void test_fetch_column() bind[0].length= &l1; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %d(%ld)", c1, l1); assert(c1 == 2 && l1 == 4); @@ -7549,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); } @@ -7634,10 +7712,10 @@ static void test_mem_overun() assert(1 == my_process_result(mysql)); stmt = mysql_simple_prepare(mysql, "select * from t_mem_overun"); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); field_res = mysql_get_metadata(stmt); mytest(field_res); @@ -7646,10 +7724,10 @@ static void test_mem_overun() assert( 1000 == mysql_num_fields(field_res)); rc = mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); @@ -7682,7 +7760,7 @@ static void test_free_result() myquery(rc); stmt = mysql_simple_prepare(mysql,"select * from test_free_result"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_LONG; bind[0].buffer= (char *)&bc1; @@ -7691,13 +7769,13 @@ static void test_free_result() bind[0].length= &bl1; rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); c2[0]= '\0'; l2= 0; bind[0].buffer_type= MYSQL_TYPE_STRING; @@ -7707,12 +7785,12 @@ static void test_free_result() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %s(%ld)", c2, l2); assert(strncmp(c2,"1",1)==0 && l2 == 1); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); c1= 0, l2= 0; bind[0].buffer_type= MYSQL_TYPE_LONG; @@ -7722,7 +7800,7 @@ static void test_free_result() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %d(%ld)", c1, l2); assert(c1 == 2 && l2 == 4); @@ -7730,7 +7808,7 @@ static void test_free_result() myquery_r(rc); /* error should be, COMMANDS OUT OF SYNC */ rc = mysql_stmt_free_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_query(mysql,"drop table test_free_result"); myquery(rc); /* should be successful */ @@ -7761,7 +7839,7 @@ static void test_free_store_result() myquery(rc); stmt = mysql_simple_prepare(mysql,"select * from test_free_result"); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type= MYSQL_TYPE_LONG; bind[0].buffer= (char *)&bc1; @@ -7770,16 +7848,16 @@ static void test_free_store_result() bind[0].length= &bl1; rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_bind_result(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); c2[0]= '\0'; l2= 0; bind[0].buffer_type= MYSQL_TYPE_STRING; @@ -7789,12 +7867,12 @@ static void test_free_store_result() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 1: %s(%ld)", c2, l2); assert(strncmp(c2,"1",1)==0 && l2 == 1); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); c1= 0, l2= 0; bind[0].buffer_type= MYSQL_TYPE_LONG; @@ -7804,12 +7882,12 @@ static void test_free_store_result() bind[0].length= &l2; rc = mysql_fetch_column(stmt,bind,0,0); - mystmt(stmt,rc); + check_execute(stmt,rc); fprintf(stdout, "\n col 0: %d(%ld)", c1, l2); assert(c1 == 2 && l2 == 4); rc = mysql_stmt_free_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_query(mysql,"drop table test_free_result"); myquery(rc); @@ -7848,7 +7926,7 @@ static void test_sqlmode() strcpy(query, "INSERT INTO test_piping VALUES(?||?)"); fprintf(stdout,"\n query: %s", query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); fprintf(stdout,"\n total parameters: %ld", mysql_param_count(stmt)); @@ -7865,11 +7943,11 @@ static void test_sqlmode() bind[1].length= 0; rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); strcpy(c1,"My"); strcpy(c2, "SQL"); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); verify_col_data("test_piping","name","MySQL"); @@ -7880,7 +7958,7 @@ static void test_sqlmode() strcpy(query, "SELECT connection_id ()"); fprintf(stdout,"\n query: %s", query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init_r(stmt); + check_stmt_r(stmt); /* ANSI */ strcpy(query,"SET SQL_MODE=\"ANSI\""); @@ -7891,15 +7969,15 @@ static void test_sqlmode() strcpy(query, "INSERT INTO test_piping VALUES(?||?)"); fprintf(stdout,"\n query: %s", query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); fprintf(stdout,"\n total parameters: %ld", mysql_param_count(stmt)); rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); strcpy(c1,"My"); strcpy(c2, "SQL"); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); verify_col_data("test_piping","name","MySQL"); @@ -7908,13 +7986,13 @@ static void test_sqlmode() strcpy(query, "SELECT connection_id ()"); fprintf(stdout,"\n query: %s", query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); @@ -7931,13 +8009,13 @@ static void test_sqlmode() strcpy(query, "SELECT connection_id ()"); fprintf(stdout,"\n query: %s", query); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); assert(rc == MYSQL_NO_DATA); @@ -7972,7 +8050,7 @@ static void test_ts() myquery(rc); stmt = mysql_simple_prepare(mysql,"INSERT INTO test_ts VALUES(?,?,?),(?,?,?)"); - mystmt_init(stmt); + check_stmt(stmt); ts.year= 2003; ts.month= 07; @@ -8000,10 +8078,10 @@ static void test_ts() bind[5]= bind[4]= bind[3]; rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); mysql_stmt_close(stmt); @@ -8012,13 +8090,13 @@ static void test_ts() verify_col_data("test_ts","c","2003-07-12 21:07:46"); stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_ts"); - mystmt_init(stmt); + check_stmt(stmt); prep_res = mysql_get_metadata(stmt); mytest(prep_res); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert( 2== my_process_stmt_result(stmt)); field_count= mysql_num_fields(prep_res); @@ -8035,13 +8113,13 @@ static void test_ts() fprintf(stdout,"\n %s", query); stmt = mysql_prepare(mysql, query, length); - mystmt_init(stmt); + check_stmt(stmt); rc = mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); while (mysql_fetch(stmt) == 0) row_count++; @@ -8083,7 +8161,7 @@ static void test_bug1500() myquery(rc); stmt= mysql_simple_prepare(mysql,"SELECT i FROM test_bg1500 WHERE i IN (?,?,?)"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,3); bind[0].buffer= (char *)int_data; @@ -8096,10 +8174,10 @@ static void test_bug1500() bind[2].buffer= (char *)(int_data + 2); rc= mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -8121,7 +8199,7 @@ static void test_bug1500() stmt= mysql_simple_prepare(mysql, "SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (?)"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -8133,10 +8211,10 @@ static void test_bug1500() bind[0].length= 0; rc= mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -8149,7 +8227,7 @@ static void test_bug1500() /* This should work too */ stmt= mysql_simple_prepare(mysql, "SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (CONCAT(?,'digger'))"); - mystmt_init(stmt); + check_stmt(stmt); verify_param_count(stmt,1); @@ -8161,10 +8239,10 @@ static void test_bug1500() bind[0].length= 0; rc= mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(1 == my_process_stmt_result(stmt)); @@ -8186,7 +8264,7 @@ static void test_bug1946() myquery(rc); stmt = mysql_simple_prepare(mysql, query); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_real_query(mysql, query, strlen(query)); assert(rc != 0); fprintf(stdout, "Got error (as expected):\n"); @@ -8246,11 +8324,11 @@ static void test_bug2247() myquery(rc); stmt= mysql_prepare(mysql, insert, strlen(insert)); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < NUM_ROWS; ++i) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); } exp_count= mysql_stmt_affected_rows(stmt); assert(exp_count == 1); @@ -8278,12 +8356,12 @@ static void test_bug2247() /* check that mysql_stmt_store_result modifies mysql_stmt_affected_rows */ stmt= mysql_prepare(mysql, select, strlen(select)); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); rc= mysql_stmt_store_result(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); exp_count= mysql_stmt_affected_rows(stmt); assert(exp_count == NUM_ROWS); @@ -8319,11 +8397,11 @@ static void test_subqueries() myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(5 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -8368,9 +8446,9 @@ static void test_distinct() for (i= 0; i < 3; i++) { stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(5 == my_process_stmt_result(stmt)); mysql_stmt_close(stmt); } @@ -8399,23 +8477,23 @@ static void test_bug2248() myquery(rc); stmt= mysql_prepare(mysql, query1, strlen(query1)); - mystmt_init(stmt); + check_stmt(stmt); /* 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); stmt= mysql_prepare(mysql, query2, strlen(query2)); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); /* This too should not hang but should return proper error */ rc= mysql_fetch(stmt); @@ -8423,11 +8501,11 @@ static void test_bug2248() /* This too should not hang but should not bark */ rc= mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); /* 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); @@ -8455,11 +8533,11 @@ static void test_subqueries_ref() myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(1 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -8509,10 +8587,10 @@ static void test_union() stmt= mysql_simple_prepare(mysql, "SELECT t1.name FROM t1 UNION " "SELECT t2.name FROM t2"); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_stmt_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); assert(20 == my_process_stmt_result(stmt)); mysql_stmt_close(stmt); @@ -8538,13 +8616,13 @@ static void test_bug3117() myquery(rc); stmt = mysql_simple_prepare(mysql, "SELECT LAST_INSERT_ID()"); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_query(mysql, "INSERT INTO t1 VALUES (NULL)"); myquery(rc); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); buffer.buffer_type= MYSQL_TYPE_LONGLONG; buffer.buffer_length= sizeof(lii); @@ -8553,13 +8631,13 @@ static void test_bug3117() buffer.is_null= &is_null; rc= mysql_bind_result(stmt, &buffer); - mystmt(stmt,rc); + check_execute(stmt,rc); rc= mysql_stmt_store_result(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(is_null == 0 && lii == 1); fprintf(stdout, "\n\tLAST_INSERT_ID() = 1 ok\n"); @@ -8568,10 +8646,10 @@ static void test_bug3117() myquery(rc); rc = mysql_execute(stmt); - mystmt(stmt,rc); + check_execute(stmt,rc); rc = mysql_fetch(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(is_null == 0 && lii == 2); fprintf(stdout, "\tLAST_INSERT_ID() = 2 ok\n"); @@ -8619,11 +8697,11 @@ static void test_join() for (j= 0; j < 9; j++) { stmt= mysql_prepare(mysql, query[j], strlen(query[j])); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(5 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -8666,11 +8744,11 @@ static void test_selecttmp() myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(3 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -8701,47 +8779,47 @@ static void test_create_drop() query= (char*)"create table t1 (a int)"; stmt_create= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_create); + check_stmt(stmt_create); query= (char*)"drop table t1"; stmt_drop= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_drop); + check_stmt(stmt_drop); query= (char*)"select a in (select a from t2) from t1"; stmt_select= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_select); + check_stmt(stmt_select); rc= mysql_query(mysql, "DROP TABLE t1"); myquery(rc); query= (char*)"create table t1 select a from t2"; stmt_create_select= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_create_select); + check_stmt(stmt_create_select); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt_create); - mystmt(stmt_create, rc); + check_execute(stmt_create, rc); fprintf(stdout, "created %i\n", i); rc= mysql_execute(stmt_select); - mystmt(stmt_select, rc); + check_execute(stmt_select, rc); assert(0 == my_process_stmt_result(stmt_select)); rc= mysql_execute(stmt_drop); - mystmt(stmt_drop, rc); + check_execute(stmt_drop, rc); fprintf(stdout, "droped %i\n", i); rc= mysql_execute(stmt_create_select); - mystmt(stmt_create, rc); + check_execute(stmt_create, rc); fprintf(stdout, "created select %i\n", i); rc= mysql_execute(stmt_select); - mystmt(stmt_select, rc); + check_execute(stmt_select, rc); assert(3 == my_process_stmt_result(stmt_select)); rc= mysql_execute(stmt_drop); - mystmt(stmt_drop, rc); + check_execute(stmt_drop, rc); fprintf(stdout, "droped %i\n", i); } @@ -8766,31 +8844,31 @@ static void test_rename() myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); rc= mysql_query(mysql,"create table t1 (a int)"); 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)"); myquery(rc); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); 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"); myquery(rc); rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); fprintf(stdout, "rename reverted\n"); mysql_stmt_close(stmt); @@ -8815,19 +8893,19 @@ static void test_do_set() query= (char*)"do @var:=(1 in (select * from t1))"; stmt_do= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_do); + check_stmt(stmt_do); query= (char*)"set @var=(1 in (select * from t1))"; stmt_set= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_set); + check_stmt(stmt_set); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt_do); - mystmt(stmt_do, rc); + check_execute(stmt_do, rc); fprintf(stdout, "do %i\n", i); rc= mysql_execute(stmt_set); - mystmt(stmt_set, rc); + check_execute(stmt_set, rc); fprintf(stdout, "set %i\n", i); } @@ -8867,39 +8945,39 @@ static void test_multi() query= (char*)"delete t1,t2 from t1,t2 where t1.a=t2.a and t1.b=10"; stmt_delete= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_delete); + check_stmt(stmt_delete); query= (char*)"update t1,t2 set t1.b=10,t2.b=10 where t1.a=t2.a and t1.b=?"; stmt_update= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_update); + check_stmt(stmt_update); query= (char*)"select * from t1"; stmt_select1= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_select1); + check_stmt(stmt_select1); query= (char*)"select * from t2"; stmt_select2= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_select2); + check_stmt(stmt_select2); for(i= 0; i < 3; i++) { rc= mysql_bind_param(stmt_update, bind); - mystmt(stmt_update,rc); + check_execute(stmt_update,rc); rc= mysql_execute(stmt_update); - mystmt(stmt_update, rc); + check_execute(stmt_update, rc); fprintf(stdout, "update %ld\n", param); rc= mysql_execute(stmt_delete); - mystmt(stmt_delete, rc); + check_execute(stmt_delete, rc); fprintf(stdout, "delete %ld\n", param); rc= mysql_execute(stmt_select1); - mystmt(stmt_select1, rc); + check_execute(stmt_select1, rc); assert((uint)(3-param) == my_process_stmt_result(stmt_select1)); rc= mysql_execute(stmt_select2); - mystmt(stmt_select2, rc); + check_execute(stmt_select2, rc); assert((uint)(3-param) == my_process_stmt_result(stmt_select2)); param++; @@ -8936,20 +9014,20 @@ static void test_insert_select() query= (char*)"insert into t1 select a from t2"; stmt_insert= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_insert); + check_stmt(stmt_insert); query= (char*)"select * from t1"; stmt_select= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_select); + check_stmt(stmt_select); for(i= 0; i < 3; i++) { rc= mysql_execute(stmt_insert); - mystmt(stmt_insert, rc); + check_execute(stmt_insert, rc); fprintf(stdout, "insert %u\n", i); rc= mysql_execute(stmt_select); - mystmt(stmt_select, rc); + check_execute(stmt_select, rc); assert((i+1) == my_process_stmt_result(stmt_select)); } @@ -8982,7 +9060,7 @@ static void test_bind_nagative() query= (char*)"INSERT INTO t1 VALUES (?)"; stmt_insert= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt_insert); + check_stmt(stmt_insert); /* bind parameters */ bind[0].buffer_type = FIELD_TYPE_LONG; @@ -8991,11 +9069,11 @@ static void test_bind_nagative() bind[0].is_null = (char*)&my_null; rc= mysql_bind_param(stmt_insert, bind); - mystmt(stmt_insert,rc); + check_execute(stmt_insert,rc); my_val = -1; rc= mysql_execute(stmt_insert); - mystmt(stmt_insert, rc); + check_execute(stmt_insert, rc); mysql_stmt_close(stmt_insert); rc= mysql_query(mysql,"drop table t1"); @@ -9026,7 +9104,7 @@ TYPE=InnoDB DEFAULT CHARSET=utf8"); myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); bind[0].buffer_type = FIELD_TYPE_LONG; bind[0].buffer = (char *)&my_val; @@ -9034,12 +9112,12 @@ TYPE=InnoDB DEFAULT CHARSET=utf8"); bind[0].is_null = (char*)&my_null; my_val= 1; rc= mysql_bind_param(stmt, bind); - mystmt(stmt,rc); + check_execute(stmt,rc); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(1 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -9086,12 +9164,12 @@ static void test_xjoin() myquery(rc); stmt= mysql_prepare(mysql, query, strlen(query)); - mystmt_init(stmt); + check_stmt(stmt); for (i= 0; i < 3; i++) { rc= mysql_execute(stmt); - mystmt(stmt, rc); + check_execute(stmt, rc); assert(1 == my_process_stmt_result(stmt)); } mysql_stmt_close(stmt); @@ -9185,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); @@ -9205,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; @@ -9217,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); @@ -9243,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); @@ -9276,6 +9353,8 @@ static struct my_option client_test_long_options[] = 0, 0, 0, 0, 0}, {"database", 'D', "Database to use", (char **) &opt_db, (char **) &opt_db, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"debug", '#', "Output debug log", (gptr*) &default_dbug_option, + (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Connect to host", (char **) &opt_host, (char **) &opt_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"password", 'p', @@ -9329,6 +9408,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), char *argument) { switch (optid) { + case '#': + DBUG_PUSH(argument ? argument : default_dbug_option); + break; case 'p': if (argument) {