mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
8ec2f3d0d1
mysqld The problem was that enabling the event scheduler inside a init file caused the server to crash upon start-up. The crash occurred because the event scheduler wasn't being initialized before the commands in the init-file are processed. The solution is to initialize the event scheduler before the init file is read. The patch also disables the event scheduler during bootstrap and makes the bootstrap operation robust in the presence of background threads. mysql-test/std_data/init_file.dat: Add test case for Bug#43587 sql/event_scheduler.cc: Signal that the thread_count has been decremented. sql/events.cc: Disable the event scheduler during bootstrap. sql/mysql_priv.h: Export variable. sql/mysqld.cc: Initialize the event scheduler before commands are executed. sql/sql_parse.cc: Signal that the bootstrap thread is done.
45 lines
1.3 KiB
Text
45 lines
1.3 KiB
Text
select * from mysql.user as t1, mysql.user as t2, mysql.user as t3;
|
|
use test;
|
|
|
|
drop table if exists t1;
|
|
create table t1 (x int);
|
|
drop table if exists t2;
|
|
create table t2 (y int);
|
|
|
|
drop procedure if exists p1;
|
|
create definer=root@localhost procedure p1() select * from t1;
|
|
call p1();
|
|
drop procedure p1;
|
|
|
|
create definer=root@localhost procedure p1() insert into t1 values (3),(5),(7);
|
|
call p1();
|
|
|
|
drop function if exists f1;
|
|
create definer=root@localhost function f1() returns int return (select count(*) from t1);
|
|
insert into t2 set y = f1()*10;
|
|
|
|
drop view if exists v1;
|
|
create definer=root@localhost view v1 as select f1();
|
|
insert into t2 (y) select * from v1;
|
|
|
|
create trigger trg1 after insert on t2 for each row insert into t1 values (new.y);
|
|
insert into t2 values (11), (13);
|
|
drop procedure p1;
|
|
drop function f1;
|
|
drop view v1;
|
|
|
|
#
|
|
# Bug#23240 --init-file statements with NOW() reports '1970-01-01 11:00:00'as the date time
|
|
#
|
|
CREATE DATABASE IF NOT EXISTS init_file;
|
|
CREATE TABLE IF NOT EXISTS init_file.startup ( startdate DATETIME );
|
|
INSERT INTO init_file.startup VALUES ( NOW() );
|
|
|
|
#
|
|
# Bug#43587 "Putting event_scheduler=1 in init SQL file crashes mysqld"
|
|
#
|
|
|
|
SET GLOBAL event_scheduler = 'ON';
|
|
CREATE EVENT ev1 ON SCHEDULE EVERY 1 DAY DISABLE DO SELECT 1;
|
|
DROP EVENT ev1;
|
|
SET GLOBAL event_scheduler = 'OFF';
|