Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
500e56e0
Commit
500e56e0
authored
Nov 22, 2002
by
venu@myvenu.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
client_test.c:
Modification to new API test sql_prepare.cc: Fix for lock_types
parent
ec17cac9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
701 additions
and
668 deletions
+701
-668
sql/sql_prepare.cc
sql/sql_prepare.cc
+14
-21
tests/client_test.c
tests/client_test.c
+687
-647
No files found.
sql/sql_prepare.cc
View file @
500e56e0
...
...
@@ -276,8 +276,9 @@ static void setup_param_functions(Item_param *param, uchar read_pos)
from client ..
*/
static
bool
setup_params_data
(
THD
*
thd
,
PREP_STMT
*
stmt
)
static
bool
setup_params_data
(
PREP_STMT
*
stmt
)
{
THD
*
thd
=
stmt
->
thd
;
List
<
Item
>
&
params
=
thd
->
lex
.
param_list
;
List_iterator
<
Item
>
param_iterator
(
params
);
Item_param
*
param
;
...
...
@@ -375,8 +376,7 @@ static int check_prepare_fields(THD *thd,TABLE *table, List<Item> &fields,
static
bool
mysql_test_insert_fields
(
PREP_STMT
*
stmt
,
TABLE_LIST
*
table_list
,
List
<
Item
>
&
fields
,
List
<
List_item
>
&
values_list
,
thr_lock_type
lock_type
)
List
<
List_item
>
&
values_list
)
{
THD
*
thd
=
stmt
->
thd
;
TABLE
*
table
;
...
...
@@ -384,7 +384,7 @@ static bool mysql_test_insert_fields(PREP_STMT *stmt,
List_item
*
values
;
DBUG_ENTER
(
"mysql_test_insert_fields"
);
if
(
!
(
table
=
open_ltable
(
thd
,
table_list
,
lock_type
)))
if
(
!
(
table
=
open_ltable
(
thd
,
table_list
,
table_list
->
lock_type
)))
DBUG_RETURN
(
1
);
if
((
values
=
its
++
))
...
...
@@ -427,13 +427,13 @@ static bool mysql_test_insert_fields(PREP_STMT *stmt,
static
bool
mysql_test_upd_fields
(
PREP_STMT
*
stmt
,
TABLE_LIST
*
table_list
,
List
<
Item
>
&
fields
,
List
<
Item
>
&
values
,
COND
*
conds
,
thr_lock_type
lock_type
)
COND
*
conds
)
{
THD
*
thd
=
stmt
->
thd
;
TABLE
*
table
;
DBUG_ENTER
(
"mysql_test_upd_fields"
);
if
(
!
(
table
=
open_ltable
(
thd
,
table_list
,
lock_type
)))
if
(
!
(
table
=
open_ltable
(
thd
,
table_list
,
table_list
->
lock_type
)))
DBUG_RETURN
(
1
);
if
(
setup_tables
(
table_list
)
||
setup_fields
(
thd
,
table_list
,
fields
,
1
,
0
,
0
)
||
...
...
@@ -465,7 +465,7 @@ static bool mysql_test_upd_fields(PREP_STMT *stmt, TABLE_LIST *table_list,
static
bool
mysql_test_select_fields
(
PREP_STMT
*
stmt
,
TABLE_LIST
*
tables
,
List
<
Item
>
&
fields
,
List
<
Item
>
&
values
,
COND
*
conds
,
ORDER
*
order
,
ORDER
*
group
,
Item
*
having
,
thr_lock_type
lock_type
)
Item
*
having
)
{
TABLE
*
table
;
bool
hidden_group_fields
;
...
...
@@ -473,7 +473,7 @@ static bool mysql_test_select_fields(PREP_STMT *stmt, TABLE_LIST *tables,
List
<
Item
>
all_fields
(
fields
);
DBUG_ENTER
(
"mysql_test_select_fields"
);
if
(
!
(
table
=
open_ltable
(
thd
,
tables
,
lock_type
)))
if
(
!
(
table
=
open_ltable
(
thd
,
tables
,
tables
->
lock_type
)))
DBUG_RETURN
(
1
);
thd
->
used_tables
=
0
;
// Updated by setup_fields
...
...
@@ -546,21 +546,19 @@ static bool send_prepare_results(PREP_STMT *stmt)
case
SQLCOM_INSERT
:
if
(
mysql_test_insert_fields
(
stmt
,
tables
,
lex
->
field_list
,
lex
->
many_values
,
lex
->
lock_option
))
lex
->
many_values
))
goto
abort
;
break
;
case
SQLCOM_UPDATE
:
if
(
mysql_test_upd_fields
(
stmt
,
tables
,
select_lex
->
item_list
,
lex
->
value_list
,
select_lex
->
where
,
lex
->
lock_option
))
lex
->
value_list
,
select_lex
->
where
))
goto
abort
;
break
;
case
SQLCOM_DELETE
:
if
(
mysql_test_upd_fields
(
stmt
,
tables
,
select_lex
->
item_list
,
lex
->
value_list
,
select_lex
->
where
,
lex
->
lock_option
))
lex
->
value_list
,
select_lex
->
where
))
goto
abort
;
break
;
...
...
@@ -568,8 +566,7 @@ static bool send_prepare_results(PREP_STMT *stmt)
if
(
mysql_test_select_fields
(
stmt
,
tables
,
select_lex
->
item_list
,
lex
->
value_list
,
select_lex
->
where
,
(
ORDER
*
)
select_lex
->
order_list
.
first
,
(
ORDER
*
)
select_lex
->
group_list
.
first
,
select_lex
->
having
,
lex
->
lock_option
))
(
ORDER
*
)
select_lex
->
group_list
.
first
,
select_lex
->
having
))
goto
abort
;
break
;
...
...
@@ -712,11 +709,9 @@ void mysql_stmt_execute(THD *thd, char *packet)
DBUG_VOID_RETURN
;
}
if
(
stmt
->
param_count
&&
setup_params_data
(
thd
,
stmt
))
if
(
stmt
->
param_count
&&
setup_params_data
(
stmt
))
DBUG_VOID_RETURN
;
MEM_ROOT
thd_root
=
thd
->
mem_root
;
thd
->
mem_root
=
thd
->
con_root
;
if
(
!
(
specialflag
&
SPECIAL_NO_PRIOR
))
my_pthread_setprio
(
pthread_self
(),
QUERY_PRIOR
);
...
...
@@ -726,14 +721,12 @@ void mysql_stmt_execute(THD *thd, char *packet)
mysql_delete(), mysql_update() and mysql_select() to not to
have re-check on setup_* and other things ..
*/
mysql_execute_command
(
thd
);
mysql_execute_command
(
stmt
->
thd
);
thd
->
last_prepared_stmt
=
stmt
;
if
(
!
(
specialflag
&
SPECIAL_NO_PRIOR
))
my_pthread_setprio
(
pthread_self
(),
WAIT_PRIOR
);
thd
->
mem_root
=
thd_root
;
DBUG_VOID_RETURN
;
}
...
...
tests/client_test.c
View file @
500e56e0
...
...
@@ -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(m
ysql, msg) print_error(mysql,
msg)
#define myerror(m
sg) 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
);
}
/********************************************************
...
...
@@ -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
;
...
...
@@ -315,10 +319,44 @@ int my_process_result_set(MYSQL *mysql, MYSQL_RES *result)
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
;
...
...
@@ -326,33 +364,33 @@ void client_store_result(MYSQL *mysql)
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
);
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,66 +444,66 @@ 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
(
mysql
,
rc
);
myquery
(
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_autocommit
(
mysql
,
true
);
...
...
@@ -474,7 +512,7 @@ void test_tran_bdb(MYSQL *mysql)
/********************************************************
* to test autocommit feature *
*********************************************************/
void
test_tran_innodb
(
MYSQL
*
mysql
)
void
test_tran_innodb
()
{
MYSQL_RES
*
result
;
MYSQL_ROW
row
;
...
...
@@ -484,65 +522,65 @@ 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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -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
);
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
);
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,48 +711,47 @@ 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
);
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
;
...
...
@@ -736,24 +770,24 @@ void test_prepare(MYSQL *mysql)
init_bind
(
bind
);
rc
=
mysql_autocommit
(
mysql
,
true
);
myquery
(
mysql
,
rc
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS my_prepare"
);
myquery
(
mysql
,
rc
);
myquery
(
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,6 +799,7 @@ 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
;
...
...
@@ -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,7 +860,7 @@ 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
;
...
...
@@ -838,24 +873,24 @@ void test_double_compare(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -866,6 +901,7 @@ void test_double_compare(MYSQL *mysql)
/* string->float */
bind
[
1
].
buffer_type
=
FIELD_TYPE_STRING
;
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
;
...
...
@@ -886,17 +922,17 @@ void test_double_compare(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_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,11 +943,10 @@ 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
];
...
...
@@ -920,29 +955,30 @@ void test_null(MYSQL *mysql)
init_bind
(
bind
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_null"
);
myquery
(
mysql
,
rc
);
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,7 +1012,7 @@ 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
;
...
...
@@ -986,11 +1021,10 @@ void test_select_simple(MYSQL *mysql)
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
);
...
...
@@ -1001,22 +1035,24 @@ void test_select_simple(MYSQL *mysql)
/* 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);
my
test(mysql,
rc);
my
query(
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,11 +1061,10 @@ 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
];
...
...
@@ -1040,37 +1075,37 @@ void test_select(MYSQL *mysql)
init_bind
(
bind
);
rc
=
mysql_autocommit
(
mysql
,
true
);
myquery
(
mysql
,
rc
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_select"
);
myquery
(
mysql
,
rc
);
myquery
(
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,6 +1116,7 @@ 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
;
...
...
@@ -1092,9 +1128,9 @@ void test_select(MYSQL *mysql)
/* 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
];
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
(
mysql
,
rc
);
myquery
(
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,6 +1192,7 @@ 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
;
...
...
@@ -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"
);
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
(
mysql
,
rc
);
myquery
(
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
);
query
=
"INSERT INTO test_long_data(col2) VALUES(?)"
;
strcpy
(
query
,
"INSERT INTO test_long_data(col1,col2) VALUES(?)"
)
;
stmt
=
mysql_prepare
(
mysql
,
query
,
strlen
(
query
));
myxquery
(
mysql
,
stmt
);
myxquery_r
(
stmt
);
strcpy
(
query
,
"INSERT INTO test_long_data(col1,col2,col3) VALUES(?,?,?)"
);
stmt
=
mysql_prepare
(
mysql
,
query
,
strlen
(
query
));
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,7 +1287,7 @@ 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
...
...
@@ -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,28 +1313,27 @@ 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
;
...
...
@@ -1306,23 +1344,23 @@ void test_long_data_str(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -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,11 +1430,10 @@ 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
;
...
...
@@ -1407,23 +1444,23 @@ void test_long_data_str1(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -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,11 +1539,10 @@ 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
;
...
...
@@ -1517,23 +1553,23 @@ void test_long_data_bin(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -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,11 +1638,10 @@ 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
;
...
...
@@ -1617,39 +1652,41 @@ void test_simple_delete(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
[
0
].
buffer
=
(
gptr
)
&
nData
;
...
...
@@ -1658,9 +1695,6 @@ void test_simple_delete(MYSQL *mysql)
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,12 +1722,11 @@ 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
];
...
...
@@ -1703,33 +1736,33 @@ void test_update(MYSQL *mysql)
init_bind
(
bind
);
rc
=
mysql_autocommit
(
mysql
,
true
);
myquery
(
mysql
,
rc
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_update"
);
myquery
(
mysql
,
rc
);
myquery
(
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
;
...
...
@@ -1743,23 +1776,22 @@ void test_update(MYSQL *mysql)
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
);
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,7 +1873,7 @@ 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
;
...
...
@@ -1855,25 +1886,25 @@ void test_bind_result(MYSQL *mysql)
init_bind
(
bind
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_bind_result"
);
myquery
(
mysql
,
rc
);
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 */
...
...
@@ -1881,10 +1912,11 @@ void test_bind_result(MYSQL *mysql)
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
);
...
...
@@ -1915,11 +1947,11 @@ 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
;
...
...
@@ -1927,18 +1959,17 @@ void test_prepare_ext(MYSQL *mysql)
longlong
bData
=
20
;
MYSQL_BIND
bind_int
[
6
];
myheader
(
"test_prepare_ext"
);
init_bind
(
bind_int
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_prepare_ext"
);
myquery
(
mysql
,
rc
);
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
);
...
...
@@ -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,7 +2075,7 @@ 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
;
...
...
@@ -2053,48 +2084,48 @@ void test_field_names(MYSQL *mysql)
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
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_field_names2"
);
myquery
(
mysql
,
rc
);
myquery
(
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
));
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
;
...
...
@@ -2102,22 +2133,22 @@ void test_warnings(MYSQL *mysql)
myheader
(
"test_warnings"
);
rc
=
mysql_query
(
mysql
,
"USE test"
);
myquery
(
mysql
,
rc
);
myquery
(
rc
);
rc
=
mysql_query
(
mysql
,
"SHOW WARNINGS"
);
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
);
}
/********************************************************
* to test errors *
*********************************************************/
void
test_errors
(
MYSQL
*
mysql
)
void
test_errors
()
{
int
rc
;
MYSQL_RES
*
result
;
...
...
@@ -2125,12 +2156,12 @@ void test_errors(MYSQL *mysql)
myheader
(
"test_errors"
);
rc
=
mysql_query
(
mysql
,
"SHOW ERRORS"
);
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
);
}
...
...
@@ -2139,10 +2170,10 @@ 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
;
...
...
@@ -2152,23 +2183,23 @@ void test_insert(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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,6 +2211,7 @@ 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
);
...
...
@@ -2187,7 +2219,7 @@ void test_insert(MYSQL *mysql)
/* 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,7 +2246,7 @@ 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
;
...
...
@@ -2224,29 +2256,29 @@ void test_prepare_resultset(MYSQL *mysql)
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
(
mysql
,
rc
);
myquery
(
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
);
...
...
@@ -2256,9 +2288,9 @@ void test_prepare_resultset(MYSQL *mysql)
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 */
...
...
@@ -2275,7 +2307,7 @@ 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
;
...
...
@@ -2286,10 +2318,10 @@ void test_field_flags(MYSQL *mysql)
myheader
(
"test_field_flags"
);
rc
=
mysql_query
(
mysql
,
"DROP TABLE IF EXISTS test_field_flags"
);
myquery
(
mysql
,
rc
);
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
;
...
...
@@ -2431,46 +2468,49 @@ static void get_options(int argc, char **argv)
*********************************************************/
int
main
(
int
argc
,
char
**
argv
)
{
MYSQL
*
mysql
;
MY_INIT
(
argv
[
0
]);
get_options
(
argc
,
argv
);
/* don't work -- options : TODO */
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 */
get_options
(
argc
,
argv
);
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
,
"
\n
done !!!
\n
"
);
return
(
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment