mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Always test ssl and compress
- Updated after review client/mysqltest.c: Updated after review. Fix "connect" command to take SSL and/or COMPRESS as options instead of enable/disable_ssl and enable/disable_compress Commented do_connect, added test cases etc. Fix safe_get_param to make it possible to call it once for every argument without having any checks inbetween. Make a copy for query->first_argument since safe_get_param will modify query string. Now connect works inside a while loop as well. mysql-test/mysql-test-run.pl: Updated after review mysql-test/r/connect.result: Enable test that was previolsy disabled because of "no error handling" in connect mysql-test/r/mysqltest.result: Added tests for "connect" mysql-test/t/compress.test: Updated after review, use the option argument to connect mysql-test/t/connect.test: Enable test that was previolsy disabled because of "no error handling" in connect Now it's possible to use "--error" before connect, so let's use it. mysql-test/t/information_schema.test: Connection user4 was already used mysql-test/t/myisam.test: Disconnect con1 so the name can be reused mysql-test/t/mysqltest.test: Added tests for "connect" mysql-test/t/openssl_1.test: Updated after review, use the option argument to connect mysql-test/t/sp-security.test: Disconnect user1 connection so the name can be reused mysql-test/t/ssl.test: Updated after review, use the option argument to connect mysql-test/t/ssl_compress.test: Updated after review, use the option argument to connect sql/mysqld.cc: Updated after review, Compression variable is always available sql/sql_show.cc: Updated after review, Compression variable is always available sql/structs.h: Updated after review, Compression variable is always available
This commit is contained in:
parent
20fdedb756
commit
2bb0501d65
16 changed files with 278 additions and 132 deletions
|
@ -73,7 +73,6 @@
|
|||
#define PAD_SIZE 128
|
||||
#define MAX_CONS 128
|
||||
#define MAX_INCLUDE_DEPTH 16
|
||||
#define LAZY_GUESS_BUF_SIZE 8192
|
||||
#define INIT_Q_LINES 1024
|
||||
#define MIN_VAR_ALLOC 32
|
||||
#define BLOCK_STACK_DEPTH 32
|
||||
|
@ -309,8 +308,6 @@ Q_ENABLE_INFO, Q_DISABLE_INFO,
|
|||
Q_ENABLE_METADATA, Q_DISABLE_METADATA,
|
||||
Q_EXEC, Q_DELIMITER,
|
||||
Q_DISABLE_ABORT_ON_ERROR, Q_ENABLE_ABORT_ON_ERROR,
|
||||
Q_DISABLE_SSL, Q_ENABLE_SSL,
|
||||
Q_DISABLE_COMPRESS, Q_ENABLE_COMPRESS,
|
||||
Q_DISPLAY_VERTICAL_RESULTS, Q_DISPLAY_HORIZONTAL_RESULTS,
|
||||
Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL,
|
||||
Q_START_TIMER, Q_END_TIMER,
|
||||
|
@ -397,10 +394,6 @@ const char *command_names[]=
|
|||
"delimiter",
|
||||
"disable_abort_on_error",
|
||||
"enable_abort_on_error",
|
||||
"disable_ssl",
|
||||
"enable_ssl",
|
||||
"disable_compress",
|
||||
"enable_compress",
|
||||
"vertical_results",
|
||||
"horizontal_results",
|
||||
"query_vertical",
|
||||
|
@ -1839,6 +1832,19 @@ void free_replace()
|
|||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
struct connection * find_connection_by_name(const char *name)
|
||||
{
|
||||
struct connection *con;
|
||||
for (con= cons; con < next_con; con++)
|
||||
{
|
||||
if (!strcmp(con->name, name))
|
||||
{
|
||||
return con;
|
||||
}
|
||||
}
|
||||
return 0; /* Connection not found */
|
||||
}
|
||||
|
||||
|
||||
int select_connection_name(const char *name)
|
||||
{
|
||||
|
@ -1846,16 +1852,9 @@ int select_connection_name(const char *name)
|
|||
DBUG_ENTER("select_connection2");
|
||||
DBUG_PRINT("enter",("name: '%s'", name));
|
||||
|
||||
for (con= cons; con < next_con; con++)
|
||||
{
|
||||
if (!strcmp(con->name, name))
|
||||
{
|
||||
cur_con= con;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
}
|
||||
die("connection '%s' not found in connection pool", name);
|
||||
DBUG_RETURN(1); /* Never reached */
|
||||
if (!(cur_con= find_connection_by_name(name)))
|
||||
die("connection '%s' not found in connection pool", name);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1885,7 +1884,7 @@ int close_connection(struct st_query *q)
|
|||
DBUG_PRINT("enter",("name: '%s'",p));
|
||||
|
||||
if (!*p)
|
||||
die("Missing connection name in connect");
|
||||
die("Missing connection name in disconnect");
|
||||
name= p;
|
||||
while (*p && !my_isspace(charset_info,*p))
|
||||
p++;
|
||||
|
@ -1908,6 +1907,14 @@ int close_connection(struct st_query *q)
|
|||
}
|
||||
#endif
|
||||
mysql_close(&con->mysql);
|
||||
my_free(con->name, MYF(0));
|
||||
/*
|
||||
When the connection is closed set name to "closed_connection"
|
||||
to make it possible to reuse the connection name.
|
||||
The connection slot will not be reused
|
||||
*/
|
||||
if (!(con->name = my_strdup("closed_connection", MYF(MY_WME))))
|
||||
die("Out of memory");
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
}
|
||||
|
@ -1923,18 +1930,22 @@ int close_connection(struct st_query *q)
|
|||
) are delimiters/terminators
|
||||
*/
|
||||
|
||||
char* safe_get_param(char *str, char** arg, const char *msg)
|
||||
char* safe_get_param(char *str, char** arg, const char *msg, bool required)
|
||||
{
|
||||
DBUG_ENTER("safe_get_param");
|
||||
if(!*str)
|
||||
{
|
||||
if (required)
|
||||
die(msg);
|
||||
*arg= str;
|
||||
DBUG_RETURN(str);
|
||||
}
|
||||
while (*str && my_isspace(charset_info,*str))
|
||||
str++;
|
||||
*arg= str;
|
||||
for (; *str && *str != ',' && *str != ')' ; str++)
|
||||
{
|
||||
if (my_isspace(charset_info,*str))
|
||||
*str= 0;
|
||||
}
|
||||
if (!*str)
|
||||
while (*str && *str != ',' && *str != ')')
|
||||
str++;
|
||||
if (required && !*arg)
|
||||
die(msg);
|
||||
|
||||
*str++= 0;
|
||||
|
@ -2119,13 +2130,39 @@ err:
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
Open a new connection to MySQL Server with the parameters
|
||||
specified
|
||||
|
||||
SYNOPSIS
|
||||
do_connect()
|
||||
q called command
|
||||
|
||||
DESCRIPTION
|
||||
connect(<name>,<host>,<user>,<pass>,<db>,[<port>,<sock>[<opts>]]);
|
||||
|
||||
<name> - name of the new connection
|
||||
<host> - hostname of server
|
||||
<user> - user to connect as
|
||||
<pass> - password used when connecting
|
||||
<db> - initial db when connected
|
||||
<port> - server port
|
||||
<sock> - server socket
|
||||
<opts> - options to use for the connection
|
||||
SSL - use SSL if available
|
||||
COMPRESS - use compression if available
|
||||
|
||||
*/
|
||||
|
||||
int do_connect(struct st_query *q)
|
||||
{
|
||||
char *con_name, *con_user,*con_pass, *con_host, *con_port_str,
|
||||
*con_db, *con_sock;
|
||||
char *p= q->first_argument;
|
||||
*con_db, *con_sock, *con_options;
|
||||
char *con_buf, *p;
|
||||
char buff[FN_REFLEN];
|
||||
int con_port;
|
||||
bool con_ssl= 0;
|
||||
bool con_compress= 0;
|
||||
int free_con_sock= 0;
|
||||
int error= 0;
|
||||
int create_conn= 1;
|
||||
|
@ -2133,57 +2170,97 @@ int do_connect(struct st_query *q)
|
|||
DBUG_ENTER("do_connect");
|
||||
DBUG_PRINT("enter",("connect: %s",p));
|
||||
|
||||
/* Make a copy of query before parsing, safe_get_param will modify */
|
||||
if (!(con_buf= my_strdup(q->first_argument, MYF(MY_WME))))
|
||||
die("Could not allocate con_buf");
|
||||
p= con_buf;
|
||||
|
||||
if (*p != '(')
|
||||
die("Syntax error in connect - expected '(' found '%c'", *p);
|
||||
p++;
|
||||
p= safe_get_param(p, &con_name, "missing connection name");
|
||||
p= safe_get_param(p, &con_host, "missing connection host");
|
||||
p= safe_get_param(p, &con_user, "missing connection user");
|
||||
p= safe_get_param(p, &con_pass, "missing connection password");
|
||||
p= safe_get_param(p, &con_db, "missing connection db");
|
||||
if (!*p || *p == ';') /* Default port and sock */
|
||||
p= safe_get_param(p, &con_name, "Missing connection name", 1);
|
||||
p= safe_get_param(p, &con_host, "Missing connection host", 1);
|
||||
p= safe_get_param(p, &con_user, "Missing connection user", 1);
|
||||
p= safe_get_param(p, &con_pass, "Missing connection password", 1);
|
||||
p= safe_get_param(p, &con_db, "Missing connection db", 1);
|
||||
|
||||
/* Port */
|
||||
VAR* var_port;
|
||||
p= safe_get_param(p, &con_port_str, "Missing connection port", 0);
|
||||
if (*con_port_str)
|
||||
{
|
||||
con_port= port;
|
||||
con_sock= (char*) unix_sock;
|
||||
}
|
||||
else
|
||||
{
|
||||
VAR* var_port, *var_sock;
|
||||
p= safe_get_param(p, &con_port_str, "missing connection port");
|
||||
if (*con_port_str == '$')
|
||||
{
|
||||
if (!(var_port= var_get(con_port_str, 0, 0, 0)))
|
||||
die("Unknown variable '%s'", con_port_str+1);
|
||||
die("Unknown variable '%s'", con_port_str+1);
|
||||
con_port= var_port->int_val;
|
||||
}
|
||||
else
|
||||
{
|
||||
con_port= atoi(con_port_str);
|
||||
p= safe_get_param(p, &con_sock, "missing connection socket");
|
||||
if (con_port == 0)
|
||||
die("Illegal argument for port: '%s'", con_port_str);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
con_port= port;
|
||||
}
|
||||
|
||||
/* Sock */
|
||||
VAR *var_sock;
|
||||
p= safe_get_param(p, &con_sock, "Missing connection socket", 0);
|
||||
if (*con_sock)
|
||||
{
|
||||
if (*con_sock == '$')
|
||||
{
|
||||
if (!(var_sock= var_get(con_sock, 0, 0, 0)))
|
||||
die("Unknown variable '%s'", con_sock+1);
|
||||
die("Unknown variable '%s'", con_sock+1);
|
||||
if (!(con_sock= (char*)my_malloc(var_sock->str_val_len+1, MYF(0))))
|
||||
die("Out of memory");
|
||||
die("Out of memory");
|
||||
free_con_sock= 1;
|
||||
memcpy(con_sock, var_sock->str_val, var_sock->str_val_len);
|
||||
con_sock[var_sock->str_val_len]= 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
con_sock= (char*) unix_sock;
|
||||
}
|
||||
|
||||
/* Options */
|
||||
p= safe_get_param(p, &con_options, "Missing options", 0);
|
||||
while (*con_options)
|
||||
{
|
||||
char* str= con_options;
|
||||
while (*str && !my_isspace(charset_info, *str))
|
||||
str++;
|
||||
*str++= 0;
|
||||
if (!strcmp(con_options, "SSL"))
|
||||
con_ssl= 1;
|
||||
else if (!strcmp(con_options, "COMPRESS"))
|
||||
con_compress= 1;
|
||||
else
|
||||
die("Illegal option to connect: %s", con_options);
|
||||
con_options= str;
|
||||
}
|
||||
q->last_argument= p;
|
||||
|
||||
if (next_con == cons_end)
|
||||
die("Connection limit exhausted - increase MAX_CONS in mysqltest.c");
|
||||
|
||||
if (find_connection_by_name(con_name))
|
||||
die("Connection %s already exists", con_name);
|
||||
|
||||
if (!mysql_init(&next_con->mysql))
|
||||
die("Failed on mysql_init()");
|
||||
if (opt_compress)
|
||||
if (opt_compress || con_compress)
|
||||
mysql_options(&next_con->mysql,MYSQL_OPT_COMPRESS,NullS);
|
||||
mysql_options(&next_con->mysql, MYSQL_OPT_LOCAL_INFILE, 0);
|
||||
mysql_options(&next_con->mysql, MYSQL_SET_CHARSET_NAME, charset_name);
|
||||
|
||||
#ifdef HAVE_OPENSSL
|
||||
if (opt_use_ssl)
|
||||
if (opt_use_ssl || con_ssl)
|
||||
mysql_ssl_set(&next_con->mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
|
||||
opt_ssl_capath, opt_ssl_cipher);
|
||||
#endif
|
||||
|
@ -2214,6 +2291,7 @@ int do_connect(struct st_query *q)
|
|||
}
|
||||
if (free_con_sock)
|
||||
my_free(con_sock, MYF(MY_WME));
|
||||
my_free(con_buf, MYF(MY_WME));
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
@ -4053,12 +4131,6 @@ int main(int argc, char **argv)
|
|||
case Q_DISABLE_QUERY_LOG: disable_query_log=1; break;
|
||||
case Q_ENABLE_ABORT_ON_ERROR: abort_on_error=1; break;
|
||||
case Q_DISABLE_ABORT_ON_ERROR: abort_on_error=0; break;
|
||||
#ifdef HAVE_OPENSSL
|
||||
case Q_ENABLE_SSL: opt_use_ssl=1; break;
|
||||
case Q_DISABLE_SSL: opt_use_ssl=0; break;
|
||||
#endif
|
||||
case Q_ENABLE_COMPRESS: opt_compress=1; break;
|
||||
case Q_DISABLE_COMPRESS: opt_compress=0; break;
|
||||
case Q_ENABLE_RESULT_LOG: disable_result_log=0; break;
|
||||
case Q_DISABLE_RESULT_LOG: disable_result_log=1; break;
|
||||
case Q_ENABLE_WARNINGS: disable_warnings=0; break;
|
||||
|
|
|
@ -191,7 +191,6 @@ our $opt_compress;
|
|||
our $opt_ssl;
|
||||
our $opt_skip_ssl;
|
||||
our $opt_ssl_supported;
|
||||
our $opt_with_openssl; # Deprecated flag
|
||||
our $opt_ps_protocol;
|
||||
|
||||
our $opt_current_test;
|
||||
|
@ -480,8 +479,7 @@ sub command_line_setup () {
|
|||
# Control what engine/variation to run
|
||||
'embedded-server' => \$opt_embedded_server,
|
||||
'ps-protocol' => \$opt_ps_protocol,
|
||||
'with-openssl' => \$opt_with_openssl,
|
||||
'ssl' => \$opt_ssl,
|
||||
'ssl|with-openssl' => \$opt_ssl,
|
||||
'skip-ssl' => \$opt_skip_ssl,
|
||||
'compress' => \$opt_compress,
|
||||
'bench' => \$opt_bench,
|
||||
|
@ -1101,13 +1099,6 @@ sub kill_and_cleanup () {
|
|||
|
||||
sub check_ssl_support () {
|
||||
|
||||
|
||||
# Convert deprecated --with-openssl to --ssl
|
||||
if ( $opt_with_openssl )
|
||||
{
|
||||
$opt_ssl= 1;
|
||||
}
|
||||
|
||||
if ($opt_skip_ssl)
|
||||
{
|
||||
mtr_report("Skipping SSL");
|
||||
|
@ -2597,7 +2588,7 @@ Options to control what test suites or cases to run
|
|||
|
||||
force Continue to run the suite after failure
|
||||
with-ndbcluster Use cluster, and enable test cases that requres it
|
||||
skip-ndb[cluster] Use cluster, and enable test cases that requres it
|
||||
skip-ndb[cluster] Skip the ndb test cases, don't start cluster
|
||||
do-test=PREFIX Run test cases which name are prefixed with PREFIX
|
||||
start-from=PREFIX Run test cases starting from test prefixed with PREFIX
|
||||
suite=NAME Run the test suite named NAME. The default is "main"
|
||||
|
|
|
@ -20,6 +20,10 @@ time_zone_transition_type
|
|||
user
|
||||
show tables;
|
||||
Tables_in_test
|
||||
connect(localhost,root,z,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
connect(localhost,root,z,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
grant ALL on *.* to test@localhost identified by "gambling";
|
||||
grant ALL on *.* to test@127.0.0.1 identified by "gambling";
|
||||
show tables;
|
||||
|
@ -43,6 +47,14 @@ time_zone_transition_type
|
|||
user
|
||||
show tables;
|
||||
Tables_in_test
|
||||
connect(localhost,test,,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
||||
connect(localhost,test,,"",9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
||||
connect(localhost,test,zorro,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
||||
connect(localhost,test,zorro,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
||||
update mysql.user set password=old_password("gambling2") where user=_binary"test";
|
||||
flush privileges;
|
||||
set password="";
|
||||
|
@ -70,6 +82,14 @@ time_zone_transition_type
|
|||
user
|
||||
show tables;
|
||||
Tables_in_test
|
||||
connect(localhost,test,,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
||||
connect(localhost,test,,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
||||
connect(localhost,test,zorro,test2,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
||||
connect(localhost,test,zorro,test,9306,MYSQL_TEST_DIR/var/tmp/master.sock);
|
||||
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
||||
delete from mysql.user where user=_binary"test";
|
||||
flush privileges;
|
||||
create table t1 (id integer not null auto_increment primary key);
|
||||
|
|
|
@ -344,6 +344,18 @@ mysqltest: At line 1: Wrong column number to replace_column in 'replace_column 1
|
|||
mysqltest: At line 1: Invalid integer argument "10!"
|
||||
mysqltest: At line 1: End of line junk detected: "!"
|
||||
mysqltest: At line 1: Invalid integer argument "a"
|
||||
mysqltest: At line 1: Syntax error in connect - expected '(' found 'mysqltest: At line 1: Missing connection host
|
||||
mysqltest: At line 1: Missing connection host
|
||||
mysqltest: At line 1: Missing connection user
|
||||
mysqltest: At line 1: Missing connection user
|
||||
mysqltest: At line 1: Missing connection password
|
||||
mysqltest: At line 1: Missing connection db
|
||||
mysqltest: At line 1: Could not open connection 'con2': Unknown database 'illegal_db'
|
||||
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
|
||||
mysqltest: At line 1: Illegal option to connect: SMTP
|
||||
mysqltest: In included file "./var/tmp/con.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c
|
||||
mysqltest: In included file "./var/tmp/con.sql": At line 3: connection 'test_con1' not found in connection pool
|
||||
mysqltest: In included file "./var/tmp/con.sql": At line 2: Connection test_con1 already exists
|
||||
failing_statement;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing_statement' at line 1
|
||||
failing_statement;
|
||||
|
|
|
@ -3,12 +3,11 @@
|
|||
|
||||
-- source include/have_compress.inc
|
||||
|
||||
enable_compress;
|
||||
|
||||
# Reconnect to turn compress on for
|
||||
# default connection
|
||||
disconnect default;
|
||||
connect (default,localhost,root,,);
|
||||
connect (default,localhost,root,,,,,COMPRESS);
|
||||
|
||||
# Check compression turned on
|
||||
SHOW STATUS LIKE 'Compression';
|
||||
|
@ -16,4 +15,3 @@ SHOW STATUS LIKE 'Compression';
|
|||
# Source select test case
|
||||
-- source t/select.test
|
||||
|
||||
disable_compress;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# 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
|
||||
# with right and wrong password, with and without database
|
||||
# Unfortunately the check is incomplete as we can't connect without database
|
||||
|
||||
# This test makes no sense with the embedded server
|
||||
--source include/not_embedded.inc
|
||||
|
@ -10,69 +9,72 @@
|
|||
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);
|
||||
connect (con2,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
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,root,z,test2);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,root,z,);
|
||||
|
||||
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);
|
||||
connect (con3,localhost,test,gambling,mysql);
|
||||
show tables;
|
||||
connect (con1,localhost,test,gambling,test);
|
||||
connect (con4,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
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,,test2);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,,"");
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,zorro,test2);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,zorro,);
|
||||
|
||||
|
||||
# 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);
|
||||
connect (con10,localhost,test,gambling2,);
|
||||
connect (con5,localhost,test,gambling2,mysql);
|
||||
set password="";
|
||||
--error 1372
|
||||
set password='gambling3';
|
||||
set password=old_password('gambling3');
|
||||
show tables;
|
||||
connect (con1,localhost,test,gambling3,test);
|
||||
connect (con6,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
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,,test2);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,,);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,zorro,test2);
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--error 1045
|
||||
connect (fail_con,localhost,test,zorro,);
|
||||
|
||||
|
||||
# remove user 'test' so that other tests which may use 'test'
|
||||
|
@ -84,13 +86,13 @@ flush privileges;
|
|||
#
|
||||
# Bug#12517: Clear user variables and replication events before
|
||||
# closing temp tables in thread cleanup.
|
||||
connect (con2,localhost,root,,test);
|
||||
connection con2;
|
||||
connect (con7,localhost,root,,test);
|
||||
connection con7;
|
||||
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;
|
||||
disconnect con7;
|
||||
--sleep 5
|
||||
connection default;
|
||||
drop table t1;
|
||||
|
|
|
@ -498,8 +498,8 @@ drop table t1;
|
|||
#
|
||||
|
||||
grant select on test.* to mysqltest_4@localhost;
|
||||
connect (user4,localhost,mysqltest_4,,);
|
||||
connection user4;
|
||||
connect (user10261,localhost,mysqltest_4,,);
|
||||
connection user10261;
|
||||
SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
|
||||
where COLUMN_NAME='TABLE_NAME';
|
||||
connection default;
|
||||
|
|
|
@ -650,6 +650,7 @@ insert into t1 values (10),(11),(12);
|
|||
select * from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
disconnect con1;
|
||||
|
||||
# Same test with dynamic record length
|
||||
create table t1 (a int, b varchar(30) default "hello");
|
||||
|
@ -674,8 +675,10 @@ insert into t1 (a) values (10),(11),(12);
|
|||
select a from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
disconnect con1;
|
||||
set global concurrent_insert=@save_concurrent_insert;
|
||||
|
||||
|
||||
# BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce
|
||||
# different statistics on the same table with NULL values.
|
||||
create table t1 (a int, key(a));
|
||||
|
|
|
@ -358,11 +358,11 @@ select 3 from t1 ;
|
|||
# Missing delimiter
|
||||
# The comment will be "sucked into" the sleep command since
|
||||
# delimiter is missing until after "show status"
|
||||
--system echo "sleep 4" > var/log/mysqltest.sql
|
||||
--system echo "# A comment" >> var/log/mysqltest.sql
|
||||
--system echo "show status;" >> var/log/mysqltest.sql
|
||||
--system echo "sleep 4" > var/tmp/mysqltest.sql
|
||||
--system echo "# A comment" >> var/tmp/mysqltest.sql
|
||||
--system echo "show status;" >> var/tmp/mysqltest.sql
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1
|
||||
--exec $MYSQL_TEST < var/tmp/mysqltest.sql 2>&1
|
||||
|
||||
#
|
||||
# Extra delimiter
|
||||
|
@ -808,6 +808,66 @@ select "a" as col1, "c" as col2;
|
|||
--error 1
|
||||
--exec echo "save_master_pos; sync_with_master a;" | $MYSQL_TEST 2>&1
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test connect
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
--error 1
|
||||
--exec echo "connect;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect ();" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2,);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2,localhost);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2, localhost, root);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2, localhost, root,);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con2,localhost,root,,illegal_db);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con1,localhost,root,,,illegal_port,);" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "connect (con1,localhost,root,,,,,SMTP POP);" | $MYSQL_TEST 2>&1
|
||||
|
||||
# Repeat connect/disconnect
|
||||
--exec echo "let \$i=100;" > var/tmp/con.sql
|
||||
--exec echo "while (\$i)" >> var/tmp/con.sql
|
||||
--exec echo "{" >> var/tmp/con.sql
|
||||
--exec echo " connect (test_con1,localhost,root,,); " >> var/tmp/con.sql
|
||||
--exec echo " disconnect test_con1; " >> var/tmp/con.sql
|
||||
--exec echo " dec \$i; " >> var/tmp/con.sql
|
||||
--exec echo "}" >> var/tmp/con.sql
|
||||
--exec echo "source var/tmp/con.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
# Repeat connect/disconnect, exceed max number of connections
|
||||
--exec echo "let \$i=200;" > var/tmp/con.sql
|
||||
--exec echo "while (\$i)" >> var/tmp/con.sql
|
||||
--exec echo "{" >> var/tmp/con.sql
|
||||
--exec echo " connect (test_con1,localhost,root,,); " >> var/tmp/con.sql
|
||||
--exec echo " disconnect test_con1; " >> var/tmp/con.sql
|
||||
--exec echo " dec \$i; " >> var/tmp/con.sql
|
||||
--exec echo "}" >> var/tmp/con.sql
|
||||
--error 1
|
||||
--exec echo "source var/tmp/con.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
# Select disconnected connection
|
||||
--exec echo "connect (test_con1,localhost,root,,);" > var/tmp/con.sql
|
||||
--exec echo "disconnect test_con1; " >> var/tmp/con.sql
|
||||
--exec echo "connection test_con1;" >> var/tmp/con.sql
|
||||
--error 1
|
||||
--exec echo "source var/tmp/con.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
# Connection name already used
|
||||
--exec echo "connect (test_con1,localhost,root,,);" > var/tmp/con.sql
|
||||
--exec echo "connect (test_con1,localhost,root,,);" >> var/tmp/con.sql
|
||||
--error 1
|
||||
--exec echo "source var/tmp/con.sql;" | $MYSQL_TEST 2>&1
|
||||
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test mysqltest arguments
|
||||
|
|
|
@ -13,11 +13,11 @@ grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA
|
|||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com";
|
||||
flush privileges;
|
||||
enable_ssl;
|
||||
connect (con1,localhost,ssl_user1,,);
|
||||
connect (con2,localhost,ssl_user2,,);
|
||||
connect (con3,localhost,ssl_user3,,);
|
||||
connect (con4,localhost,ssl_user4,,);
|
||||
|
||||
connect (con1,localhost,ssl_user1,,,,,SSL);
|
||||
connect (con2,localhost,ssl_user2,,,,,SSL);
|
||||
connect (con3,localhost,ssl_user3,,,,,SSL);
|
||||
connect (con4,localhost,ssl_user4,,,,,SSL);
|
||||
|
||||
connection con1;
|
||||
# Check ssl turned on
|
||||
|
|
|
@ -336,6 +336,7 @@ connection user1;
|
|||
do 1;
|
||||
use test;
|
||||
|
||||
disconnect user1;
|
||||
connection root;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
|
||||
drop function bug_9503;
|
||||
|
|
|
@ -3,12 +3,10 @@
|
|||
|
||||
-- source include/have_openssl.inc
|
||||
|
||||
enable_ssl;
|
||||
|
||||
# Reconnect to turn ssl on for
|
||||
# default connection
|
||||
disconnect default;
|
||||
connect (default,localhost,root,,);
|
||||
connect (default,localhost,root,,,,,SSL);
|
||||
|
||||
# Check ssl turned on
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
|
@ -16,6 +14,5 @@ SHOW STATUS LIKE 'Ssl_cipher';
|
|||
# Source select test case
|
||||
-- source t/select.test
|
||||
|
||||
disable_ssl;
|
||||
|
||||
|
||||
|
|
|
@ -4,13 +4,11 @@
|
|||
-- source include/have_openssl.inc
|
||||
-- source include/have_compress.inc
|
||||
|
||||
enable_compress;
|
||||
enable_ssl;
|
||||
|
||||
# Reconnect to turn ssl and compress on for
|
||||
# default connection
|
||||
disconnect default;
|
||||
connect (default,localhost,root,,);
|
||||
connect (default,localhost,root,,,,,SSL COMPRESS);
|
||||
|
||||
# Check ssl turned on
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
|
@ -21,5 +19,3 @@ SHOW STATUS LIKE 'Compression';
|
|||
# Source select test case
|
||||
-- source t/select.test
|
||||
|
||||
disable_compress;
|
||||
disable_ssl;
|
||||
|
|
|
@ -5858,9 +5858,7 @@ struct show_var_st status_vars[]= {
|
|||
{"Com_xa_recover", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_XA_RECOVER]),SHOW_LONG_STATUS},
|
||||
{"Com_xa_rollback", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_XA_ROLLBACK]),SHOW_LONG_STATUS},
|
||||
{"Com_xa_start", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_XA_START]),SHOW_LONG_STATUS},
|
||||
#ifdef HAVE_COMPRESS
|
||||
{"Compression", (char*) 0, SHOW_NET_COMPRESSION},
|
||||
#endif /* HAVE_COMPRESS */
|
||||
{"Connections", (char*) &thread_id, SHOW_LONG_CONST},
|
||||
{"Created_tmp_disk_tables", (char*) offsetof(STATUS_VAR, created_tmp_disk_tables), SHOW_LONG_STATUS},
|
||||
{"Created_tmp_files", (char*) &my_tmp_file_created, SHOW_LONG},
|
||||
|
|
|
@ -1632,11 +1632,9 @@ static bool show_status_array(THD *thd, const char *wild,
|
|||
value= (value-(char*) &dflt_key_cache_var)+ (char*) dflt_key_cache;
|
||||
end= longlong10_to_str(*(longlong*) value, buff, 10);
|
||||
break;
|
||||
#ifdef HAVE_COMPRESS
|
||||
case SHOW_NET_COMPRESSION:
|
||||
end= strmov(buff, thd->net.compress ? "ON" : "OFF");
|
||||
break;
|
||||
#endif /* HAVE_COMPRESS */
|
||||
case SHOW_UNDEF: // Show never happen
|
||||
case SHOW_SYS:
|
||||
break; // Return empty string
|
||||
|
|
|
@ -185,9 +185,7 @@ enum SHOW_TYPE
|
|||
SHOW_SSL_CTX_SESS_TIMEOUTS, SHOW_SSL_CTX_SESS_CACHE_FULL,
|
||||
SHOW_SSL_GET_CIPHER_LIST,
|
||||
#endif /* HAVE_OPENSSL */
|
||||
#ifdef HAVE_COMPRESS
|
||||
SHOW_NET_COMPRESSION,
|
||||
#endif /* HAVE_COMPRESS */
|
||||
SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING, SHOW_SLAVE_RETRIED_TRANS,
|
||||
SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG, SHOW_KEY_CACHE_LONGLONG,
|
||||
SHOW_LONG_STATUS, SHOW_LONG_CONST_STATUS, SHOW_SLAVE_SKIP_ERRORS
|
||||
|
|
Loading…
Reference in a new issue