AnonSec Shell
Server IP : 185.86.78.101  /  Your IP : 216.73.216.124
Web Server : Apache
System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /www/server/mysql/mysql-test/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /www/server/mysql/mysql-test/t/lock_multi_bug38499.test
# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

# Bug38499 flush tables and multitable table update with derived table cause crash
# MySQL >= 5.0
#

# Save the initial number of concurrent sessions
--source include/count_sessions.inc

SET @odl_sync_frm = @@global.sync_frm;
SET @@global.sync_frm = OFF;

connect (locker,localhost,root,,);
connect (writer,localhost,root,,);

--connection default
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1( a INT, b INT );
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4);

--echo # 1. test regular tables
--echo # 1.1. test altering of columns that multiupdate doesn't use
--echo # 1.1.1. normal mode

--disable_query_log
let $i = 100;
while ($i) {
--dec $i

--connection writer
  send UPDATE t1, (SELECT DISTINCT b FROM t1 t1i) d SET a = 0 WHERE 1=0;

--connection locker
  ALTER TABLE t1 ADD COLUMN (c INT);
  ALTER TABLE t1 DROP COLUMN c;

--connection writer
--reap
}

--echo # 1.1.2. PS mode

--connection writer
PREPARE stmt FROM
'UPDATE t1, (SELECT DISTINCT b FROM t1 t1i) d SET a = 0 WHERE 1=0';

let $i = 100;
while ($i) {
--dec $i

--connection writer
--send EXECUTE stmt

--connection locker
  ALTER TABLE t1 ADD COLUMN (c INT);
  ALTER TABLE t1 DROP COLUMN c;

--connection writer
--reap
}
--enable_query_log

--echo # 1.2. test altering of columns that multiupdate uses
--echo # 1.2.1. normal mode

--connection default

--disable_query_log
let $i = 100;
while ($i) {
  dec $i;

--connection locker
--error 0,ER_DUP_FIELDNAME
  ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL;
  UPDATE t1 SET a=b;

--connection writer
--send UPDATE t1, (SELECT DISTINCT b FROM t1 t1i) d SET a = 0 WHERE 1=0;

--connection locker
--error 0,ER_CANT_DROP_FIELD_OR_KEY
  ALTER TABLE t1 DROP COLUMN a;

--connection writer
--error 0,ER_BAD_FIELD_ERROR # unknown column error
--reap
}
--enable_query_log

--echo # 1.2.2. PS mode

--disable_query_log
let $i = 100;
while ($i) {
  dec $i;

--connection locker
--error 0,ER_DUP_FIELDNAME
  ALTER TABLE t1 ADD COLUMN a INT;
  UPDATE t1 SET a=b;

--connection writer
  PREPARE stmt FROM
'UPDATE t1, (SELECT DISTINCT b FROM t1 t1i) d SET a = 0 WHERE 1=0';
--send EXECUTE stmt

--connection locker
--error 0,ER_CANT_DROP_FIELD_OR_KEY
  ALTER TABLE t1 DROP COLUMN a;

--connection writer
--error 0,ER_BAD_FIELD_ERROR # Unknown column 'a' in 'field list'
--reap
}
--enable_query_log
--connection default
ALTER TABLE t1 ADD COLUMN a INT;

--echo # 2. test UNIONs
--echo # 2.1. test altering of columns that multiupdate doesn't use
--echo # 2.1.1. normal mode

--disable_query_log
let $i = 100;
while ($i) {
--dec $i

--connection writer
  send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0;

--connection locker
  ALTER TABLE t1 ADD COLUMN (c INT);
  ALTER TABLE t1 DROP COLUMN c;

--connection writer
--reap
}

--echo # 2.1.2. PS mode

--connection writer
PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0';

let $i = 100;
while ($i) {
--dec $i

--connection writer
--send EXECUTE stmt

--connection locker
  ALTER TABLE t1 ADD COLUMN (c INT);
  ALTER TABLE t1 DROP COLUMN c;

--connection writer
--reap
}
--enable_query_log

--echo # 2.2. test altering of columns that multiupdate uses
--echo # 2.2.1. normal mode

--connection default

--disable_query_log
let $i = 100;
while ($i) {
  dec $i;

--connection locker
--error 0,ER_DUP_FIELDNAME
  ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL;
  UPDATE t1 SET a=b;

--connection writer
--send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0;

--connection locker
--error 0,ER_CANT_DROP_FIELD_OR_KEY
  ALTER TABLE t1 DROP COLUMN a;

--connection writer
--error 0,ER_BAD_FIELD_ERROR # Unknown column 'a' in 'field list'
--reap
}
--enable_query_log

--echo # 2.2.2. PS mode

--disable_query_log
let $i = 100;
while ($i) {
  dec $i;

--connection locker
--error 0,ER_DUP_FIELDNAME
  ALTER TABLE t1 ADD COLUMN a INT;
  UPDATE t1 SET a=b;

--connection writer
  PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0';
--send EXECUTE stmt

--connection locker
--error 0,ER_CANT_DROP_FIELD_OR_KEY
  ALTER TABLE t1 DROP COLUMN a;

--connection writer
--error 0,ER_BAD_FIELD_ERROR # Unknown column 'a' in 'field list'
--reap
}
--enable_query_log
--connection default
DROP TABLE t1;


# Close connections
--disconnect locker
--disconnect writer

SET @@global.sync_frm = @odl_sync_frm;

# End of 5.0 tests

# Wait till all disconnects are completed
--source include/wait_until_count_sessions.inc


Anon7 - 2022
AnonSec Team