Commit e2f0e8f2 authored by unknown's avatar unknown

Merge gbichot@213.136.52.20:/home/bk/mysql-4.1

into mysql.com:/home/mysql_src/mysql-4.1

parents 24e3862c 0aa48dc5
......@@ -3845,7 +3845,23 @@ mysql_parse(THD *thd, char *inBuf, uint length)
if (query_cache_send_result_to_client(thd, inBuf, length) <= 0)
{
LEX *lex=lex_start(thd, (uchar*) inBuf, length);
if (!yyparse((void *)thd) && ! thd->is_fatal_error)
if (!yyparse((void *)thd) && ! thd->is_fatal_error &&
/*
If this is not a multiple query, ensure that it has been
successfully parsed until the last character. This is to prevent
against a wrong (too big) length passed to mysql_real_query(),
mysql_prepare()... which can generate garbage characters at the
end. If the query was initially multiple, found_colon will be false
only when we are in the last query; this last query had already
been end-spaces-stripped by alloc_query() in dispatch_command(); as
end spaces are the only thing we accept at the end of a query, and
they have been stripped already, here we can require that nothing
remains after parsing.
*/
(thd->lex->found_colon ||
(char*)(thd->lex->ptr) == (thd->query+thd->query_length+1) ||
/* yyerror() will show the garbage chars to the user */
(yyerror("syntax error"), 0)))
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
if (mqh_used && thd->user_connect &&
......
......@@ -909,7 +909,15 @@ bool mysql_stmt_prepare(THD *thd, char *packet, uint packet_length)
lex->safe_to_cache_query= 0;
lex->param_count= 0;
if (yyparse((void *)thd) || thd->is_fatal_error || send_prepare_results(stmt))
if (yyparse((void *)thd) || thd->is_fatal_error ||
/*
Check for wrong (too big) length passed to mysql_prepare() resulting in
garbage at the end of the query. There is a similar check in mysql_parse().
*/
(!thd->lex->found_colon &&
(char*)(thd->lex->ptr) != (thd->query+thd->query_length+1) &&
/* yyerror() will show the garbage chars to the user */
(yyerror("syntax error"), 1)) || send_prepare_results(stmt))
goto yyparse_err;
lex_end(lex);
......
......@@ -153,6 +153,17 @@ static void print_st_error(MYSQL_STMT *stmt, const char *msg)
else if (msg) fprintf(stderr, " [MySQL] %s\n", msg);
}
/*
This is to be what mysql_query() is for mysql_real_query(), for
mysql_prepare(): a variant without the 'length' parameter.
*/
MYSQL_STMT *STDCALL
mysql_simple_prepare(MYSQL *mysql, const char *query)
{
return mysql_prepare(mysql, query, strlen(query));
}
/********************************************************
* connect to the server *
*********************************************************/
......@@ -459,14 +470,14 @@ uint my_process_stmt_result(MYSQL_STMT *stmt)
/********************************************************
* process the stmt result set *
*********************************************************/
uint my_stmt_result(const char *buff, unsigned long length)
uint my_stmt_result(const char *buff)
{
MYSQL_STMT *stmt;
uint row_count;
int rc;
fprintf(stdout,"\n\n %s", buff);
stmt= mysql_prepare(mysql,buff,length);
stmt= mysql_simple_prepare(mysql,buff);
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -605,7 +616,7 @@ static void execute_prepare_query(const char *query, ulonglong exp_count)
ulonglong affected_rows;
int rc;
stmt= mysql_prepare(mysql,query,strlen(query));
stmt= mysql_simple_prepare(mysql,query);
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -913,7 +924,7 @@ static void test_prepare_simple()
/* alter table */
strmov(query,"ALTER TABLE test_prepare_simple ADD new char(20)");
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -921,7 +932,7 @@ static void test_prepare_simple()
/* insert */
strmov(query,"INSERT INTO test_prepare_simple VALUES(?,?)");
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -929,7 +940,7 @@ static void test_prepare_simple()
/* update */
strmov(query,"UPDATE test_prepare_simple SET id=? WHERE id=? AND name= ?");
stmt = mysql_prepare(mysql, query, 100);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,3);
......@@ -937,7 +948,7 @@ static void test_prepare_simple()
/* delete */
strmov(query,"DELETE FROM test_prepare_simple WHERE id=10");
stmt = mysql_prepare(mysql, query, 60);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -948,7 +959,7 @@ static void test_prepare_simple()
/* delete */
strmov(query,"DELETE FROM test_prepare_simple WHERE id=?");
stmt = mysql_prepare(mysql, query, 50);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -959,7 +970,7 @@ static void test_prepare_simple()
/* select */
strmov(query,"SELECT * FROM test_prepare_simple WHERE id=? AND name= ?");
stmt = mysql_prepare(mysql, query, 100);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -997,7 +1008,7 @@ static void test_prepare_field_result()
/* insert */
strmov(query,"SELECT int_c,var_c,date_c as date,ts_c,char_c FROM \
test_prepare_field_result as t1 WHERE int_c=?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -1045,11 +1056,11 @@ static void test_prepare_syntax()
myquery(rc);
strmov(query,"INSERT INTO test_prepare_syntax VALUES(?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init_r(stmt);
strmov(query,"SELECT id,name FROM test_prepare_syntax WHERE id=? AND WHERE");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init_r(stmt);
/* now fetch the results ..*/
......@@ -1095,7 +1106,7 @@ static void test_prepare()
/* insert by prepare */
strxmov(query,"INSERT INTO my_prepare VALUES(?,?,?,?,?,?,?)",NullS);
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,7);
......@@ -1159,9 +1170,9 @@ static void test_prepare()
myquery(rc);
/* test the results now, only one row should exists */
assert(tiny_data == (char) my_stmt_result("SELECT * FROM my_prepare",50));
assert(tiny_data == (char) my_stmt_result("SELECT * FROM my_prepare"));
stmt = mysql_prepare(mysql,"SELECT * FROM my_prepare",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM my_prepare");
mystmt_init(stmt);
rc = mysql_bind_result(stmt, bind);
......@@ -1266,7 +1277,7 @@ static void test_double_compare()
myquery(rc);
strmov(query, "UPDATE test_double_compare SET col1=100 WHERE col1 = ? AND col2 = ? AND COL3 = ?");
stmt = mysql_prepare(mysql,query, strlen(query));
stmt = mysql_simple_prepare(mysql,query);
mystmt_init(stmt);
verify_param_count(stmt,3);
......@@ -1347,11 +1358,11 @@ static void test_null()
/* insert by prepare, wrong column name */
strmov(query,"INSERT INTO test_null(col3,col2) VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init_r(stmt);
strmov(query,"INSERT INTO test_null(col1,col2) VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -1393,7 +1404,7 @@ static void test_null()
myquery(rc);
nData*= 2;
assert(nData == my_stmt_result("SELECT * FROM test_null", 30));
assert(nData == my_stmt_result("SELECT * FROM test_null"));
/* Fetch results */
bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -1403,7 +1414,7 @@ static void test_null()
bind[0].is_null= &is_null[0];
bind[1].is_null= &is_null[1];
stmt = mysql_prepare(mysql,"SELECT * FROM test_null",30);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_null");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -1475,9 +1486,9 @@ static void test_fetch_null()
strmov((char *)query , "SELECT * FROM test_fetch_null");
assert(3 == my_stmt_result(query,50));
assert(3 == my_stmt_result(query));
stmt = mysql_prepare(mysql, query, 50);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -1516,7 +1527,7 @@ static void test_select_version()
myheader("test_select_version");
stmt = mysql_prepare(mysql, "SELECT @@version", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@version");
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -1538,7 +1549,7 @@ static void test_select_simple()
myheader("test_select_simple");
stmt = mysql_prepare(mysql, "SHOW TABLES FROM mysql", 50);
stmt = mysql_simple_prepare(mysql, "SHOW TABLES FROM mysql");
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -1630,7 +1641,7 @@ static void test_select_prepare()
rc = mysql_commit(mysql);
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_select",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_select");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -1660,7 +1671,7 @@ static void test_select_prepare()
rc = mysql_commit(mysql);
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_select",25);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_select");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -1715,7 +1726,7 @@ static void test_select()
myquery(rc);
strmov(query,"SELECT * FROM test_select WHERE id=? AND name=?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -1774,7 +1785,7 @@ session_id char(9) NOT NULL, \
myquery(rc);
strmov(query,"SELECT * FROM test_select WHERE session_id = ?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -1852,7 +1863,7 @@ static void test_bug1180()
myquery(rc);
strmov(query,"SELECT * FROM test_select WHERE ?=\"1111\" and session_id = \"abc\"");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -1932,7 +1943,7 @@ static void test_bug1644()
myquery(rc);
strmov(query, "INSERT INTO foo_dfr VALUES (?,?,?,? )");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt, 4);
......@@ -2030,7 +2041,7 @@ static void test_select_show()
rc = mysql_query(mysql, "CREATE TABLE test_show(id int(4) NOT NULL primary key, name char(2))");
myquery(rc);
stmt = mysql_prepare(mysql, "show columns from test_show", 30);
stmt = mysql_simple_prepare(mysql, "show columns from test_show");
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -2041,11 +2052,11 @@ static void test_select_show()
my_process_stmt_result(stmt);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "show tables from mysql like ?", 50);
stmt = mysql_simple_prepare(mysql, "show tables from mysql like ?");
mystmt_init_r(stmt);
strxmov(query,"show tables from ", current_db, " like \'test_show\'", NullS);
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -2054,7 +2065,7 @@ static void test_select_show()
my_process_stmt_result(stmt);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "describe test_show", 30);
stmt = mysql_simple_prepare(mysql, "describe test_show");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -2063,7 +2074,7 @@ static void test_select_show()
my_process_stmt_result(stmt);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "show keys from test_show", 30);
stmt = mysql_simple_prepare(mysql, "show keys from test_show");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -2115,7 +2126,7 @@ static void test_simple_update()
/* insert by prepare */
strmov(query,"UPDATE test_update SET col2=? WHERE col1=?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2190,11 +2201,11 @@ static void test_long_data()
myquery(rc);
strmov(query,"INSERT INTO test_long_data(col1,col2) VALUES(?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init_r(stmt);
strmov(query,"INSERT INTO test_long_data(col1,col2,col3) VALUES(?,?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,3);
......@@ -2282,7 +2293,7 @@ static void test_long_data_str()
myquery(rc);
strmov(query,"INSERT INTO test_long_data_str VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2373,7 +2384,7 @@ static void test_long_data_str1()
myquery(rc);
strmov(query,"INSERT INTO test_long_data_str VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2462,7 +2473,7 @@ static void test_long_data_bin()
myquery(rc);
strmov(query,"INSERT INTO test_long_data_bin VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2557,7 +2568,7 @@ static void test_simple_delete()
/* insert by prepare */
strmov(query,"DELETE FROM test_simple_delete WHERE col1=? AND col2=? AND col3=100");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2637,7 +2648,7 @@ static void test_update()
myquery(rc);
strmov(query,"INSERT INTO test_update(col2,col3) VALUES(?,?)");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2667,7 +2678,7 @@ static void test_update()
mysql_stmt_close(stmt);
strmov(query,"UPDATE test_update SET col2=? WHERE col3=?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -2733,7 +2744,7 @@ static void test_prepare_noparam()
/* insert by prepare */
strmov(query,"INSERT INTO my_prepare VALUES(10,'venu')");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -2812,7 +2823,7 @@ static void test_bind_result()
bind[1].length= &length1;
bind[1].is_null= &is_null[1];
stmt = mysql_prepare(mysql, "SELECT * FROM test_bind_result", 50);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_bind_result");
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -2933,7 +2944,7 @@ static void test_bind_result_ext()
bind[7].length= &bLength;
bind[7].buffer_length= sizeof(bData);
stmt = mysql_prepare(mysql, "select * from test_bind_result", 50);
stmt = mysql_simple_prepare(mysql, "select * from test_bind_result");
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -3058,7 +3069,7 @@ static void test_bind_result_ext1()
bind[i].length= &length[i];
}
stmt = mysql_prepare(mysql, "select * from test_bind_result", 50);
stmt = mysql_simple_prepare(mysql, "select * from test_bind_result");
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -3118,7 +3129,7 @@ static void bind_fetch(int row_count)
MYSQL_BIND bind[7];
my_bool is_null[7];
stmt = mysql_prepare(mysql,"INSERT INTO test_bind_fetch VALUES(?,?,?,?,?,?,?)",100);
stmt = mysql_simple_prepare(mysql,"INSERT INTO test_bind_fetch VALUES(?,?,?,?,?,?,?)");
mystmt_init(stmt);
verify_param_count(stmt, 7);
......@@ -3151,9 +3162,9 @@ static void bind_fetch(int row_count)
mysql_stmt_close(stmt);
assert(row_count == (int)
my_stmt_result("SELECT * FROM test_bind_fetch",50));
my_stmt_result("SELECT * FROM test_bind_fetch"));
stmt = mysql_prepare(mysql,"SELECT * FROM test_bind_fetch",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_bind_fetch");
myquery(rc);
for (i= 0; i < (int) array_elements(bind); i++)
......@@ -3321,9 +3332,9 @@ static void test_fetch_date()
bind[6].buffer_length= sizeof(ts_6);
bind[6].length= &ts6_length;
assert(1 == my_stmt_result("SELECT * FROM test_bind_result",50));
assert(1 == my_stmt_result("SELECT * FROM test_bind_result"));
stmt = mysql_prepare(mysql, "SELECT * FROM test_bind_result", 50);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_bind_result");
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -3651,7 +3662,7 @@ static void test_prepare_ext()
/* insert by prepare - all integers */
strmov(query,(char *)"INSERT INTO test_prepare_ext(c1,c2,c3,c4,c5,c6) VALUES(?,?,?,?,?,?)");
stmt = mysql_prepare(mysql,query, strlen(query));
stmt = mysql_simple_prepare(mysql,query);
mystmt_init(stmt);
verify_param_count(stmt,6);
......@@ -3704,7 +3715,7 @@ static void test_prepare_ext()
rc = mysql_commit(mysql);
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT c1,c2,c3,c4,c5,c6 FROM test_prepare_ext",100);
stmt = mysql_simple_prepare(mysql,"SELECT c1,c2,c3,c4,c5,c6 FROM test_prepare_ext");
mystmt_init(stmt);
/* get the result */
......@@ -3850,7 +3861,7 @@ static void test_insert()
myquery(rc);
/* insert by prepare */
stmt = mysql_prepare(mysql, "INSERT INTO test_prep_insert VALUES(?,?)", 70);
stmt = mysql_simple_prepare(mysql, "INSERT INTO test_prep_insert VALUES(?,?)");
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -3922,7 +3933,7 @@ static void test_prepare_resultset()
name varchar(50),extra double)");
myquery(rc);
stmt = mysql_prepare(mysql, "SELECT * FROM test_prepare_resultset", 60);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_prepare_resultset");
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -4034,25 +4045,25 @@ static void test_stmt_close()
myquery(rc);
strmov(query,"ALTER TABLE test_stmt_close ADD name varchar(20)");
stmt1= mysql_prepare(lmysql, query, 70);
stmt1= mysql_simple_prepare(lmysql, query);
mystmt_init(stmt1);
verify_param_count(stmt1, 0);
strmov(query,"INSERT INTO test_stmt_close(id) VALUES(?)");
stmt_x= mysql_prepare(mysql, query, 70);
stmt_x= mysql_simple_prepare(mysql, query);
mystmt_init(stmt_x);
verify_param_count(stmt_x, 1);
strmov(query,"UPDATE test_stmt_close SET id=? WHERE id=?");
stmt3= mysql_prepare(lmysql, query, 70);
stmt3= mysql_simple_prepare(lmysql, query);
mystmt_init(stmt3);
verify_param_count(stmt3, 2);
strmov(query,"SELECT * FROM test_stmt_close WHERE id=?");
stmt2= mysql_prepare(lmysql, query, 70);
stmt2= mysql_simple_prepare(lmysql, query);
mystmt_init(stmt2);
verify_param_count(stmt2, 1);
......@@ -4119,7 +4130,7 @@ static void test_set_variable()
mysql_autocommit(mysql, TRUE);
stmt1 = mysql_prepare(mysql, "show variables like 'max_error_count'", 50);
stmt1 = mysql_simple_prepare(mysql, "show variables like 'max_error_count'");
mystmt_init(stmt1);
get_bind[0].buffer_type= MYSQL_TYPE_STRING;
......@@ -4150,7 +4161,7 @@ static void test_set_variable()
rc = mysql_fetch(stmt1);
assert(rc == MYSQL_NO_DATA);
stmt = mysql_prepare(mysql, "set max_error_count=?", 50);
stmt = mysql_simple_prepare(mysql, "set max_error_count=?");
mystmt_init(stmt);
set_bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -4225,7 +4236,7 @@ static void test_insert_meta()
myquery(rc);
strmov(query,"INSERT INTO test_prep_insert VALUES(10,'venu1','test')");
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -4236,7 +4247,7 @@ static void test_insert_meta()
mysql_stmt_close(stmt);
strmov(query,"INSERT INTO test_prep_insert VALUES(?,'venu',?)");
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -4288,7 +4299,7 @@ static void test_update_meta()
myquery(rc);
strmov(query,"UPDATE test_prep_update SET col1=10, col2='venu1' WHERE col3='test'");
stmt = mysql_prepare(mysql, query, 100);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -4299,7 +4310,7 @@ static void test_update_meta()
mysql_stmt_close(stmt);
strmov(query,"UPDATE test_prep_update SET col1=?, col2='venu' WHERE col3=?");
stmt = mysql_prepare(mysql, query, 100);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -4355,7 +4366,7 @@ static void test_select_meta()
myquery(rc);
strmov(query,"SELECT * FROM test_prep_select WHERE col1=10");
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,0);
......@@ -4364,7 +4375,7 @@ static void test_select_meta()
mytest_r(result);
strmov(query,"SELECT col1, col3 from test_prep_select WHERE col1=? AND col3='test' AND col2= ?");
stmt = mysql_prepare(mysql, query, 120);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
verify_param_count(stmt,2);
......@@ -4499,10 +4510,10 @@ static void test_multi_stmt()
rc = mysql_query(mysql,"INSERT INTO test_multi_table values(10,'mysql')");
myquery(rc);
stmt = mysql_prepare(mysql, "SELECT * FROM test_multi_table WHERE id = ?", 100);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_multi_table WHERE id = ?");
mystmt_init(stmt);
stmt2 = mysql_prepare(mysql, "UPDATE test_multi_table SET name='updated' WHERE id=10",100);
stmt2 = mysql_simple_prepare(mysql, "UPDATE test_multi_table SET name='updated' WHERE id=10");
mystmt_init(stmt2);
verify_param_count(stmt,1);
......@@ -4544,7 +4555,7 @@ static void test_multi_stmt()
assert(rc == MYSQL_NO_DATA);
/* alter the table schema now */
stmt1 = mysql_prepare(mysql,"DELETE FROM test_multi_table WHERE id = ? AND name=?",100);
stmt1 = mysql_simple_prepare(mysql,"DELETE FROM test_multi_table WHERE id = ? AND name=?");
mystmt_init(stmt1);
verify_param_count(stmt1,2);
......@@ -4584,7 +4595,7 @@ static void test_multi_stmt()
rc = mysql_fetch(stmt);
assert(rc == MYSQL_NO_DATA);
assert(0 == my_stmt_result("SELECT * FROM test_multi_table",50));
assert(0 == my_stmt_result("SELECT * FROM test_multi_table"));
mysql_stmt_close(stmt);
mysql_stmt_close(stmt2);
......@@ -4631,7 +4642,7 @@ static void test_manual_sample()
/* Prepare a insert query with 3 parameters */
strmov(query, "INSERT INTO test_table(col1,col2,col3) values(?,?,?)");
if (!(stmt = mysql_prepare(mysql,query,strlen(query))))
if (!(stmt = mysql_simple_prepare(mysql,query)))
{
fprintf(stderr, "\n prepare, insert failed");
fprintf(stderr, "\n %s", mysql_error(mysql));
......@@ -4735,7 +4746,7 @@ static void test_manual_sample()
fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
exit(0);
}
assert(2 == my_stmt_result("SELECT * FROM test_table",50));
assert(2 == my_stmt_result("SELECT * FROM test_table"));
/* DROP THE TABLE */
if (mysql_query(mysql,"DROP TABLE test_table"))
......@@ -4770,7 +4781,7 @@ static void test_prepare_alter()
rc = mysql_query(mysql,"INSERT INTO test_prep_alter values(10,'venu'),(20,'mysql')");
myquery(rc);
stmt = mysql_prepare(mysql, "INSERT INTO test_prep_alter VALUES(?,'monty')", 100);
stmt = mysql_simple_prepare(mysql, "INSERT INTO test_prep_alter VALUES(?,'monty')");
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -4796,7 +4807,7 @@ static void test_prepare_alter()
rc = mysql_execute(stmt);
mystmt(stmt, rc);
assert(4 == my_stmt_result("SELECT * FROM test_prep_alter",50));
assert(4 == my_stmt_result("SELECT * FROM test_prep_alter"));
mysql_stmt_close(stmt);
}
......@@ -4978,7 +4989,7 @@ static void test_store_result()
bind[1].is_null= &is_null[1];
length1= 0;
stmt = mysql_prepare(mysql, "SELECT * FROM test_store_result", 50);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_store_result");
mystmt_init(stmt);
rc = mysql_bind_result(stmt,bind);
......@@ -5089,7 +5100,7 @@ static void test_store_result1()
rc = mysql_commit(mysql);
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_store_result",100);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_store_result");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -5160,7 +5171,7 @@ static void test_store_result2()
bind[0].is_null= 0;
strmov((char *)query , "SELECT col1 FROM test_store_result where col1= ?");
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc = mysql_bind_param(stmt,bind);
......@@ -5252,7 +5263,7 @@ static void test_subselect()
bind[0].length= 0;
bind[0].is_null= 0;
stmt = mysql_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);
rc = mysql_bind_param(stmt,bind);
......@@ -5275,13 +5286,13 @@ static void test_subselect()
mysql_stmt_close(stmt);
assert(3 == my_stmt_result("SELECT * FROM test_sub2",50));
assert(3 == my_stmt_result("SELECT * FROM test_sub2"));
strmov((char *)query , "SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=?)");
assert(1 == my_stmt_result("SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=8)",100));
assert(1 == my_stmt_result("SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=7)",100));
assert(1 == my_stmt_result("SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=8)"));
assert(1 == my_stmt_result("SELECT ROW(1,7) IN (select id, id1 from test_sub2 WHERE id1=7)"));
stmt = mysql_prepare(mysql, query, 150);
stmt = mysql_simple_prepare(mysql, query, 150);
mystmt_init(stmt);
rc = mysql_bind_param(stmt,bind);
......@@ -5335,7 +5346,7 @@ static void test_bind_date_conv(uint row_count)
ulong second_part;
uint year, month, day, hour, minute, sec;
stmt = mysql_prepare(mysql,"INSERT INTO test_date VALUES(?,?,?,?)", 100);
stmt = mysql_simple_prepare(mysql,"INSERT INTO test_date VALUES(?,?,?,?)");
mystmt_init(stmt);
verify_param_count(stmt, 4);
......@@ -5389,9 +5400,9 @@ static void test_bind_date_conv(uint row_count)
mysql_stmt_close(stmt);
assert(row_count == my_stmt_result("SELECT * FROM test_date",50));
assert(row_count == my_stmt_result("SELECT * FROM test_date"));
stmt = mysql_prepare(mysql,"SELECT * FROM test_date",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_date");
myquery(rc);
rc = mysql_bind_result(stmt, bind);
......@@ -5586,14 +5597,14 @@ static void test_pure_coverage()
rc = mysql_query(mysql,"CREATE TABLE test_pure(c1 int, c2 varchar(20))");
myquery(rc);
stmt = mysql_prepare(mysql,"insert into test_pure(c67788) values(10)",100);
stmt = mysql_simple_prepare(mysql,"insert into test_pure(c67788) values(10)");
mystmt_init_r(stmt);
#ifndef DBUG_OFF
stmt = mysql_prepare(mysql,(const char *)0,0);
mystmt_init_r(stmt);
stmt = mysql_prepare(mysql,"insert into test_pure(c2) values(10)",100);
stmt = mysql_simple_prepare(mysql,"insert into test_pure(c2) values(10)");
mystmt_init(stmt);
rc = mysql_bind_param(stmt, bind);
......@@ -5602,7 +5613,7 @@ static void test_pure_coverage()
mysql_stmt_close(stmt);
#endif
stmt = mysql_prepare(mysql,"insert into test_pure(c2) values(?)",100);
stmt = mysql_simple_prepare(mysql,"insert into test_pure(c2) values(?)");
mystmt_init(stmt);
#ifndef DBUG_OFF
......@@ -5630,7 +5641,7 @@ static void test_pure_coverage()
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql,"select * from test_pure",100);
stmt = mysql_simple_prepare(mysql,"select * from test_pure");
mystmt(stmt, rc);
rc = mysql_execute(stmt);
......@@ -5682,7 +5693,7 @@ static void test_buffers()
,('Database'),('Open-Source'),('Popular')");
myquery(rc);
stmt = mysql_prepare(mysql,"select str from test_buffer",100);
stmt = mysql_simple_prepare(mysql,"select str from test_buffer");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -5760,7 +5771,7 @@ static void test_open_direct()
rc = mysql_query(mysql,"CREATE TABLE test_open_direct(id int, name char(6))");
myquery(rc);
stmt = mysql_prepare(mysql,"INSERT INTO test_open_direct values(10,'mysql')", 100);
stmt = mysql_simple_prepare(mysql,"INSERT INTO test_open_direct values(10,'mysql')");
mystmt_init(stmt);
rc = mysql_query(mysql, "SELECT * FROM test_open_direct");
......@@ -5799,7 +5810,7 @@ static void test_open_direct()
mysql_stmt_close(stmt);
/* run a direct query in the middle of a fetch */
stmt= mysql_prepare(mysql,"SELECT * FROM test_open_direct",100);
stmt= mysql_simple_prepare(mysql,"SELECT * FROM test_open_direct");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -5818,7 +5829,7 @@ static void test_open_direct()
myquery(rc);
/* run a direct query with store result */
stmt= mysql_prepare(mysql,"SELECT * FROM test_open_direct",100);
stmt= mysql_simple_prepare(mysql,"SELECT * FROM test_open_direct");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -5849,8 +5860,8 @@ static void test_fetch_nobuffs()
myheader("test_fetch_nobuffs");
stmt = mysql_prepare(mysql,"SELECT DATABASE(), CURRENT_USER(), \
CURRENT_DATE(), CURRENT_TIME()",100);
stmt = mysql_simple_prepare(mysql,"SELECT DATABASE(), CURRENT_USER(), \
CURRENT_DATE(), CURRENT_TIME()");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -5923,7 +5934,7 @@ static void test_ushort_bug()
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_ushort",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_ushort");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6007,7 +6018,7 @@ static void test_sshort_bug()
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_sshort",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_sshort");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6091,7 +6102,7 @@ static void test_stiny_bug()
myquery(rc);
stmt = mysql_prepare(mysql,"SELECT * FROM test_stiny",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_stiny");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6176,7 +6187,7 @@ static void test_field_misc()
mysql_free_result(result);
stmt = mysql_prepare(mysql,"SELECT @@autocommit",20);
stmt = mysql_simple_prepare(mysql,"SELECT @@autocommit");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6196,7 +6207,7 @@ static void test_field_misc()
mysql_free_result(result);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "SELECT @@table_type", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@table_type");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6220,7 +6231,7 @@ static void test_field_misc()
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "SELECT @@table_type", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@table_type");
mystmt_init(stmt);
result = mysql_get_metadata(stmt);
......@@ -6240,7 +6251,7 @@ static void test_field_misc()
mysql_free_result(result);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "SELECT @@max_error_count", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@max_error_count");
mystmt_init(stmt);
result = mysql_get_metadata(stmt);
......@@ -6260,7 +6271,7 @@ static void test_field_misc()
mysql_free_result(result);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "SELECT @@max_allowed_packet", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@max_allowed_packet");
mystmt_init(stmt);
result = mysql_get_metadata(stmt);
......@@ -6280,7 +6291,7 @@ static void test_field_misc()
mysql_free_result(result);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "SELECT @@sql_warnings", 30);
stmt = mysql_simple_prepare(mysql, "SELECT @@sql_warnings");
mystmt_init(stmt);
result = mysql_get_metadata(stmt);
......@@ -6341,7 +6352,7 @@ static void test_set_option()
mysql_free_result(result);
fprintf(stdout,"\n with SQL_SELECT_LIMIT=2 (prepare)");
stmt = mysql_prepare(mysql, "SELECT * FROM test_limit", 50);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_limit");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6356,7 +6367,7 @@ static void test_set_option()
rc= mysql_query(mysql,"SET OPTION SQL_SELECT_LIMIT=DEFAULT");
myquery(rc);
stmt = mysql_prepare(mysql, "SELECT * FROM test_limit", 50);
stmt = mysql_simple_prepare(mysql, "SELECT * FROM test_limit");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6433,18 +6444,20 @@ static void test_prepare_grant()
execute_prepare_query("INSERT INTO test_grant(a) VALUES(NULL)",1);
execute_prepare_query("INSERT INTO test_grant VALUES(NULL)",1);
execute_prepare_query("UPDATE test_grant SET a=9 WHERE a=1",1);
assert(4 == my_stmt_result("SELECT a FROM test_grant",50));
assert(4 == my_stmt_result("SELECT a FROM test_grant"));
/* Both DELETE expected to fail as user does not have DELETE privs */
rc = mysql_query(mysql,"DELETE FROM test_grant");
myquery_r(rc);
stmt= mysql_prepare(mysql,"DELETE FROM test_grant",50);
stmt= mysql_simple_prepare(mysql,"DELETE FROM test_grant");
mystmt_init(stmt);
rc = mysql_execute(stmt);
myquery_r(rc);
assert(4 == my_stmt_result("SELECT * FROM test_grant",50));
assert(4 == my_stmt_result("SELECT * FROM test_grant"));
mysql_close(lmysql);
mysql= org_mysql;
......@@ -6487,7 +6500,7 @@ static void test_frm_bug()
rc= mysql_query(mysql,"flush tables");
myquery(rc);
stmt = mysql_prepare(mysql, "show variables like 'datadir'", 50);
stmt = mysql_simple_prepare(mysql, "show variables like 'datadir'");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6570,7 +6583,7 @@ static void test_decimal_bug()
rc = mysql_query(mysql, "insert into test_decimal_bug value(8),(10.22),(5.61)");
myquery(rc);
stmt = mysql_prepare(mysql,"select c1 from test_decimal_bug where c1= ?",50);
stmt = mysql_simple_prepare(mysql,"select c1 from test_decimal_bug where c1= ?");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_DOUBLE;
......@@ -6666,7 +6679,7 @@ static void test_explain_bug()
rc = mysql_query(mysql, "CREATE TABLE test_explain(id int, name char(2))");
myquery(rc);
stmt = mysql_prepare(mysql, "explain test_explain", 30);
stmt = mysql_simple_prepare(mysql, "explain test_explain");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6702,7 +6715,7 @@ static void test_explain_bug()
mysql_free_result(result);
mysql_stmt_close(stmt);
stmt = mysql_prepare(mysql, "explain select id, name FROM test_explain", 50);
stmt = mysql_simple_prepare(mysql, "explain select id, name FROM test_explain");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -6950,10 +6963,10 @@ static void test_logs()
myheader("test_logs");
rc = mysql_real_query(mysql, "DROP TABLE IF EXISTS test_logs", 100);
rc = mysql_query(mysql, "DROP TABLE IF EXISTS test_logs");
myquery(rc);
rc = mysql_real_query(mysql, "CREATE TABLE test_logs(id smallint, name varchar(20))", 100);
rc = mysql_query(mysql, "CREATE TABLE test_logs(id smallint, name varchar(20))");
myquery(rc);
length= (ulong)(strmov((char *)data,"INSERT INTO test_logs VALUES(?,?)") - data);
......@@ -7015,7 +7028,7 @@ static void test_logs()
mysql_stmt_close(stmt);
length= (ulong)(strmov((char *)data, "SELECT * FROM test_logs WHERE id=?") - data);
stmt = mysql_prepare(mysql, data, length+2);
stmt = mysql_prepare(mysql, data, length);
mystmt_init(stmt);
rc = mysql_bind_param(stmt, bind);
......@@ -7125,7 +7138,7 @@ static void test_nstmts()
mysql_stmt_close(stmt);
}
stmt = mysql_prepare(mysql," select count(*) from test_nstmts", 50);
stmt = mysql_simple_prepare(mysql," select count(*) from test_nstmts");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -7172,7 +7185,7 @@ static void test_fetch_seek()
rc = mysql_query(mysql, "insert into test_seek(c2) values('venu'),('mysql'),('open'),('source')");
myquery(rc);
stmt = mysql_prepare(mysql,"select * from test_seek",50);
stmt = mysql_simple_prepare(mysql,"select * from test_seek");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -7267,7 +7280,7 @@ static void test_fetch_offset()
rc = mysql_query(mysql, "insert into test_column values('abcdefghij'),(null)");
myquery(rc);
stmt = mysql_prepare(mysql,"select * from test_column",50);
stmt = mysql_simple_prepare(mysql,"select * from test_column");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_STRING;
......@@ -7350,7 +7363,7 @@ static void test_fetch_column()
rc = mysql_query(mysql, "insert into test_column(c2) values('venu'),('mysql')");
myquery(rc);
stmt = mysql_prepare(mysql,"select * from test_column order by c2 desc", 50);
stmt = mysql_simple_prepare(mysql,"select * from test_column order by c2 desc");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -7537,7 +7550,7 @@ static void test_mem_overun()
assert(1 == my_process_result(mysql));
stmt = mysql_prepare(mysql, "select * from t_mem_overun",30);
stmt = mysql_simple_prepare(mysql, "select * from t_mem_overun");
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -7583,7 +7596,7 @@ static void test_free_result()
rc = mysql_query(mysql, "insert into test_free_result values(),(),()");
myquery(rc);
stmt = mysql_prepare(mysql,"select * from test_free_result",50);
stmt = mysql_simple_prepare(mysql,"select * from test_free_result");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -7662,7 +7675,7 @@ static void test_free_store_result()
rc = mysql_query(mysql, "insert into test_free_result values(),(),()");
myquery(rc);
stmt = mysql_prepare(mysql,"select * from test_free_result",50);
stmt = mysql_simple_prepare(mysql,"select * from test_free_result");
mystmt_init(stmt);
bind[0].buffer_type= MYSQL_TYPE_LONG;
......@@ -7749,7 +7762,7 @@ static void test_sqlmode()
strcpy(query, "INSERT INTO test_piping VALUES(?||?)");
fprintf(stdout,"\n query: %s", query);
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
fprintf(stdout,"\n total parameters: %ld", mysql_param_count(stmt));
......@@ -7781,7 +7794,7 @@ static void test_sqlmode()
strcpy(query, "SELECT connection_id ()");
fprintf(stdout,"\n query: %s", query);
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init_r(stmt);
/* ANSI */
......@@ -7792,7 +7805,7 @@ static void test_sqlmode()
strcpy(query, "INSERT INTO test_piping VALUES(?||?)");
fprintf(stdout,"\n query: %s", query);
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
fprintf(stdout,"\n total parameters: %ld", mysql_param_count(stmt));
......@@ -7809,7 +7822,7 @@ static void test_sqlmode()
/* ANSI mode spaces ... */
strcpy(query, "SELECT connection_id ()");
fprintf(stdout,"\n query: %s", query);
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -7832,7 +7845,7 @@ static void test_sqlmode()
strcpy(query, "SELECT connection_id ()");
fprintf(stdout,"\n query: %s", query);
stmt = mysql_prepare(mysql, query, 70);
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc = mysql_execute(stmt);
......@@ -7873,7 +7886,7 @@ static void test_ts()
rc = mysql_commit(mysql);
myquery(rc);
stmt = mysql_prepare(mysql,"INSERT INTO test_ts VALUES(?,?,?),(?,?,?)",50);
stmt = mysql_simple_prepare(mysql,"INSERT INTO test_ts VALUES(?,?,?),(?,?,?)");
mystmt_init(stmt);
ts.year= 2003;
......@@ -7912,7 +7925,7 @@ static void test_ts()
verify_col_data("test_ts","b","21:07:46");
verify_col_data("test_ts","c","2003-07-12 21:07:46");
stmt = mysql_prepare(mysql,"SELECT * FROM test_ts",50);
stmt = mysql_simple_prepare(mysql,"SELECT * FROM test_ts");
mystmt_init(stmt);
prep_res = mysql_get_metadata(stmt);
......@@ -7983,7 +7996,7 @@ static void test_bug1500()
rc= mysql_commit(mysql);
myquery(rc);
stmt= mysql_prepare(mysql,"SELECT i FROM test_bg1500 WHERE i IN (?,?,?)",44);
stmt= mysql_simple_prepare(mysql,"SELECT i FROM test_bg1500 WHERE i IN (?,?,?)");
mystmt_init(stmt);
verify_param_count(stmt,3);
......@@ -8018,8 +8031,8 @@ static void test_bug1500()
rc= mysql_commit(mysql);
myquery(rc);
stmt= mysql_prepare(mysql,
"SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (?)",53);
stmt= mysql_simple_prepare(mysql,
"SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (?)");
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -8046,8 +8059,8 @@ static void test_bug1500()
mysql_stmt_close(stmt);
/* This should work too */
stmt= mysql_prepare(mysql,
"SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (CONCAT(?,'digger'))", 70);
stmt= mysql_simple_prepare(mysql,
"SELECT s FROM test_bg1500 WHERE MATCH (s) AGAINST (CONCAT(?,'digger'))");
mystmt_init(stmt);
verify_param_count(stmt,1);
......@@ -8084,7 +8097,7 @@ static void test_bug1946()
rc= mysql_query(mysql,"CREATE TABLE prepare_command(ID INT)");
myquery(rc);
stmt = mysql_prepare(mysql, query, strlen(query));
stmt = mysql_simple_prepare(mysql, query);
mystmt_init(stmt);
rc= mysql_real_query(mysql, query, strlen(query));
assert(rc != 0);
......@@ -8095,6 +8108,28 @@ static void test_bug1946()
rc= mysql_query(mysql,"DROP TABLE prepare_command");
}
static void test_parse_error_and_bad_length()
{
MYSQL_STMT *stmt;
int rc;
/* check that we get 4 syntax errors over the 4 calls */
myheader("test_parse_error_and_bad_length");
rc= mysql_query(mysql,"SHOW DATABAAAA");
assert(rc);
fprintf(stdout, "Got error (as expected): '%s'\n", mysql_error(mysql));
rc= mysql_real_query(mysql,"SHOW DATABASES",100);
assert(rc);
fprintf(stdout, "Got error (as expected): '%s'\n", mysql_error(mysql));
stmt= mysql_simple_prepare(mysql,"SHOW DATABAAAA");
assert(!stmt);
fprintf(stdout, "Got error (as expected): '%s'\n", mysql_error(mysql));
stmt= mysql_prepare(mysql,"SHOW DATABASES",100);
assert(!stmt);
fprintf(stdout, "Got error (as expected): '%s'\n", mysql_error(mysql));
}
/*
Read and parse arguments and MySQL options from my.cnf
......@@ -8340,6 +8375,8 @@ int main(int argc, char **argv)
test_bug1644(); /* BUG#1644 */
test_bug1946(); /* test that placeholders are allowed only in
prepared queries */
test_parse_error_and_bad_length(); /* test if bad length param in
mysql_prepare() triggers error */
end_time= time((time_t *)0);
total_time+= difftime(end_time, start_time);
......
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