Commit 06d943f1 authored by kostja@bodhi.local's avatar kostja@bodhi.local

Post-merge fixes.

parent 2fecf795
...@@ -5470,5 +5470,161 @@ CAD ...@@ -5470,5 +5470,161 @@ CAD
CHF CHF
DROP FUNCTION bug21493| DROP FUNCTION bug21493|
DROP TABLE t3,t4| DROP TABLE t3,t4|
drop function if exists func_20028_a|
drop function if exists func_20028_b|
drop function if exists func_20028_c|
drop procedure if exists proc_20028_a|
drop procedure if exists proc_20028_b|
drop procedure if exists proc_20028_c|
drop table if exists table_20028|
create table table_20028 (i int)|
SET @save_sql_mode=@@sql_mode|
SET sql_mode=''|
create function func_20028_a() returns integer
begin
declare temp integer;
select i into temp from table_20028 limit 1;
return ifnull(temp, 0);
end|
create function func_20028_b() returns integer
begin
return func_20028_a();
end|
create function func_20028_c() returns integer
begin
declare div_zero integer;
set SQL_MODE='TRADITIONAL';
select 1/0 into div_zero;
return div_zero;
end|
create procedure proc_20028_a()
begin
declare temp integer;
select i into temp from table_20028 limit 1;
end|
create procedure proc_20028_b()
begin
call proc_20028_a();
end|
create procedure proc_20028_c()
begin
declare div_zero integer;
set SQL_MODE='TRADITIONAL';
select 1/0 into div_zero;
end|
select func_20028_a()|
func_20028_a()
0
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
select func_20028_b()|
func_20028_b()
0
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
select func_20028_c()|
ERROR 22012: Division by 0
call proc_20028_a()|
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
call proc_20028_b()|
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
call proc_20028_c()|
ERROR 22012: Division by 0
SET sql_mode='TRADITIONAL'|
drop function func_20028_a|
drop function func_20028_b|
drop function func_20028_c|
drop procedure proc_20028_a|
drop procedure proc_20028_b|
drop procedure proc_20028_c|
create function func_20028_a() returns integer
begin
declare temp integer;
select i into temp from table_20028 limit 1;
return ifnull(temp, 0);
end|
create function func_20028_b() returns integer
begin
return func_20028_a();
end|
create function func_20028_c() returns integer
begin
declare div_zero integer;
set SQL_MODE='';
select 1/0 into div_zero;
return div_zero;
end|
create procedure proc_20028_a()
begin
declare temp integer;
select i into temp from table_20028 limit 1;
end|
create procedure proc_20028_b()
begin
call proc_20028_a();
end|
create procedure proc_20028_c()
begin
declare div_zero integer;
set SQL_MODE='';
select 1/0 into div_zero;
end|
select func_20028_a()|
func_20028_a()
0
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
select func_20028_b()|
func_20028_b()
0
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
select func_20028_c()|
func_20028_c()
NULL
call proc_20028_a()|
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
call proc_20028_b()|
Warnings:
Warning 1329 No data - zero rows fetched, selected, or processed
call proc_20028_c()|
SET @@sql_mode=@save_sql_mode|
drop function func_20028_a|
drop function func_20028_b|
drop function func_20028_c|
drop procedure proc_20028_a|
drop procedure proc_20028_b|
drop procedure proc_20028_c|
drop table table_20028|
drop procedure if exists proc_21462_a|
drop procedure if exists proc_21462_b|
create procedure proc_21462_a()
begin
select "Called A";
end|
create procedure proc_21462_b(x int)
begin
select "Called B";
end|
call proc_21462_a|
Called A
Called A
call proc_21462_a()|
Called A
Called A
call proc_21462_a(1)|
ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_a; expected 0, got 1
call proc_21462_b|
ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_b; expected 1, got 0
call proc_21462_b()|
ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_b; expected 1, got 0
call proc_21462_b(1)|
Called B
Called B
drop procedure proc_21462_a|
drop procedure proc_21462_b|
End of 5.0 tests End of 5.0 tests
drop table t1,t2; drop table t1,t2;
...@@ -2968,6 +2968,8 @@ INSERT INTO t1 VALUES (1); ...@@ -2968,6 +2968,8 @@ INSERT INTO t1 VALUES (1);
CREATE FUNCTION f1() RETURNS INT RETURN (SELECT * FROM v1); CREATE FUNCTION f1() RETURNS INT RETURN (SELECT * FROM v1);
UPDATE t1 SET i= f1(); UPDATE t1 SET i= f1();
DROP FUNCTION f1; DROP FUNCTION f1;
DROP VIEW v1;
DROP TABLE t1;
CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL); CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL);
CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION; CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION;
INSERT INTO v1 (val) VALUES (2); INSERT INTO v1 (val) VALUES (2);
......
...@@ -158,7 +158,7 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -158,7 +158,7 @@ void Guardian_thread::process_instance(Instance *instance,
{ {
/* clear status fields */ /* clear status fields */
log_info("guardian: instance '%s' is running, set state to STARTED.", log_info("guardian: instance '%s' is running, set state to STARTED.",
(const char *) instance->options.instance_name); (const char *) instance->options.instance_name.str);
current_node->restart_counter= 0; current_node->restart_counter= 0;
current_node->crash_moment= 0; current_node->crash_moment= 0;
current_node->state= STARTED; current_node->state= STARTED;
...@@ -169,7 +169,7 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -169,7 +169,7 @@ void Guardian_thread::process_instance(Instance *instance,
switch (current_node->state) { switch (current_node->state) {
case NOT_STARTED: case NOT_STARTED:
log_info("guardian: starting instance '%s'...", log_info("guardian: starting instance '%s'...",
(const char *) instance->options.instance_name); (const char *) instance->options.instance_name.str);
/* NOTE, set state to STARTING _before_ start() is called */ /* NOTE, set state to STARTING _before_ start() is called */
current_node->state= STARTING; current_node->state= STARTING;
...@@ -194,7 +194,7 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -194,7 +194,7 @@ void Guardian_thread::process_instance(Instance *instance,
{ {
instance->start(); instance->start();
log_info("guardian: starting instance '%s'...", log_info("guardian: starting instance '%s'...",
(const char *) instance->options.instance_name); (const char *) instance->options.instance_name.str);
} }
} }
else else
...@@ -212,13 +212,13 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -212,13 +212,13 @@ void Guardian_thread::process_instance(Instance *instance,
current_node->last_checked= current_time; current_node->last_checked= current_time;
current_node->restart_counter++; current_node->restart_counter++;
log_info("guardian: restarting instance '%s'...", log_info("guardian: restarting instance '%s'...",
(const char *) instance->options.instance_name); (const char *) instance->options.instance_name.str);
} }
} }
else else
{ {
log_info("guardian: cannot start instance %s. Abandoning attempts " log_info("guardian: cannot start instance %s. Abandoning attempts "
"to (re)start it", instance->options.instance_name); "to (re)start it", instance->options.instance_name.str);
current_node->state= CRASHED_AND_ABANDONED; current_node->state= CRASHED_AND_ABANDONED;
} }
} }
......
...@@ -166,7 +166,7 @@ static int start_process(Instance_options *instance_options, ...@@ -166,7 +166,7 @@ static int start_process(Instance_options *instance_options,
exit(1); exit(1);
case -1: case -1:
log_info("cannot create a new process to start instance '%s'.", log_info("cannot create a new process to start instance '%s'.",
(const char *) instance_options->instance_name); (const char *) instance_options->instance_name.str);
return 1; return 1;
} }
return 0; return 0;
...@@ -312,9 +312,9 @@ void Instance::remove_pid() ...@@ -312,9 +312,9 @@ void Instance::remove_pid()
int pid; int pid;
if ((pid= options.get_pid()) != 0) /* check the pidfile */ if ((pid= options.get_pid()) != 0) /* check the pidfile */
if (options.unlink_pidfile()) /* remove stalled pidfile */ if (options.unlink_pidfile()) /* remove stalled pidfile */
log_error("cannot remove pidfile for instance '%s', this might be \ log_error("cannot remove pidfile for instance '%s', this might be "
since IM lacks permmissions or hasn't found the pidifle", "since IM lacks permmissions or hasn't found the pidifle",
(const char *) options.instance_name); (const char *) options.instance_name.str);
} }
...@@ -620,7 +620,7 @@ void Instance::kill_instance(int signum) ...@@ -620,7 +620,7 @@ void Instance::kill_instance(int signum)
log_error("The instance '%s' is being stopped forcibly. Normally" log_error("The instance '%s' is being stopped forcibly. Normally"
"it should not happen. Probably the instance has been" "it should not happen. Probably the instance has been"
"hanging. You should also check your IM setup", "hanging. You should also check your IM setup",
(const char *) options.instance_name); (const char *) options.instance_name.str);
/* After sucessful hard kill the pidfile need to be removed */ /* After sucessful hard kill the pidfile need to be removed */
options.unlink_pidfile(); options.unlink_pidfile();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment