Loading mysql-test/lib/mtr_process.pl +20 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ sub mtr_record_dead_children (); sub mtr_exit ($); sub sleep_until_file_created ($$$); sub mtr_kill_processes ($); sub mtr_kill_process ($$$$); # static in C sub spawn_impl ($$$$$$$$); Loading Loading @@ -875,6 +876,25 @@ sub mtr_kill_processes ($) { } } sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $timeout= shift; while (1) { kill($signal, $pid); last unless kill (0, $pid) and $retries--; mtr_debug("Sleep $timeout second waiting for processes to die"); sleep($timeout); } } ############################################################################## # # When we exit, we kill off all children Loading mysql-test/mysql-test-run.pl +73 −13 Original line number Diff line number Diff line Loading @@ -929,6 +929,7 @@ sub command_line_setup () { path_err => "$opt_vardir/log/im.err", path_log => "$opt_vardir/log/im.log", path_pid => "$opt_vardir/run/im.pid", path_angel_pid => "$opt_vardir/run/im.angel.pid", path_sock => "$sockdir/im.sock", port => $im_port, start_timeout => $master->[0]->{'start_timeout'}, Loading Loading @@ -1220,6 +1221,7 @@ sub environment_setup () { $ENV{'NDB_STATUS_OK'}= "YES"; $ENV{'IM_PATH_PID'}= $instance_manager->{path_pid}; $ENV{'IM_PATH_ANGEL_PID'}= $instance_manager->{path_angel_pid}; $ENV{'IM_PORT'}= $instance_manager->{port}; $ENV{'IM_MYSQLD1_SOCK'}= $instance_manager->{instances}->[0]->{path_sock}; Loading Loading @@ -1999,6 +2001,7 @@ sub im_create_defaults_file($) { [manager] pid-file = $instance_manager->{path_pid} angel-pid-file = $instance_manager->{path_angel_pid} socket = $instance_manager->{path_sock} port = $instance_manager->{port} password-file = $instance_manager->{password_file} Loading Loading @@ -3061,6 +3064,18 @@ sub im_start($$) { sub im_stop($) { my $instance_manager = shift; # Obtain mysqld-process pids before we start stopping IM (it can delete pid # files). my @mysqld_pids = (); my $instances = $instance_manager->{'instances'}; push(@mysqld_pids, mtr_get_pid_from_file($instances->[0]->{'path_pid'})) if -r $instances->[0]->{'path_pid'}; push(@mysqld_pids, mtr_get_pid_from_file($instances->[1]->{'path_pid'})) if -r $instances->[1]->{'path_pid'}; # Re-read pid from the file, since during tests Instance Manager could have # been restarted, so its pid could have been changed. Loading @@ -3068,34 +3083,79 @@ sub im_stop($) { mtr_get_pid_from_file($instance_manager->{'path_pid'}) if -f $instance_manager->{'path_pid'}; if (-f $instance_manager->{'path_angel_pid'}) { $instance_manager->{'angel_pid'} = mtr_get_pid_from_file($instance_manager->{'path_angel_pid'}) } else { $instance_manager->{'angel_pid'} = undef; } # Inspired from mtr_stop_mysqld_servers(). start_reap_all(); # Create list of pids. We should stop Instance Manager and all started # mysqld-instances. Some of them may be nonguarded, so IM will not stop them # on shutdown. # Try graceful shutdown. my @pids = ( $instance_manager->{'pid'} ); my $instances = $instance_manager->{'instances'}; mtr_kill_process($instance_manager->{'pid'}, 'TERM', 10, 1); if ( -r $instances->[0]->{'path_pid'} ) # Check that all processes died. my $clean_shutdown= 0; while (1) { push(@pids, mtr_get_pid_from_file($instances->[0]->{'path_pid'})); } last if kill (0, $instance_manager->{'pid'}); if ( -r $instances->[1]->{'path_pid'} ) last if (defined $instance_manager->{'angel_pid'}) && kill (0, $instance_manager->{'angel_pid'}); foreach my $pid (@mysqld_pids) { push(@pids, mtr_get_pid_from_file($instances->[1]->{'path_pid'})); last if kill (0, $pid); } $clean_shutdown= 1; last; } # Kill processes. # Kill leftovers (the order is important). unless ($clean_shutdown) { mtr_kill_process($instance_manager->{'angel_pid'}, 'KILL', 10, 1) if defined $instance_manager->{'angel_pid'}; mtr_kill_process($instance_manager->{'pid'}, 'KILL', 10, 1); # Shutdown managed mysqld-processes. Some of them may be nonguarded, so IM # will not stop them on shutdown. So, we should firstly try to end them # legally. mtr_kill_processes(\@mysqld_pids); # Complain in error log so that a warning will be shown. my $errlog= "$opt_vardir/log/mysql-test-run.pl.err"; open (ERRLOG, ">>$errlog") || mtr_error("Can not open error log ($errlog)"); my $ts= localtime(); print ERRLOG "Warning: [$ts] Instance Manager did not shutdown gracefully.\n"; close ERRLOG; } mtr_kill_processes(\@pids); # That's all. stop_reap_all(); $instance_manager->{'pid'} = undef; $instance_manager->{'angel_pid'} = undef; } Loading mysql-test/r/explain.result +4 −0 Original line number Diff line number Diff line Loading @@ -53,3 +53,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ref 0,01 0 5 const 1 Using where; Using index drop table ; set names latin1; select 3 into @v1; explain select 3 into @v1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used mysql-test/r/sp-error.result +2 −2 Original line number Diff line number Diff line Loading @@ -282,9 +282,9 @@ select @tmp_x, @tmp_y, @tmp_z| @tmp_x @tmp_y @tmp_z 42 45 87 call p(42, 43, @tmp_z)| ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger call p(42, @tmp_y, 43)| ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger drop procedure p| create procedure p() begin end| lock table t1 read| Loading mysql-test/r/sp.result +56 −0 Original line number Diff line number Diff line Loading @@ -4914,4 +4914,60 @@ schema_name select routine_name,routine_schema from information_schema.routines where routine_schema like 'bug18344%'| routine_name routine_schema drop function if exists bug12472| create function bug12472() returns int return (select count(*) from t1)| create table t3 as select bug12472() as i| show create table t3| Table Create Table t3 CREATE TABLE `t3` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t3| i 0 drop table t3| create view v1 as select bug12472() as j| create table t3 as select * from v1| show create table t3| Table Create Table t3 CREATE TABLE `t3` ( `j` bigint(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t3| j 0 drop table t3| drop view v1| drop function bug12472| DROP FUNCTION IF EXISTS bug18589_f1| DROP PROCEDURE IF EXISTS bug18589_p1| DROP PROCEDURE IF EXISTS bug18589_p2| CREATE FUNCTION bug18589_f1(arg TEXT) RETURNS TEXT BEGIN RETURN CONCAT(arg, ""); END| CREATE PROCEDURE bug18589_p1(arg TEXT, OUT ret TEXT) BEGIN SET ret = CONCAT(arg, ""); END| CREATE PROCEDURE bug18589_p2(arg TEXT) BEGIN DECLARE v TEXT; CALL bug18589_p1(arg, v); SELECT v; END| SELECT bug18589_f1(REPEAT("a", 767))| bug18589_f1(REPEAT("a", 767)) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa SET @bug18589_v1 = ""| CALL bug18589_p1(REPEAT("a", 767), @bug18589_v1)| SELECT @bug18589_v1| @bug18589_v1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa CALL bug18589_p2(REPEAT("a", 767))| v aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa DROP FUNCTION bug18589_f1| DROP PROCEDURE bug18589_p1| DROP PROCEDURE bug18589_p2| drop table t1,t2; Loading
mysql-test/lib/mtr_process.pl +20 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ sub mtr_record_dead_children (); sub mtr_exit ($); sub sleep_until_file_created ($$$); sub mtr_kill_processes ($); sub mtr_kill_process ($$$$); # static in C sub spawn_impl ($$$$$$$$); Loading Loading @@ -875,6 +876,25 @@ sub mtr_kill_processes ($) { } } sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $timeout= shift; while (1) { kill($signal, $pid); last unless kill (0, $pid) and $retries--; mtr_debug("Sleep $timeout second waiting for processes to die"); sleep($timeout); } } ############################################################################## # # When we exit, we kill off all children Loading
mysql-test/mysql-test-run.pl +73 −13 Original line number Diff line number Diff line Loading @@ -929,6 +929,7 @@ sub command_line_setup () { path_err => "$opt_vardir/log/im.err", path_log => "$opt_vardir/log/im.log", path_pid => "$opt_vardir/run/im.pid", path_angel_pid => "$opt_vardir/run/im.angel.pid", path_sock => "$sockdir/im.sock", port => $im_port, start_timeout => $master->[0]->{'start_timeout'}, Loading Loading @@ -1220,6 +1221,7 @@ sub environment_setup () { $ENV{'NDB_STATUS_OK'}= "YES"; $ENV{'IM_PATH_PID'}= $instance_manager->{path_pid}; $ENV{'IM_PATH_ANGEL_PID'}= $instance_manager->{path_angel_pid}; $ENV{'IM_PORT'}= $instance_manager->{port}; $ENV{'IM_MYSQLD1_SOCK'}= $instance_manager->{instances}->[0]->{path_sock}; Loading Loading @@ -1999,6 +2001,7 @@ sub im_create_defaults_file($) { [manager] pid-file = $instance_manager->{path_pid} angel-pid-file = $instance_manager->{path_angel_pid} socket = $instance_manager->{path_sock} port = $instance_manager->{port} password-file = $instance_manager->{password_file} Loading Loading @@ -3061,6 +3064,18 @@ sub im_start($$) { sub im_stop($) { my $instance_manager = shift; # Obtain mysqld-process pids before we start stopping IM (it can delete pid # files). my @mysqld_pids = (); my $instances = $instance_manager->{'instances'}; push(@mysqld_pids, mtr_get_pid_from_file($instances->[0]->{'path_pid'})) if -r $instances->[0]->{'path_pid'}; push(@mysqld_pids, mtr_get_pid_from_file($instances->[1]->{'path_pid'})) if -r $instances->[1]->{'path_pid'}; # Re-read pid from the file, since during tests Instance Manager could have # been restarted, so its pid could have been changed. Loading @@ -3068,34 +3083,79 @@ sub im_stop($) { mtr_get_pid_from_file($instance_manager->{'path_pid'}) if -f $instance_manager->{'path_pid'}; if (-f $instance_manager->{'path_angel_pid'}) { $instance_manager->{'angel_pid'} = mtr_get_pid_from_file($instance_manager->{'path_angel_pid'}) } else { $instance_manager->{'angel_pid'} = undef; } # Inspired from mtr_stop_mysqld_servers(). start_reap_all(); # Create list of pids. We should stop Instance Manager and all started # mysqld-instances. Some of them may be nonguarded, so IM will not stop them # on shutdown. # Try graceful shutdown. my @pids = ( $instance_manager->{'pid'} ); my $instances = $instance_manager->{'instances'}; mtr_kill_process($instance_manager->{'pid'}, 'TERM', 10, 1); if ( -r $instances->[0]->{'path_pid'} ) # Check that all processes died. my $clean_shutdown= 0; while (1) { push(@pids, mtr_get_pid_from_file($instances->[0]->{'path_pid'})); } last if kill (0, $instance_manager->{'pid'}); if ( -r $instances->[1]->{'path_pid'} ) last if (defined $instance_manager->{'angel_pid'}) && kill (0, $instance_manager->{'angel_pid'}); foreach my $pid (@mysqld_pids) { push(@pids, mtr_get_pid_from_file($instances->[1]->{'path_pid'})); last if kill (0, $pid); } $clean_shutdown= 1; last; } # Kill processes. # Kill leftovers (the order is important). unless ($clean_shutdown) { mtr_kill_process($instance_manager->{'angel_pid'}, 'KILL', 10, 1) if defined $instance_manager->{'angel_pid'}; mtr_kill_process($instance_manager->{'pid'}, 'KILL', 10, 1); # Shutdown managed mysqld-processes. Some of them may be nonguarded, so IM # will not stop them on shutdown. So, we should firstly try to end them # legally. mtr_kill_processes(\@mysqld_pids); # Complain in error log so that a warning will be shown. my $errlog= "$opt_vardir/log/mysql-test-run.pl.err"; open (ERRLOG, ">>$errlog") || mtr_error("Can not open error log ($errlog)"); my $ts= localtime(); print ERRLOG "Warning: [$ts] Instance Manager did not shutdown gracefully.\n"; close ERRLOG; } mtr_kill_processes(\@pids); # That's all. stop_reap_all(); $instance_manager->{'pid'} = undef; $instance_manager->{'angel_pid'} = undef; } Loading
mysql-test/r/explain.result +4 −0 Original line number Diff line number Diff line Loading @@ -53,3 +53,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ref 0,01 0 5 const 1 Using where; Using index drop table ; set names latin1; select 3 into @v1; explain select 3 into @v1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
mysql-test/r/sp-error.result +2 −2 Original line number Diff line number Diff line Loading @@ -282,9 +282,9 @@ select @tmp_x, @tmp_y, @tmp_z| @tmp_x @tmp_y @tmp_z 42 45 87 call p(42, 43, @tmp_z)| ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger call p(42, @tmp_y, 43)| ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger drop procedure p| create procedure p() begin end| lock table t1 read| Loading
mysql-test/r/sp.result +56 −0 Original line number Diff line number Diff line Loading @@ -4914,4 +4914,60 @@ schema_name select routine_name,routine_schema from information_schema.routines where routine_schema like 'bug18344%'| routine_name routine_schema drop function if exists bug12472| create function bug12472() returns int return (select count(*) from t1)| create table t3 as select bug12472() as i| show create table t3| Table Create Table t3 CREATE TABLE `t3` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t3| i 0 drop table t3| create view v1 as select bug12472() as j| create table t3 as select * from v1| show create table t3| Table Create Table t3 CREATE TABLE `t3` ( `j` bigint(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t3| j 0 drop table t3| drop view v1| drop function bug12472| DROP FUNCTION IF EXISTS bug18589_f1| DROP PROCEDURE IF EXISTS bug18589_p1| DROP PROCEDURE IF EXISTS bug18589_p2| CREATE FUNCTION bug18589_f1(arg TEXT) RETURNS TEXT BEGIN RETURN CONCAT(arg, ""); END| CREATE PROCEDURE bug18589_p1(arg TEXT, OUT ret TEXT) BEGIN SET ret = CONCAT(arg, ""); END| CREATE PROCEDURE bug18589_p2(arg TEXT) BEGIN DECLARE v TEXT; CALL bug18589_p1(arg, v); SELECT v; END| SELECT bug18589_f1(REPEAT("a", 767))| bug18589_f1(REPEAT("a", 767)) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa SET @bug18589_v1 = ""| CALL bug18589_p1(REPEAT("a", 767), @bug18589_v1)| SELECT @bug18589_v1| @bug18589_v1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa CALL bug18589_p2(REPEAT("a", 767))| v aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa DROP FUNCTION bug18589_f1| DROP PROCEDURE bug18589_p1| DROP PROCEDURE bug18589_p2| drop table t1,t2;