diff options
author | venu@myvenu.com <> | 2002-11-22 18:30:55 -0800 |
---|---|---|
committer | venu@myvenu.com <> | 2002-11-22 18:30:55 -0800 |
commit | 500e56e0d69df1ee391383dc9127efaf3d068658 (patch) | |
tree | 06cf361272f383aa4336001511c27fc91a2598a2 /tests | |
parent | ec17cac968946e69469176e6bf088625593b02b3 (diff) | |
download | mariadb-git-500e56e0d69df1ee391383dc9127efaf3d068658.tar.gz |
client_test.c:
Modification to new API test
sql_prepare.cc:
Fix for lock_types
Diffstat (limited to 'tests')
-rw-r--r-- | tests/client_test.c | 1334 |
1 files changed, 687 insertions, 647 deletions
diff --git a/tests/client_test.c b/tests/client_test.c index a00c475129d..280df2bf717 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -48,15 +48,22 @@ #define false 0 #endif +#ifndef bzero +#define bzero(A,B) memset(A,0,B) +#endif + /* set default options */ -static char *opt_db=(char *)"test"; -static char *opt_user=(char *)"root"; -static char *opt_password=(char *)""; +static char *opt_db=0; +static char *opt_user=0; +static char *opt_password=0; static char *opt_host=0; static char *opt_unix_socket=0; static uint opt_port; static my_bool tty_password=0; +static MYSQL *mysql=0; +static char query[255]; + #define myheader(str) { printf("\n\n#######################\n"); \ printf("%s",str); \ printf("\n#######################\n"); \ @@ -64,9 +71,9 @@ static my_bool tty_password=0; #define init_bind(x) (bzero(x,sizeof(x))) -void print_error(MYSQL *mysql, const char *msg) +void print_error(const char *msg) { - if(mysql) + if (mysql) { fprintf(stderr,"\n [MySQL]%s \n",mysql_error(mysql)); } @@ -75,14 +82,14 @@ void print_error(MYSQL *mysql, const char *msg) void print_st_error(MYSQL_STMT *stmt, const char *msg) { - if(stmt) + if (stmt) { fprintf(stderr,"\n [MySQL]%s \n",mysql_stmt_error(stmt)); } else if(msg) fprintf(stderr, "%s\n", msg); } -#define myerror(mysql, msg) print_error(mysql, msg) +#define myerror(msg) print_error(msg) #define mysterror(stmt, msg) print_st_error(stmt, msg) #define myassert(x) if(x) {\ @@ -94,17 +101,17 @@ void print_st_error(MYSQL_STMT *stmt, const char *msg) exit(1);\ } -#define myquery(mysql,r) \ +#define myquery(r) \ if( r != 0) \ { \ - myerror(mysql,NULL); \ + myerror(NULL); \ myassert(true);\ } -#define myquery_r(mysql,r) \ +#define myquery_r(r) \ if( r != 0) \ { \ - myerror(mysql,NULL); \ + myerror(NULL); \ myassert_r(true);\ } @@ -115,17 +122,17 @@ if( r != 0) \ myassert(true);\ } -#define myxquery(mysql,stmt) \ +#define myxquery(stmt) \ if( stmt == 0) \ { \ - myerror(mysql,NULL); \ + myerror(NULL); \ myassert(true);\ } -#define myxquery_r(mysql,stmt) \ +#define myxquery_r(stmt) \ if( stmt == 0) \ { \ - myerror(mysql,NULL); \ + myerror(NULL); \ myassert_r(true);\ } \ else myassert(true); @@ -137,40 +144,37 @@ if( r != 0) \ myassert_r(true);\ } -#define mytest(mysql,x) if(!x) {myerror(mysql,NULL);myassert(true);} -#define mytest_r(mysql,x) if(x) {myerror(mysql,NULL);myassert(true);} +#define mytest(x) if(!x) {myerror(NULL);myassert(true);} +#define mytest_r(x) if(x) {myerror(NULL);myassert(true);} /******************************************************** * connect to the server * *********************************************************/ -MYSQL *client_connect() +static void client_connect() { - MYSQL *mysql; - myheader("client_connect"); if(!(mysql = mysql_init(NULL))) { - myerror(NULL, "mysql_init() failed"); + myerror("mysql_init() failed"); exit(0); } if (!(mysql_real_connect(mysql,opt_host,opt_user, - opt_password, opt_db, opt_port, + opt_password, opt_db ? opt_db:"test", opt_port, opt_unix_socket, 0))) { - myerror(mysql, "connection failed"); + myerror("connection failed"); exit(0); } /* set AUTOCOMMIT to ON*/ mysql_autocommit(mysql, true); - return(mysql); } /******************************************************** * close the connection * *********************************************************/ -void client_disconnect(MYSQL *mysql) +void client_disconnect() { myheader("client_disconnect"); @@ -180,39 +184,39 @@ void client_disconnect(MYSQL *mysql) /******************************************************** * query processing * *********************************************************/ -void client_query(MYSQL *mysql) +void client_query() { int rc; myheader("client_query"); rc = mysql_query(mysql,"DROP TABLE IF EXISTS myclient_test"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE myclient_test(id int primary key auto_increment,\ name varchar(20))"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE myclient_test(id int, name varchar(20))"); - myquery_r(mysql,rc); + myquery_r(rc); rc = mysql_query(mysql,"INSERT INTO myclient_test(name) VALUES('mysql')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO myclient_test(name) VALUES('monty')"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_query(mysql,"INSERT INTO myclient_test(name) VALUES('venu')"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_query(mysql,"INSERT INTO myclient_test(name) VALUES('deleted')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"UPDATE myclient_test SET name='updated' WHERE name='deleted'"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_query(mysql,"UPDATE myclient_test SET id=3 WHERE name='updated'"); - myquery_r(mysql,rc); + myquery_r(rc); } /******************************************************** @@ -226,12 +230,12 @@ void my_print_dashes(MYSQL_RES *result) mysql_field_seek(result,0); fputc('\t',stdout); fputc('+', stdout); - + for(i=0; i< mysql_num_fields(result); i++) { field = mysql_fetch_field(result); for(j=0; j < field->max_length+2; j++) - fputc('-',stdout); + fputc('-',stdout); fputc('+',stdout); } fputc('\n',stdout); @@ -247,7 +251,7 @@ void my_print_result_metadata(MYSQL_RES *result) unsigned int field_count; mysql_field_seek(result,0); - fputc('\n', stdout); + fputc('\n', stdout); field_count = mysql_num_fields(result); for(i=0; i< field_count; i++) @@ -263,7 +267,7 @@ void my_print_result_metadata(MYSQL_RES *result) my_print_dashes(result); fputc('\t',stdout); fputc('|', stdout); - + mysql_field_seek(result,0); for(i=0; i< field_count; i++) { @@ -277,7 +281,7 @@ void my_print_result_metadata(MYSQL_RES *result) /******************************************************** * process the result set * *********************************************************/ -int my_process_result_set(MYSQL *mysql, MYSQL_RES *result) +int my_process_result_set(MYSQL_RES *result) { MYSQL_ROW row; MYSQL_FIELD *field; @@ -287,7 +291,7 @@ int my_process_result_set(MYSQL *mysql, MYSQL_RES *result) my_print_result_metadata(result); while((row = mysql_fetch_row(result)) != NULL) - { + { mysql_field_seek(result,0); fputc('\t',stdout); fputc('|',stdout); @@ -310,49 +314,83 @@ int my_process_result_set(MYSQL *mysql, MYSQL_RES *result) if (mysql_errno(mysql) != 0) fprintf(stderr, "\n\tmysql_fetch_row() failed\n"); - else + else fprintf(stdout,"\n\t%d rows returned\n", row_count); return(row_count); } +static void verify_col_data(const char *table, const char *col, const char *exp_data) +{ + MYSQL_STMT *stmt; + MYSQL_BIND bind[1]; + char data[255]; + int rc; + + init_bind(bind); + + bind[0].buffer_type=FIELD_TYPE_STRING; + bind[0].buffer= (char *)data; + bind[0].buffer_length= sizeof(data); + + sprintf(query, "SELECT `%s` FROM `%s`", col, table); + + printf("\n %s", query); + stmt = mysql_prepare(mysql, query, strlen(query)); + myxquery(stmt); + + rc = mysql_bind_result(stmt,bind); + mystmt(stmt, rc); + + rc = mysql_execute(stmt); + mystmt(stmt, rc); + + rc = mysql_fetch(stmt); + mystmt(stmt,rc); + + printf("\n data : %s (expected: %s)",data, exp_data); + assert(strcmp(data,exp_data)==0); + + mysql_stmt_close(stmt); +} + /******************************************************** * store result processing * *********************************************************/ -void client_store_result(MYSQL *mysql) +void client_store_result() { MYSQL_RES *result; int rc; - + myheader("client_store_result"); rc = mysql_query(mysql, "SELECT * FROM myclient_test"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); } /******************************************************** * use result processing * *********************************************************/ -void client_use_result(MYSQL *mysql) +void client_use_result() { MYSQL_RES *result; int rc; myheader("client_use_result"); - rc = mysql_query(mysql, "SELECT * FROM myclient_test"); - myquery(mysql,rc); + rc = mysql_query(mysql, "SELECT * FROM myclient_test"); + myquery(rc); /* get the result */ result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); } @@ -360,7 +398,7 @@ void client_use_result(MYSQL *mysql) /******************************************************** * query processing * *********************************************************/ -void test_debug_example(MYSQL *mysql) +void test_debug_example() { int rc; MYSQL_RES *result; @@ -368,35 +406,35 @@ void test_debug_example(MYSQL *mysql) myheader("test_debug_example"); rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_debug_example"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_debug_example(id int primary key auto_increment,\ name varchar(20),xxx int)"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_query(mysql,"INSERT INTO test_debug_example(name) VALUES('mysql')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"UPDATE test_debug_example SET name='updated' WHERE name='deleted'"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"SELECT * FROM test_debug_example"); - myquery(mysql,rc); - + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); rc = mysql_query(mysql,"DROP TABLE test_debug_example"); - myquery(mysql,rc); + myquery(rc); } /******************************************************** * to test autocommit feature * *********************************************************/ -void test_tran_bdb(MYSQL *mysql) +void test_tran_bdb() { MYSQL_RES *result; MYSQL_ROW row; @@ -406,75 +444,75 @@ void test_tran_bdb(MYSQL *mysql) /* set AUTOCOMMIT to OFF */ rc = mysql_autocommit(mysql, false); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_demo_transaction"); + myquery(rc); + - rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_demo_transaction"); - myquery(mysql,rc); - - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* create the table 'mytran_demo' of type BDB' or 'InnoDB' */ rc = mysql_query(mysql,"CREATE TABLE my_demo_transaction(col1 int ,col2 varchar(30)) TYPE = BDB"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* insert a row and commit the transaction */ rc = mysql_query(mysql,"INSERT INTO my_demo_transaction VALUES(10,'venu')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now insert the second row, and rollback the transaction */ rc = mysql_query(mysql,"INSERT INTO my_demo_transaction VALUES(20,'mysql')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_rollback(mysql); - myquery(mysql,rc); + myquery(rc); /* delete first row, and rollback it */ rc = mysql_query(mysql,"DELETE FROM my_demo_transaction WHERE col1 = 10"); - myquery(mysql,rc); + myquery(rc); rc = mysql_rollback(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_demo_transaction"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_demo_transaction"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_use_result(mysql); - mytest(mysql,result); - + mytest(result); + row = mysql_fetch_row(result); - mytest(mysql,row); - + mytest(row); + row = mysql_fetch_row(result); - mytest_r(mysql,row); + mytest_r(row); - mysql_free_result(result); + mysql_free_result(result); mysql_autocommit(mysql,true); } /******************************************************** * to test autocommit feature * *********************************************************/ -void test_tran_innodb(MYSQL *mysql) +void test_tran_innodb() { MYSQL_RES *result; MYSQL_ROW row; @@ -484,68 +522,68 @@ void test_tran_innodb(MYSQL *mysql) /* set AUTOCOMMIT to OFF */ rc = mysql_autocommit(mysql, false); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_demo_transaction"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_demo_transaction"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* create the table 'mytran_demo' of type BDB' or 'InnoDB' */ rc = mysql_query(mysql,"CREATE TABLE my_demo_transaction(col1 int ,col2 varchar(30)) TYPE = InnoDB"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* insert a row and commit the transaction */ rc = mysql_query(mysql,"INSERT INTO my_demo_transaction VALUES(10,'venu')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now insert the second row, and rollback the transaction */ rc = mysql_query(mysql,"INSERT INTO my_demo_transaction VALUES(20,'mysql')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_rollback(mysql); - myquery(mysql,rc); + myquery(rc); /* delete first row, and rollback it */ rc = mysql_query(mysql,"DELETE FROM my_demo_transaction WHERE col1 = 10"); - myquery(mysql,rc); + myquery(rc); rc = mysql_rollback(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_demo_transaction"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_demo_transaction"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_use_result(mysql); - mytest(mysql,result); - + mytest(result); + row = mysql_fetch_row(result); - mytest(mysql,row); - + mytest(row); + row = mysql_fetch_row(result); - mytest_r(mysql,row); + mytest_r(row); mysql_free_result(result); - mysql_autocommit(mysql,true); + mysql_autocommit(mysql,true); } @@ -553,27 +591,26 @@ void test_tran_innodb(MYSQL *mysql) To test simple prepares of all DML statements *********************************************************/ -void test_prepare_simple(MYSQL *mysql) +void test_prepare_simple() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; - myheader("test_prepare_simple"); - - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_simple"); - myquery(mysql,rc); - + myheader("test_prepare_simple"); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_simple"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_prepare_simple(id int, name varchar(50))"); - myquery(mysql,rc); + myquery(rc); /* alter table */ - query = "ALTER TABLE test_prepare_simple ADD new char(20)"; + strcpy(query,"ALTER TABLE test_prepare_simple ADD new char(20)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in alter:%d\n", param_count); @@ -581,9 +618,9 @@ void test_prepare_simple(MYSQL *mysql) mysql_stmt_close(stmt); /* insert */ - query = "INSERT INTO test_prepare_simple VALUES(?,?)"; + strcpy(query,"INSERT INTO test_prepare_simple VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in insert:%d\n", param_count); @@ -591,9 +628,9 @@ void test_prepare_simple(MYSQL *mysql) mysql_stmt_close(stmt); /* update */ - query = "UPDATE test_prepare_simple SET id=? WHERE id=? AND name= ?"; + strcpy(query,"UPDATE test_prepare_simple SET id=? WHERE id=? AND name= ?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in update:%d\n", param_count); @@ -601,9 +638,9 @@ void test_prepare_simple(MYSQL *mysql) mysql_stmt_close(stmt); /* delete */ - query = "DELETE FROM test_prepare_simple WHERE id=10"; + strcpy(query,"DELETE FROM test_prepare_simple WHERE id=10"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in delete:%d\n", param_count); @@ -614,9 +651,9 @@ void test_prepare_simple(MYSQL *mysql) mysql_stmt_close(stmt); /* delete */ - query = "DELETE FROM test_prepare_simple WHERE id=?"; + strcpy(query,"DELETE FROM test_prepare_simple WHERE id=?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in delete:%d\n", param_count); @@ -627,9 +664,9 @@ void test_prepare_simple(MYSQL *mysql) mysql_stmt_close(stmt); /* select */ - query = "SELECT * FROM test_prepare_simple WHERE id=? AND name= ?"; + strcpy(query,"SELECT * FROM test_prepare_simple WHERE id=? AND name= ?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in select:%d\n", param_count); @@ -639,35 +676,33 @@ void test_prepare_simple(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); } /******************************************************** * to test simple prepare field results * *********************************************************/ -void test_prepare_field_result(MYSQL *mysql) +void test_prepare_field_result() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; - myheader("test_prepare_field_result"); - - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_field_result"); - myquery(mysql,rc); - + myheader("test_prepare_field_result"); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_field_result"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_prepare_field_result(id int, name varchar(50), extra int)"); - myquery(mysql,rc); - + myquery(rc); /* insert */ - query = "SELECT id,name FROM test_prepare_field_result WHERE id=?"; + strcpy(query,"SELECT id,name FROM test_prepare_field_result WHERE id=?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout,"\n total parameters in insert:%d\n", param_count); @@ -676,49 +711,48 @@ void test_prepare_field_result(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); } /******************************************************** * to test simple prepare field results * *********************************************************/ -void test_prepare_syntax(MYSQL *mysql) +void test_prepare_syntax() { MYSQL_STMT *stmt; int rc; - const char *query; - myheader("test_prepare_syntax"); - - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_syntax"); - myquery(mysql,rc); - + myheader("test_prepare_syntax"); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_syntax"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_prepare_syntax(id int, name varchar(50), extra int)"); - myquery(mysql,rc); + myquery(rc); - query = "INSERT INTO test_prepare_syntax VALUES(?"; + strcpy(query,"INSERT INTO test_prepare_syntax VALUES(?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery_r(mysql,stmt); + myxquery_r(stmt); - query = "SELECT id,name FROM test_prepare_syntax WHERE id=? AND WHERE"; + strcpy(query,"SELECT id,name FROM test_prepare_syntax WHERE id=? AND WHERE"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery_r(mysql,stmt); + myxquery_r(stmt); /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); } /******************************************************** * to test simple prepare * *********************************************************/ -void test_prepare(MYSQL *mysql) -{ +void test_prepare() +{ MYSQL_STMT *stmt; int rc,param_count; char query[200]; @@ -730,30 +764,30 @@ void test_prepare(MYSQL *mysql) double real_data; double double_data; MYSQL_RES *result; - MYSQL_BIND bind[8]; + MYSQL_BIND bind[8]; - myheader("test_prepare"); + myheader("test_prepare"); init_bind(bind); rc = mysql_autocommit(mysql, true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_prepare"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_prepare"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE my_prepare(col1 tinyint,\ col2 varchar(50), col3 int,\ col4 smallint, col5 bigint, \ col6 float, col7 double )"); - myquery(mysql,rc); + myquery(rc); /* insert by prepare */ strcpy(query,"INSERT INTO my_prepare VALUES(?,?,?,?,?,?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -765,22 +799,23 @@ void test_prepare(MYSQL *mysql) /* string */ bind[1].buffer_type=FIELD_TYPE_STRING; bind[1].buffer=str_data; + bind[1].buffer_length=sizeof(str_data); /* integer */ bind[2].buffer_type=FIELD_TYPE_LONG; - bind[2].buffer= (gptr)&int_data; + bind[2].buffer= (gptr)&int_data; /* short */ bind[3].buffer_type=FIELD_TYPE_SHORT; - bind[3].buffer= (gptr)&small_data; + bind[3].buffer= (gptr)&small_data; /* bigint */ bind[4].buffer_type=FIELD_TYPE_LONGLONG; - bind[4].buffer= (gptr)&big_data; + bind[4].buffer= (gptr)&big_data; /* float */ bind[5].buffer_type=FIELD_TYPE_DOUBLE; - bind[5].buffer= (gptr)&real_data; + bind[5].buffer= (gptr)&real_data; /* double */ bind[6].buffer_type=FIELD_TYPE_DOUBLE; - bind[6].buffer= (gptr)&double_data; - + bind[6].buffer= (gptr)&double_data; + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); @@ -807,17 +842,17 @@ void test_prepare(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_prepare"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert((int)tiny_data == my_process_result_set(mysql,result)); + assert((int)tiny_data == my_process_result_set(result)); mysql_free_result(result); } @@ -825,37 +860,37 @@ void test_prepare(MYSQL *mysql) /******************************************************** * to test double comparision * *********************************************************/ -void test_double_compare(MYSQL *mysql) -{ +void test_double_compare() +{ MYSQL_STMT *stmt; int rc,param_count; char query[200],real_data[10], tiny_data; double double_data; MYSQL_RES *result; - MYSQL_BIND bind[3]; + MYSQL_BIND bind[3]; - myheader("test_double_compare"); + myheader("test_double_compare"); init_bind(bind); rc = mysql_autocommit(mysql, true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_double_compare"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_double_compare"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_double_compare(col1 tinyint,\ col2 float, col3 double )"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO test_double_compare VALUES(1,10.2,34.5)"); - myquery(mysql,rc); + myquery(rc); strcpy(query, "UPDATE test_double_compare SET col1=100 WHERE col1 = ? AND col2 = ? AND COL3 = ?"); stmt = mysql_prepare(mysql,query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in update:%d\n", param_count); @@ -865,11 +900,12 @@ void test_double_compare(MYSQL *mysql) bind[0].buffer=(gptr)&tiny_data; /* string->float */ bind[1].buffer_type=FIELD_TYPE_STRING; - bind[1].buffer= (gptr)&real_data; + bind[1].buffer= (gptr)&real_data; + bind[1].buffer_length=10; /* double */ bind[2].buffer_type=FIELD_TYPE_DOUBLE; - bind[2].buffer= (gptr)&double_data; - + bind[2].buffer= (gptr)&double_data; + tiny_data = 1; strcpy(real_data,"10.2"); double_data = 34.5; @@ -881,22 +917,22 @@ void test_double_compare(MYSQL *mysql) rc = (int)mysql_affected_rows(mysql); printf("\n total affected rows:%d",rc); - + mysql_stmt_close(stmt); /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_double_compare"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert((int)tiny_data == my_process_result_set(mysql,result)); + assert((int)tiny_data == my_process_result_set(result)); mysql_free_result(result); } @@ -907,43 +943,43 @@ void test_double_compare(MYSQL *mysql) /******************************************************** * to test simple null * *********************************************************/ -void test_null(MYSQL *mysql) +void test_null() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; int nData=1; MYSQL_RES *result; - MYSQL_BIND bind[2]; + MYSQL_BIND bind[2]; - myheader("test_null"); + myheader("test_null"); init_bind(bind); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_null"); - myquery(mysql,rc); - + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_null"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_null(col1 int,col2 varchar(50))"); - myquery(mysql,rc); + myquery(rc); /* insert by prepare, wrong column name */ - query = "INSERT INTO test_null(col3,col2) VALUES(?,?)"; + strcpy(query,"INSERT INTO test_null(col3,col2) VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery_r(mysql,stmt); + myxquery_r(stmt); - query = "INSERT INTO test_null(col1,col2) VALUES(?,?)"; + strcpy(query,"INSERT INTO test_null(col1,col2) VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); assert(param_count == 2); bind[0].is_null=1; - bind[1].is_null=1; /* string data */ - + bind[0].buffer_type=MYSQL_TYPE_NULL; + bind[1]=bind[0]; /* string data */ + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); @@ -957,19 +993,18 @@ void test_null(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_null"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(nData == my_process_result_set(mysql,result)); + assert(nData == my_process_result_set(result)); mysql_free_result(result); - } @@ -977,20 +1012,19 @@ void test_null(MYSQL *mysql) /******************************************************** * to test simple select * *********************************************************/ -void test_select_simple(MYSQL *mysql) +void test_select_simple() { MYSQL_STMT *stmt; int rc,length; const char query[100]; MYSQL_RES *result; - myheader("test_select_simple"); - + myheader("test_select_simple"); /* insert by prepare */ strcpy((char *)query, "SHOW TABLES FROM mysql"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); length = mysql_param_count(stmt); fprintf(stdout," total parameters in select:%d\n", length); @@ -998,25 +1032,27 @@ void test_select_simple(MYSQL *mysql) rc = mysql_execute(stmt); mystmt(stmt, rc); - + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); - + + mysql_stmt_close(stmt); + #if 0 strcpy((char *)query , "SELECT @@ VERSION"); length = strlen(query); rc = mysql_query(mysql,query); - mytest(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); #endif } @@ -1025,52 +1061,51 @@ void test_select_simple(MYSQL *mysql) /******************************************************** * to test simple select * *********************************************************/ -void test_select(MYSQL *mysql) +void test_select() { MYSQL_STMT *stmt; int rc,param_count=0; - const char *query; char *szData=(char *)"updated-value"; int nData=1; - MYSQL_BIND bind[2]; + MYSQL_BIND bind[2]; MYSQL_RES *result; - - myheader("test_select"); + + myheader("test_select"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_select"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_select"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_select(id int,name varchar(50))"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* insert a row and commit the transaction */ rc = mysql_query(mysql,"INSERT INTO test_select VALUES(10,'venu')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now insert the second row, and rollback the transaction */ rc = mysql_query(mysql,"INSERT INTO test_select VALUES(20,'mysql')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = "SELECT * FROM test_select WHERE id=? AND name=?"; + strcpy(query,"SELECT * FROM test_select WHERE id=? AND name=?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in select:%d\n", param_count); @@ -1081,20 +1116,21 @@ void test_select(MYSQL *mysql) szData=(char *)"venu"; bind[1].buffer_type=FIELD_TYPE_STRING; bind[1].buffer=szData; + bind[1].buffer_length=4; bind[0].buffer=(gptr)&nData; bind[0].buffer_type=FIELD_TYPE_LONG; - + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); rc = mysql_execute(stmt); mystmt(stmt, rc); - + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert( 1 == my_process_result_set(mysql,result)); + assert( 1 == my_process_result_set(result)); mysql_free_result(result); mysql_stmt_close(stmt); @@ -1108,48 +1144,46 @@ void test_select(MYSQL *mysql) /******************************************************** * to test simple update * *********************************************************/ -void test_simple_update(MYSQL *mysql) +void test_simple_update() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; - char *szData=(char *)"updated-value"; + char szData[25]; int nData=1; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; - myheader("test_simple_update"); + myheader("test_simple_update"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_update"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_update"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_update(col1 int,\ col2 varchar(50), col3 int )"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO test_update VALUES(1,'MySQL',100)"); - myquery(mysql,rc); - + myquery(rc); + assert(1 == mysql_affected_rows(mysql)); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* insert by prepare */ - query = "UPDATE test_update SET col2=? WHERE col1=?"; + strcpy(query,"UPDATE test_update SET col2=? WHERE col1=?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in update:%d\n", param_count); @@ -1158,9 +1192,10 @@ void test_simple_update(MYSQL *mysql) nData=1; bind[0].buffer_type=FIELD_TYPE_STRING; bind[0].buffer=szData; /* string data */ + bind[0].buffer_length=sprintf(szData,"updated-data"); bind[1].buffer=(gptr)&nData; bind[1].buffer_type=FIELD_TYPE_LONG; - + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); @@ -1172,17 +1207,17 @@ void test_simple_update(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_update"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1190,53 +1225,58 @@ void test_simple_update(MYSQL *mysql) /******************************************************** * to test simple long data handling * *********************************************************/ -void test_long_data(MYSQL *mysql) +void test_long_data() { MYSQL_STMT *stmt; - int rc,param_count; - const char *query; + int rc,param_count, int_data=10; char *data=NullS; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[3]; - myheader("test_long_data"); + + myheader("test_long_data"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_long_data(col1 int,\ col2 long varchar, col3 long varbinary)"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); + + strcpy(query,"INSERT INTO test_long_data(col1,col2) VALUES(?)"); + stmt = mysql_prepare(mysql, query, strlen(query)); + myxquery_r(stmt); - query = "INSERT INTO test_long_data(col2) VALUES(?)"; + strcpy(query,"INSERT INTO test_long_data(col1,col2,col3) VALUES(?,?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); - assert(param_count == 1); + assert(param_count == 3); - bind[0].buffer=data; /* string data */ - bind[0].is_long_data=1; /* specify long data suppy during run-time */ + bind[0].buffer=(char *)&int_data; + bind[0].buffer_type=FIELD_TYPE_LONG; + bind[1].is_long_data=1; /* specify long data suppy during run-time */ /* Non string or binary type, error */ - bind[0].buffer_type=FIELD_TYPE_LONG; + bind[1].buffer_type=FIELD_TYPE_LONG; rc = mysql_bind_param(stmt,bind); fprintf(stdout,"mysql_bind_param() returned %d\n",rc); mystmt_r(stmt, rc); - - bind[0].buffer_type=FIELD_TYPE_STRING; + + bind[1].buffer_type=FIELD_TYPE_STRING; + bind[2]=bind[1]; rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); @@ -1247,11 +1287,11 @@ void test_long_data(MYSQL *mysql) data = (char *)"Micheal"; /* supply data in pieces */ - rc = mysql_send_long_data(stmt,0,data,7,1); + rc = mysql_send_long_data(stmt,1,data,7,1); mystmt(stmt, rc); - /* try to execute mysql_execute() now, it should return - MYSQL_NEED_DATA as the long data supply is not yet over + /* try to execute mysql_execute() now, it should return + MYSQL_NEED_DATA as the long data supply is not yet over */ rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); @@ -1259,13 +1299,12 @@ void test_long_data(MYSQL *mysql) /* append data again ..*/ - /* supply data in pieces */ + /* Indicate end of data */ data = (char *)" 'monty' widenius"; - rc = mysql_send_long_data(stmt,0,data,17,0); + rc = mysql_send_long_data(stmt,1,data,17,1); mystmt(stmt, rc); - /* Indiate end of data supply */ - rc = mysql_send_long_data(stmt,0,0,0,1); + rc = mysql_send_long_data(stmt,2,"Venu (venu@mysql.com",4,1); mystmt(stmt, rc); /* execute */ @@ -1274,55 +1313,54 @@ void test_long_data(MYSQL *mysql) mystmt(stmt,rc); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now fetch the results ..*/ - rc = mysql_query(mysql,"SELECT col2 FROM test_long_data"); - myquery(mysql,rc); - + rc = mysql_query(mysql,"SELECT * FROM test_long_data"); + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } /******************************************************** * to test long data (string) handling * *********************************************************/ -void test_long_data_str(MYSQL *mysql) +void test_long_data_str() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; char data[255]; long length; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; + - myheader("test_long_data_str"); + myheader("test_long_data_str"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_str"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_str"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_long_data_str(id int, longstr long varchar)"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = "INSERT INTO test_long_data_str VALUES(?,?)"; + strcpy(query,"INSERT INTO test_long_data_str VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -1354,8 +1392,8 @@ void test_long_data_str(MYSQL *mysql) mystmt(stmt, rc); } - /* try to execute mysql_execute() now, it should return - MYSQL_NEED_DATA as the long data supply is not yet over + /* try to execute mysql_execute() now, it should return + MYSQL_NEED_DATA as the long data supply is not yet over */ rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); @@ -1374,17 +1412,17 @@ void test_long_data_str(MYSQL *mysql) mysql_stmt_close(stmt); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now fetch the results ..*/ rc = mysql_query(mysql,"SELECT LENGTH(longstr), longstr FROM test_long_data_str"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1392,38 +1430,37 @@ void test_long_data_str(MYSQL *mysql) /******************************************************** * to test long data (string) handling * *********************************************************/ -void test_long_data_str1(MYSQL *mysql) +void test_long_data_str1() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; char *data=(char *)"MySQL AB"; int length; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; + - myheader("test_long_data_str1"); + myheader("test_long_data_str1"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_str"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_str"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_long_data_str(longstr long varchar,blb long varbinary)"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = "INSERT INTO test_long_data_str VALUES(?,?)"; + strcpy(query,"INSERT INTO test_long_data_str VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -1457,8 +1494,8 @@ void test_long_data_str1(MYSQL *mysql) rc = mysql_send_long_data(stmt,1,data,2,0); mystmt(stmt, rc); } - /* try to execute mysql_execute() now, it should return - MYSQL_NEED_DATA as the long data supply is not yet over + /* try to execute mysql_execute() now, it should return + MYSQL_NEED_DATA as the long data supply is not yet over */ rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); @@ -1468,14 +1505,14 @@ void test_long_data_str1(MYSQL *mysql) /* Indiate end of data supply */ rc = mysql_send_long_data(stmt,1,0,0,1); mystmt(stmt, rc); - + rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); assert(rc == MYSQL_NEED_DATA); rc = mysql_send_long_data(stmt,0,0,0,1); mystmt(stmt, rc); - + /* execute */ rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); @@ -1484,17 +1521,17 @@ void test_long_data_str1(MYSQL *mysql) mysql_stmt_close(stmt); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now fetch the results ..*/ rc = mysql_query(mysql,"SELECT LENGTH(longstr),longstr,LENGTH(blb),blb FROM test_long_data_str"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1502,38 +1539,37 @@ void test_long_data_str1(MYSQL *mysql) /******************************************************** * to test long data (binary) handling * *********************************************************/ -void test_long_data_bin(MYSQL *mysql) +void test_long_data_bin() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; char data[255]; int length; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; + - myheader("test_long_data_bin"); + myheader("test_long_data_bin"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_bin"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_long_data_bin"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_long_data_bin(id int, longbin long varbinary)"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = "INSERT INTO test_long_data_bin VALUES(?,?)"; + strcpy(query,"INSERT INTO test_long_data_bin VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -1564,8 +1600,8 @@ void test_long_data_bin(MYSQL *mysql) mystmt(stmt, rc); } - /* try to execute mysql_execute() now, it should return - MYSQL_NEED_DATA as the long data supply is not yet over + /* try to execute mysql_execute() now, it should return + MYSQL_NEED_DATA as the long data supply is not yet over */ rc = mysql_execute(stmt); fprintf(stdout,"mysql_execute() returned %d\n",rc); @@ -1584,17 +1620,17 @@ void test_long_data_bin(MYSQL *mysql) mysql_stmt_close(stmt); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* now fetch the results ..*/ rc = mysql_query(mysql,"SELECT LENGTH(longbin), longbin FROM test_long_data_bin"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1602,65 +1638,63 @@ void test_long_data_bin(MYSQL *mysql) /******************************************************** * to test simple delete * *********************************************************/ -void test_simple_delete(MYSQL *mysql) +void test_simple_delete() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; char szData[30]={0}; int nData=1; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; - myheader("test_simple_delete"); + + myheader("test_simple_delete"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_simple_delete"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_simple_delete"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_simple_delete(col1 int,\ col2 varchar(50), col3 int )"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO test_simple_delete VALUES(1,'MySQL',100)"); - myquery(mysql,rc); - + myquery(rc); + assert(1 == mysql_affected_rows(mysql)); rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* insert by prepare */ - query = "DELETE FROM test_simple_delete WHERE col1=? AND col2=? AND col3=100"; + strcpy(query,"DELETE FROM test_simple_delete WHERE col1=? AND col2=? AND col3=100"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in delete:%d\n", param_count); assert(param_count == 2); nData=1; + strcpy(szData,"MySQL"); + bind[1].buffer_length = 5; bind[1].buffer_type=FIELD_TYPE_STRING; - bind[1].buffer=szData; /* string data */ + bind[1].buffer=szData; /* string data */ bind[0].buffer=(gptr)&nData; bind[0].buffer_type=FIELD_TYPE_LONG; - + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); - strcpy(szData,"MySQL"); - //bind[1].buffer_length = 5; - nData=1; rc = mysql_execute(stmt); mystmt(stmt, rc); assert(1 == mysql_affected_rows(mysql)); @@ -1669,17 +1703,17 @@ void test_simple_delete(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_simple_delete"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(0 == my_process_result_set(mysql,result)); + assert(0 == my_process_result_set(result)); mysql_free_result(result); } @@ -1688,78 +1722,76 @@ void test_simple_delete(MYSQL *mysql) /******************************************************** * to test simple update * *********************************************************/ -void test_update(MYSQL *mysql) +void test_update() { MYSQL_STMT *stmt; int rc,param_count; - const char *query; - char *szData=(char *)"updated-value"; + char szData[25]; int nData=1; MYSQL_RES *result; - MYSQL_BIND bind[2]; - + MYSQL_BIND bind[2]; + - myheader("test_update"); + myheader("test_update"); init_bind(bind); rc = mysql_autocommit(mysql,true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_update"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_update"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_update(col1 int primary key auto_increment,\ col2 varchar(50), col3 int )"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = "INSERT INTO test_update(col2,col3) VALUES(?,?)"; + strcpy(query,"INSERT INTO test_update(col2,col3) VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); assert(param_count == 2); /* string data */ - szData=(char *)"inserted-data"; bind[0].buffer_type=FIELD_TYPE_STRING; bind[0].buffer=szData; + bind[0].buffer_length=sprintf(szData,"inserted-data"); bind[1].buffer=(gptr)&nData; bind[1].buffer_type=FIELD_TYPE_LONG; - + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); nData=100; rc = mysql_execute(stmt); mystmt(stmt, rc); - + assert(1 == mysql_affected_rows(mysql)); mysql_stmt_close(stmt); - /* insert by prepare */ - query = "UPDATE test_update SET col2=? WHERE col3=?"; + strcpy(query,"UPDATE test_update SET col2=? WHERE col3=?"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in update:%d\n", param_count); assert(param_count == 2); - nData=100;szData=(char *)"updated-data"; + nData=100; + - bind[0].buffer_type=FIELD_TYPE_STRING; bind[0].buffer=szData; + bind[0].buffer_length=sprintf(szData,"updated-data"); bind[1].buffer=(gptr)&nData; bind[1].buffer_type=FIELD_TYPE_LONG; - rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); @@ -1771,17 +1803,17 @@ void test_update(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_update"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1789,29 +1821,28 @@ void test_update(MYSQL *mysql) /******************************************************** * to test simple prepare * *********************************************************/ -void test_init_prepare(MYSQL *mysql) +void test_init_prepare() { MYSQL_STMT *stmt; int param_count, rc; - const char *query; MYSQL_RES *result; - myheader("test_init_prepare"); - - rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_prepare"); - myquery(mysql,rc); - + myheader("test_init_prepare"); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS my_prepare"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE my_prepare(col1 int ,col2 varchar(50))"); - myquery(mysql,rc); - - + myquery(rc); + + /* insert by prepare */ - query = "INSERT INTO my_prepare VALUES(10,'venu')"; + strcpy(query,"INSERT INTO my_prepare VALUES(10,'venu')"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -1824,17 +1855,17 @@ void test_init_prepare(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM my_prepare"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(1 == my_process_result_set(mysql,result)); + assert(1 == my_process_result_set(result)); mysql_free_result(result); } @@ -1842,55 +1873,56 @@ void test_init_prepare(MYSQL *mysql) /******************************************************** * to test simple bind result * *********************************************************/ -void test_bind_result(MYSQL *mysql) +void test_bind_result() { MYSQL_STMT *stmt; int rc; const char query[100]; int nData; char szData[100]; - MYSQL_BIND bind[2]; + MYSQL_BIND bind[2]; myheader("test_bind_result"); init_bind(bind); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_bind_result"); - myquery(mysql,rc); - + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_bind_result"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_bind_result(col1 int ,col2 varchar(50))"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO test_bind_result VALUES(10,'venu')"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"INSERT INTO test_bind_result VALUES(20,'MySQL')"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - /* fetch */ + /* fetch */ bind[0].buffer_type=FIELD_TYPE_LONG; bind[0].buffer= (gptr) &nData; /* integer data */ bind[1].buffer_type=FIELD_TYPE_STRING; bind[1].buffer=szData; /* string data */ - + bind[1].buffer_length=sizeof(szData); + strcpy((char *)query , "SELECT * FROM test_bind_result"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); - + myxquery(stmt); + rc = mysql_bind_result(stmt,bind); - mystmt(stmt, rc); + mystmt(stmt, rc); rc = mysql_execute(stmt); - mystmt(stmt, rc); + mystmt(stmt, rc); rc = mysql_fetch(stmt); mystmt(stmt,rc); @@ -1915,30 +1947,29 @@ void test_bind_result(MYSQL *mysql) /******************************************************** * to test simple prepare with all possible types * *********************************************************/ -void test_prepare_ext(MYSQL *mysql) +void test_prepare_ext() { MYSQL_STMT *stmt; int rc,param_count; - char *query; + char *sql; int nData=1; MYSQL_RES *result; char tData=1; short sData=10; longlong bData=20; - MYSQL_BIND bind_int[6]; + MYSQL_BIND bind_int[6]; + myheader("test_prepare_ext"); - myheader("test_prepare_ext"); - init_bind(bind_int); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_ext"); - myquery(mysql,rc); - + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_ext"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); - query = (char *)"CREATE TABLE test_prepare_ext\ + sql = (char *)"CREATE TABLE test_prepare_ext\ (\ c1 tinyint,\ c2 smallint,\ @@ -1973,13 +2004,13 @@ void test_prepare_ext(MYSQL *mysql) c31 enum('one','two','three'),\ c32 set('monday','tuesday','wednesday'))"; - rc = mysql_query(mysql,query); - myquery(mysql,rc); + rc = mysql_query(mysql,sql); + myquery(rc); /* insert by prepare - all integers */ - query = (char *)"INSERT INTO test_prepare_ext(c1,c2,c3,c4,c5,c6) VALUES(?,?,?,?,?,?)"; + strcpy(query,(char *)"INSERT INTO test_prepare_ext(c1,c2,c3,c4,c5,c6) VALUES(?,?,?,?,?,?)"); stmt = mysql_prepare(mysql,query, strlen(query)); - myquery(mysql,rc); + myquery(rc); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -2008,7 +2039,7 @@ void test_prepare_ext(MYSQL *mysql) /*bigint*/ bind_int[5].buffer_type=FIELD_TYPE_LONGLONG; bind_int[5].buffer= (void *)&bData; - + rc = mysql_bind_param(stmt,bind_int); mystmt(stmt, rc); @@ -2024,17 +2055,17 @@ void test_prepare_ext(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT c1,c2,c3,c4,c5,c6 FROM test_prepare_ext"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(nData == my_process_result_set(mysql,result)); + assert(nData == my_process_result_set(result)); mysql_free_result(result); } @@ -2044,93 +2075,93 @@ void test_prepare_ext(MYSQL *mysql) /******************************************************** * to test real and alias names * *********************************************************/ -void test_field_names(MYSQL *mysql) +void test_field_names() { int rc; MYSQL_RES *result; - - myheader("test_field_names"); + + myheader("test_field_names"); printf("\n%d,%d,%d",MYSQL_TYPE_DECIMAL,MYSQL_TYPE_NEWDATE,MYSQL_TYPE_ENUM); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_names1"); - myquery(mysql,rc); + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_names1"); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_names2"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_names2"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_field_names1(id int,name varchar(50))"); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_field_names2(id int,name varchar(50))"); - myquery(mysql,rc); - + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); - + myquery(rc); + /* with table name included with true column name */ rc = mysql_query(mysql,"SELECT id as 'id-alias' FROM test_field_names1"); - myquery(mysql,rc); - + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - assert(0 == my_process_result_set(mysql,result)); - mysql_free_result(result); + assert(0 == my_process_result_set(result)); + mysql_free_result(result); /* with table name included with true column name */ rc = mysql_query(mysql,"SELECT t1.id as 'id-alias',test_field_names2.name FROM test_field_names1 t1,test_field_names2"); - myquery(mysql,rc); - + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - assert(0 == my_process_result_set(mysql,result)); + assert(0 == my_process_result_set(result)); mysql_free_result(result); } /******************************************************** * to test warnings * *********************************************************/ -void test_warnings(MYSQL *mysql) +void test_warnings() { int rc; MYSQL_RES *result; - - myheader("test_warnings"); - rc = mysql_query(mysql,"USE test"); - myquery(mysql,rc); - - rc = mysql_query(mysql,"SHOW WARNINGS"); - myquery(mysql,rc); - + myheader("test_warnings"); + + rc = mysql_query(mysql,"USE test"); + myquery(rc); + + rc = mysql_query(mysql,"SHOW WARNINGS"); + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); } /******************************************************** * to test errors * *********************************************************/ -void test_errors(MYSQL *mysql) +void test_errors() { int rc; MYSQL_RES *result; - - myheader("test_errors"); - - rc = mysql_query(mysql,"SHOW ERRORS"); - myquery(mysql,rc); - + + myheader("test_errors"); + + rc = mysql_query(mysql,"SHOW ERRORS"); + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); - my_process_result_set(mysql,result); + my_process_result_set(result); mysql_free_result(result); } @@ -2139,36 +2170,36 @@ void test_errors(MYSQL *mysql) /******************************************************** * to test simple prepare-insert * *********************************************************/ -void test_insert(MYSQL *mysql) -{ +void test_insert() +{ MYSQL_STMT *stmt; - int rc,param_count; + int rc,param_count, length; char query[200]; char str_data[50]; char tiny_data; MYSQL_RES *result; - MYSQL_BIND bind[2]; + MYSQL_BIND bind[2]; - myheader("test_insert"); + myheader("test_insert"); rc = mysql_autocommit(mysql, true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prep_insert"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prep_insert"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_prep_insert(col1 tinyint,\ col2 varchar(50))"); - myquery(mysql,rc); + myquery(rc); /* insert by prepare */ bzero(bind, sizeof(bind)); strcpy(query,"INSERT INTO test_prep_insert VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); @@ -2180,14 +2211,15 @@ void test_insert(MYSQL *mysql) /* string */ bind[1].buffer_type=FIELD_TYPE_STRING; bind[1].buffer=str_data; - + bind[1].length=(long *)&length; + rc = mysql_bind_param(stmt,bind); mystmt(stmt, rc); /* now, execute the prepared statement to insert 10 records.. */ for (tiny_data=0; tiny_data < 3; tiny_data++) { - bind[1].buffer_length = sprintf(str_data,"MySQL%d",tiny_data); + length = sprintf(str_data,"MySQL%d",tiny_data); rc = mysql_execute(stmt); mystmt(stmt, rc); } @@ -2196,17 +2228,17 @@ void test_insert(MYSQL *mysql) /* now fetch the results ..*/ rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); /* test the results now, only one row should exists */ rc = mysql_query(mysql,"SELECT * FROM test_prep_insert"); - myquery(mysql,rc); - + myquery(rc); + /* get the result */ result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert((int)tiny_data == my_process_result_set(mysql,result)); + assert((int)tiny_data == my_process_result_set(result)); mysql_free_result(result); } @@ -2214,60 +2246,60 @@ void test_insert(MYSQL *mysql) /******************************************************** * to test simple prepare-resultset info * *********************************************************/ -void test_prepare_resultset(MYSQL *mysql) -{ +void test_prepare_resultset() +{ MYSQL_STMT *stmt; int rc,param_count; char query[200]; MYSQL_RES *result; - myheader("test_prepare_resultset"); + myheader("test_prepare_resultset"); rc = mysql_autocommit(mysql, true); - myquery(mysql,rc); + myquery(rc); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_resultset"); + myquery(rc); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_prepare_resultset"); - myquery(mysql,rc); - rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_prepare_resultset(id int,\ name varchar(50),extra double)"); - myquery(mysql,rc); + myquery(rc); /* insert by prepare */ strcpy(query,"INSERT INTO test_prepare_resultset(id,name) VALUES(?,?)"); stmt = mysql_prepare(mysql, query, strlen(query)); - myxquery(mysql,stmt); + myxquery(stmt); param_count = mysql_param_count(stmt); fprintf(stdout," total parameters in insert:%d\n", param_count); assert(param_count == 2); rc = mysql_query(mysql,"SELECT * FROM test_prepare_resultset"); - myquery(mysql,rc); + myquery(rc); /* get the prepared-result */ result = mysql_prepare_result(stmt); assert( result != 0); - my_print_result_metadata(result); + my_print_result_metadata(result); mysql_free_result(result); result = mysql_store_result(mysql); - mytest(mysql,result); + mytest(result); - assert(0 == my_process_result_set(mysql,result)); + assert(0 == my_process_result_set(result)); mysql_free_result(result); /* get the prepared-result */ result = mysql_prepare_result(stmt); assert( result != 0); - my_print_result_metadata(result); + my_print_result_metadata(result); mysql_free_result(result); - + mysql_stmt_close(stmt); } @@ -2275,21 +2307,21 @@ void test_prepare_resultset(MYSQL *mysql) * to test field flags (verify .NET provider) * *********************************************************/ -void test_field_flags(MYSQL *mysql) +void test_field_flags() { int rc; MYSQL_RES *result; MYSQL_FIELD *field; unsigned int i; - - myheader("test_field_flags"); - rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_flags"); - myquery(mysql,rc); - + myheader("test_field_flags"); + + rc = mysql_query(mysql,"DROP TABLE IF EXISTS test_field_flags"); + myquery(rc); + rc = mysql_commit(mysql); - myquery(mysql,rc); + myquery(rc); rc = mysql_query(mysql,"CREATE TABLE test_field_flags(id int NOT NULL AUTO_INCREMENT PRIMARY KEY,\ id1 int NOT NULL,\ @@ -2298,17 +2330,17 @@ void test_field_flags(MYSQL *mysql) id4 int NOT NULL,\ id5 int,\ KEY(id3,id4))"); - myquery(mysql,rc); + myquery(rc); rc = mysql_commit(mysql); - myquery(mysql,rc); - + myquery(rc); + /* with table name included with true column name */ rc = mysql_query(mysql,"SELECT * FROM test_field_flags"); - myquery(mysql,rc); - + myquery(rc); + result = mysql_use_result(mysql); - mytest(mysql,result); + mytest(result); mysql_field_seek(result,0); fputc('\n', stdout); @@ -2338,17 +2370,19 @@ static struct my_option myctest_long_options[] = 0, 0, 0, 0, 0}, {"database", 'D', "Database to use", (gptr*) &opt_db, (gptr*) &opt_db, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"host", 'h', "Connect to host", (gptr*) &opt_host, (gptr*) &opt_host, 0, GET_STR, + {"host", 'h', "Connect to host", (gptr*) &opt_host, (gptr*) &opt_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"password", 'p', "Password to use when connecting to server. If password is not given it's asked from the tty.", 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, +#ifndef DONT_ALLOW_USER_CHANGE {"user", 'u', "User for login if not current user", (gptr*) &opt_user, - (gptr*) &opt_user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + (gptr*) &opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"port", 'P', "Port number to use for connection", (gptr*) &opt_port, (gptr*) &opt_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"socket", 'S', "Socket file to use for connection", (gptr*) &opt_unix_socket, - (gptr*) &opt_unix_socket, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + (gptr*) &opt_unix_socket, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -2392,9 +2426,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case 'p': if (argument) { + char *start=argument; my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR)); opt_password= my_strdup(argument, MYF(MY_FAE)); while (*argument) *argument++= 'x'; /* Destroy argument */ + if (*start) + start[1]=0; } else tty_password= 1; @@ -2402,7 +2439,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case '?': case 'I': /* Info */ usage(); - exit(1); + exit(0); break; } return 0; @@ -2416,11 +2453,11 @@ static void get_options(int argc, char **argv) load_defaults("my",load_default_groups,&argc,&argv); - if ((ho_error=handle_options(&argc, &argv, myctest_long_options, + if ((ho_error=handle_options(&argc,&argv, myctest_long_options, get_one_option))) exit(ho_error); - free_defaults(argv); + /*free_defaults(argv);*/ if (tty_password) opt_password=get_tty_password(NullS); return; @@ -2430,47 +2467,50 @@ static void get_options(int argc, char **argv) * main routine * *********************************************************/ int main(int argc, char **argv) -{ - MYSQL *mysql; - - +{ MY_INIT(argv[0]); - get_options(argc,argv); /* don't work -- options : TODO */ + get_options(argc,argv); - mysql = client_connect(); /* connect to server */ - - test_select(mysql); /* simple prepare-select */ - test_insert(mysql); /* prepare with insert */ - test_bind_result(mysql); /* result bind test */ - test_prepare(mysql); /* prepare test */ - test_prepare_simple(mysql);/* simple prepare */ - test_null(mysql); /* test null data handling */ - test_debug_example(mysql); /* some debugging case */ - test_update(mysql); /* prepare-update test */ - test_simple_update(mysql); /* simple prepare with update */ - test_long_data(mysql); /* long data handling in pieces */ - test_simple_delete(mysql); /* prepare with delete */ - test_field_names(mysql); /* test for field names */ - test_double_compare(mysql);/* float comparision */ - client_query(mysql); /* simple client query test */ - client_store_result(mysql);/* usage of mysql_store_result() */ - client_use_result(mysql); /* usage of mysql_use_result() */ - test_tran_bdb(mysql); /* transaction test on BDB table type */ - test_tran_innodb(mysql); /* transaction test on InnoDB table type */ - test_prepare_ext(mysql); /* test prepare with all types conversion -- TODO */ - test_prepare_syntax(mysql);/* syntax check for prepares */ - test_prepare_field_result(mysql); /* prepare meta info */ - test_field_names(mysql); /* test for field names */ - test_field_flags(mysql); /* test to help .NET provider team */ - test_long_data_str(mysql); /* long data handling */ - test_long_data_str1(mysql);/* yet another long data handling */ - test_long_data_bin(mysql); /* long binary insertion */ - test_warnings(mysql); /* show warnings test */ - test_errors(mysql); /* show errors test */ - test_select_simple(mysql); /* simple select prepare */ - test_prepare_resultset(mysql);/* prepare meta info test */ - - client_disconnect(mysql); /* disconnect from server */ + client_connect(); /* connect to server */ + + test_null(); /* test null data handling */ + test_simple_update(); + //test_select_simple(); + //test_prepare_resultset(); + //test_select(); /* simple prepare-select */ + test_insert(); /* prepare with insert */ + //test_bind_result(); /* result bind test */ + //test_long_data(); /* long data handling in pieces */ + test_prepare_simple();/* simple prepare */ + test_prepare(); /* prepare test */ + test_prepare_simple();/* simple prepare */ + test_null(); /* test null data handling */ + test_debug_example(); /* some debugging case */ + test_update(); /* prepare-update test */ + test_simple_update(); /* simple prepare with update */ + //test_long_data(); /* long data handling in pieces */ + test_simple_delete(); /* prepare with delete */ + test_field_names(); /* test for field names */ + test_double_compare();/* float comparision */ + client_query(); /* simple client query test */ + client_store_result();/* usage of mysql_store_result() */ + client_use_result(); /* usage of mysql_use_result() */ + test_tran_bdb(); /* transaction test on BDB table type */ + test_tran_innodb(); /* transaction test on InnoDB table type */ + test_prepare_ext(); /* test prepare with all types conversion -- TODO */ + test_prepare_syntax();/* syntax check for prepares */ + //test_prepare_field_result(); /* prepare meta info */ + test_field_names(); /* test for field names */ + test_field_flags(); /* test to help .NET provider team */ + //test_long_data_str(); /* long data handling */ + //test_long_data_str1();/* yet another long data handling */ + //test_long_data_bin(); /* long binary insertion */ + test_warnings(); /* show warnings test */ + test_errors(); /* show errors test */ + //test_select_simple(); /* simple select prepare */ + //test_prepare_resultset();/* prepare meta info test */ + + client_disconnect(); /* disconnect from server */ fprintf(stdout,"\ndone !!!\n"); return(0); |