139 lines
2.7 KiB
Plaintext
139 lines
2.7 KiB
Plaintext
|
|
## Test galaxy parallel session management behavior
|
|
|
|
--source include/xplugin_preamble.inc
|
|
--source include/xplugin_create_user.inc
|
|
## Test starts here
|
|
--write_file $MYSQL_TMP_DIR/galaxy_parallel_simple.tmp
|
|
## Test data
|
|
-->sql
|
|
|
|
## give access of galaxy session.
|
|
CREATE USER 'x_root'@'galaxy' IDENTIFIED WITH 'mysql_native_password';
|
|
GRANT ALL ON *.*TO 'x_root'@'galaxy' WITH GRANT OPTION;
|
|
FLUSH PRIVILEGES;
|
|
|
|
## disable the kill log
|
|
set global galaxyx_enable_galaxy_kill_log = OFF;
|
|
|
|
drop schema if exists xtest;
|
|
create schema xtest;
|
|
use xtest;
|
|
create table mytable (pk int primary key auto_increment, data varchar(100));
|
|
delimiter //
|
|
create procedure result_and_error ()
|
|
begin
|
|
select 1;
|
|
select * from invalid_table;
|
|
end//
|
|
-->endsql
|
|
|
|
|
|
## switch GSession ID to 2(1 is default session)
|
|
-->switchsid 2
|
|
|
|
## first start new session
|
|
Mysqlx.Session.NewSession {
|
|
}
|
|
## expect Mysqlx.Ok
|
|
-->recv
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "insert into mytable values (DEFAULT, \'one\')"
|
|
db_name: "xtest"
|
|
}
|
|
## expect Mysqlx.Sql.StmtExecuteOk
|
|
-->recvresult
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "insert into mytable values (DEFAULT, \'two\')"
|
|
}
|
|
## expect Mysqlx.Sql.StmtExecuteOk
|
|
-->recvresult
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "insert into mytable values (DEFAULT, \'three\')"
|
|
}
|
|
## expect Mysqlx.Sql.StmtExecuteOk
|
|
-->recvresult
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "select * from mytable"
|
|
db_name: "xtest"
|
|
token: 10000
|
|
}
|
|
## expect Mysqlx.Sql.StmtExecuteOk
|
|
-->recvresult
|
|
|
|
|
|
## switch to another session and check behavior
|
|
-->switchsid 3
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "select * from mytable"
|
|
db_name: "xtest"
|
|
token: 10000
|
|
}
|
|
## expect unknown session
|
|
-->recverror ER_XPLUGIN_ERROR_MSG
|
|
|
|
Mysqlx.Session.NewSession {
|
|
}
|
|
## expect Mysqlx.Ok
|
|
-->recv
|
|
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "select * from mytable"
|
|
db_name: "xtest"
|
|
token: 10000
|
|
}
|
|
## expect Mysqlx.Sql.StmtExecuteOk
|
|
-->recvresult
|
|
|
|
## Try kill not exists.
|
|
Mysqlx.Session.KillSession {
|
|
type: CONNECTION
|
|
x_session_id: 4
|
|
}
|
|
-->recverror ER_XPLUGIN_ERROR_MSG
|
|
|
|
## finish session
|
|
Mysqlx.Session.Close {
|
|
}
|
|
## expect Mysqlx.Ok
|
|
-->recv
|
|
|
|
## Then enqueue normal query.
|
|
Mysqlx.Sql.GalaxyStmtExecute {
|
|
stmt: "select * from mytable"
|
|
token: 10000
|
|
}
|
|
-->recverror ER_XPLUGIN_ERROR_MSG
|
|
|
|
|
|
## Close session 2.
|
|
-->switchsid 2
|
|
|
|
Mysqlx.Session.Close {
|
|
}
|
|
## expect Mysqlx.Ok
|
|
-->recv
|
|
|
|
## switch back to default session.
|
|
-->switchsid 1
|
|
|
|
## Cleanup
|
|
-->sql
|
|
set global galaxyx_enable_galaxy_kill_log = ON;
|
|
drop schema if exists xtest;
|
|
DROP USER 'x_root'@'galaxy';
|
|
FLUSH PRIVILEGES;
|
|
-->endsql
|
|
EOF
|
|
|
|
--exec $GALAXYXTEST -ux_root --password='' --file=$MYSQL_TMP_DIR/galaxy_parallel_simple.tmp 2>&1
|
|
|
|
## Cleanup
|
|
--remove_file $MYSQL_TMP_DIR/galaxy_parallel_simple.tmp
|
|
--source include/xplugin_drop_user.inc
|