Commit 142b5cab authored by magnus@neptunus.(none)'s avatar magnus@neptunus.(none)

Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1

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