# This test is to check various cases of connections
# with right and wrong password, with and without database 
# Unfortunately the check is incomplete as we can't handle errors on connect
# Also we can't connect without database

# This test makes no sense with the embedded server
--source include/not_embedded.inc

--disable_warnings
drop table if exists t1,t2;
--enable_warnings

#connect (con1,localhost,root,,"");
#show tables;
connect (con1,localhost,root,,mysql);
show tables;
connect (con1,localhost,root,,test);
show tables;

# Re enable this one day if error handling on connect will take place

#connect (con1,localhost,root,z,test2);
#--error 1045
#connect (con1,localhost,root,z,);
#--error 1045

grant ALL on *.* to test@localhost identified by "gambling";
grant ALL on *.* to test@127.0.0.1 identified by "gambling";

# Now check this user with different databases

#connect (con1,localhost,test,gambling,"");
#show tables;
connect (con1,localhost,test,gambling,mysql);
show tables;
connect (con1,localhost,test,gambling,test);
show tables;

# Re enable this one day if error handling on connect will take place

#connect (con1,localhost,test,,test2);
#--error 1045
#connect (con1,localhost,test,,"");
#--error 1045
#connect (con1,localhost,test,zorro,test2);
#--error 1045
#connect (con1,localhost,test,zorro,);
#--error 1045


# check if old password version also works
update mysql.user set password=old_password("gambling2") where user=_binary"test";
flush privileges;

#connect (con1,localhost,test,gambling2,"");
#show tables;
connect (con1,localhost,test,gambling2,mysql);
set password="";
--error 1105
set password='gambling3';
set password=old_password('gambling3');
show tables;
connect (con1,localhost,test,gambling3,test);
show tables;

# Re enable this one day if error handling on connect will take place

#connect (con1,localhost,test,,test2);
#--error 1045
#connect (con1,localhost,test,,);
#--error 1045
#connect (con1,localhost,test,zorro,test2);
#--error 1045
#connect (con1,localhost,test,zorro,);
#--error 1045


# remove user 'test' so that other tests which may use 'test'
# do not depend on this test.

delete from mysql.user where user=_binary"test";
flush privileges;

#
# Bug#12517: Clear user variables and replication events before 
#            closing temp tables in thread cleanup.
connect (con2,localhost,root,,test);
connection con2;
create table t1 (id integer not null auto_increment primary key);
create temporary table t2(id integer not null auto_increment primary key);
set @id := 1;
delete from t1 where id like @id;
disconnect con2;
--sleep 5
connection default;
drop table t1;

# End of 4.1 tests
