Merge from 5.1-bugteam
This commit is contained in:
commit
4d7202a02b
@ -2502,3 +2502,15 @@ a MAX(b)
|
|||||||
2 1
|
2 1
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
#
|
||||||
|
# Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) results in
|
||||||
|
# server crash
|
||||||
|
#
|
||||||
|
CREATE TABLE t (a INT, b INT, INDEX (a,b));
|
||||||
|
INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1);
|
||||||
|
INSERT INTO t SELECT * FROM t;
|
||||||
|
SELECT a, MAX(b) FROM t WHERE b GROUP BY a;
|
||||||
|
a MAX(b)
|
||||||
|
2 1
|
||||||
|
DROP TABLE t;
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
SET @odl_sync_frm = @@global.sync_frm;
|
||||||
|
SET @@global.sync_frm = OFF;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1( a INT, b INT );
|
CREATE TABLE t1( a INT, b INT );
|
||||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4);
|
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4);
|
||||||
@ -17,3 +19,4 @@ ALTER TABLE t1 ADD COLUMN a INT;
|
|||||||
# 2.2.1. normal mode
|
# 2.2.1. normal mode
|
||||||
# 2.2.2. PS mode
|
# 2.2.2. PS mode
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
SET @@global.sync_frm = @odl_sync_frm;
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
SET @odl_sync_frm = @@global.sync_frm;
|
||||||
|
SET @@global.sync_frm = OFF;
|
||||||
DROP TABLE IF EXISTS t1,t2,t3;
|
DROP TABLE IF EXISTS t1,t2,t3;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int(11) unsigned default NULL,
|
a int(11) unsigned default NULL,
|
||||||
@ -15,3 +17,4 @@ CREATE TABLE t3 SELECT * FROM t1;
|
|||||||
# normal mode
|
# normal mode
|
||||||
# PS mode
|
# PS mode
|
||||||
DROP TABLE t1, t2, t3;
|
DROP TABLE t1, t2, t3;
|
||||||
|
SET @@global.sync_frm = @odl_sync_frm;
|
||||||
|
@ -29,5 +29,5 @@ t1
|
|||||||
t2
|
t2
|
||||||
SHOW EVENTS in mysqltest;
|
SHOW EVENTS in mysqltest;
|
||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
mysqltest e @ SYSTEM ONE TIME # NULL NULL NULL NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
mysqltest e root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
DROP DATABASE IF EXISTS mysqltest;
|
DROP DATABASE IF EXISTS mysqltest;
|
||||||
|
@ -43,7 +43,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS db_bug_13684.t
|
|||||||
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
|
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
|
||||||
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
|
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
|
||||||
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
|
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
|
||||||
master-bin.000001 # Query # # use `test`; CREATE EVENT db_bug_13684.e
|
master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e
|
||||||
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
|
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
|
||||||
DO
|
DO
|
||||||
UPDATE db_bug_13684.t SET a = a + 1
|
UPDATE db_bug_13684.t SET a = a + 1
|
||||||
@ -75,7 +75,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS db_bug_13684.t
|
|||||||
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
|
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
|
||||||
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
|
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
|
||||||
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
|
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
|
||||||
master-bin.000001 # Query # # use `test`; CREATE EVENT db_bug_13684.e
|
master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e
|
||||||
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
|
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
|
||||||
DO
|
DO
|
||||||
UPDATE db_bug_13684.t SET a = a + 1
|
UPDATE db_bug_13684.t SET a = a + 1
|
||||||
|
@ -191,5 +191,47 @@ select * from t28953;
|
|||||||
END;|
|
END;|
|
||||||
ALTER EVENT event1 RENAME TO event2;
|
ALTER EVENT event1 RENAME TO event2;
|
||||||
DROP EVENT event2;
|
DROP EVENT event2;
|
||||||
|
CREATE TABLE test.t1(details CHAR(30));
|
||||||
|
CREATE EVENT /*!50000 event44331_1 */
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_1 fired - no definer');
|
||||||
|
CREATE DEFINER=CURRENT_USER /*!50000 EVENT event44331_2 */
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_2 fired - DEFINER=CURRENT_USER');
|
||||||
|
CREATE DEFINER=CURRENT_USER() EVENT event44331_3
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_3 fired - DEFINER=CURRENT_USER() function');
|
||||||
|
CREATE /*!50000 DEFINER='user44331' */ EVENT event44331_4
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_4 fired - DEFINER=user1');
|
||||||
|
Warnings:
|
||||||
|
Note 1449 The user specified as a definer ('user44331'@'%') does not exist
|
||||||
|
#on master
|
||||||
|
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
|
||||||
|
where EVENT_NAME='event44331_1' || EVENT_NAME='event44331_2' ||
|
||||||
|
EVENT_NAME='event44331_3' || EVENT_NAME='event44331_4';
|
||||||
|
EVENT_SCHEMA EVENT_NAME DEFINER
|
||||||
|
test event44331_1 root@localhost
|
||||||
|
test event44331_2 root@localhost
|
||||||
|
test event44331_3 root@localhost
|
||||||
|
test event44331_4 user44331@%
|
||||||
|
#on slave
|
||||||
|
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
|
||||||
|
where EVENT_NAME='event44331_1' || EVENT_NAME='event44331_2' ||
|
||||||
|
EVENT_NAME='event44331_3' || EVENT_NAME='event44331_4';
|
||||||
|
EVENT_SCHEMA EVENT_NAME DEFINER
|
||||||
|
test event44331_1 root@localhost
|
||||||
|
test event44331_2 root@localhost
|
||||||
|
test event44331_3 root@localhost
|
||||||
|
test event44331_4 user44331@%
|
||||||
SET @@global.event_scheduler= @old_event_scheduler;
|
SET @@global.event_scheduler= @old_event_scheduler;
|
||||||
DROP TABLE t28953;
|
DROP TABLE t28953;
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP EVENT event44331_1;
|
||||||
|
DROP EVENT event44331_2;
|
||||||
|
DROP EVENT event44331_3;
|
||||||
|
DROP EVENT event44331_4;
|
||||||
|
@ -690,7 +690,7 @@ test_rpl e1 root@localhost SYSTEM RECURRING NULL 1 # # NULL ENABLED 1 latin1 lat
|
|||||||
USE test_rpl;
|
USE test_rpl;
|
||||||
SHOW EVENTS;
|
SHOW EVENTS;
|
||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
test_rpl e1 @ SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
test_rpl e1 root@localhost SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
==========MASTER==========
|
==========MASTER==========
|
||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
@ -1078,7 +1078,7 @@ master-bin.000001 # Query 1 # use `test_rpl`; GRANT EVENT ON *.* TO 'root'@'loca
|
|||||||
master-bin.000001 # Query 1 # BEGIN
|
master-bin.000001 # Query 1 # BEGIN
|
||||||
master-bin.000001 # Query 1 # use `test_rpl`; INSERT INTO t1 VALUES(1, 'test1')
|
master-bin.000001 # Query 1 # use `test_rpl`; INSERT INTO t1 VALUES(1, 'test1')
|
||||||
master-bin.000001 # Xid 1 # #
|
master-bin.000001 # Xid 1 # #
|
||||||
master-bin.000001 # Query 1 # use `test_rpl`; CREATE EVENT e1 ON SCHEDULE EVERY '1' SECOND COMMENT 'e_second_comment' DO DELETE FROM t1
|
master-bin.000001 # Query 1 # use `test_rpl`; CREATE DEFINER=`root`@`localhost` EVENT e1 ON SCHEDULE EVERY '1' SECOND COMMENT 'e_second_comment' DO DELETE FROM t1
|
||||||
master-bin.000001 # Query 1 # use `test_rpl`; ALTER EVENT e1 RENAME TO e2
|
master-bin.000001 # Query 1 # use `test_rpl`; ALTER EVENT e1 RENAME TO e2
|
||||||
master-bin.000001 # Query 1 # use `test_rpl`; DROP EVENT e2
|
master-bin.000001 # Query 1 # use `test_rpl`; DROP EVENT e2
|
||||||
master-bin.000001 # Query 1 # BEGIN
|
master-bin.000001 # Query 1 # BEGIN
|
||||||
|
@ -46,12 +46,52 @@ connection master;
|
|||||||
|
|
||||||
DROP EVENT event2;
|
DROP EVENT event2;
|
||||||
|
|
||||||
sync_slave_with_master;
|
#
|
||||||
|
# BUG#44331
|
||||||
|
# This test verifies if the definer is consistent between master and slave,
|
||||||
|
# when the event is created without the DEFINER clause set explicitly or the
|
||||||
|
# DEFINER is set to CURRENT_USER
|
||||||
|
#
|
||||||
|
CREATE TABLE test.t1(details CHAR(30));
|
||||||
|
|
||||||
# Doing cleanup of the table referred to in the event to guarantee
|
CREATE EVENT /*!50000 event44331_1 */
|
||||||
# that there is no bad timing cauing it to try to access the table.
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_1 fired - no definer');
|
||||||
|
|
||||||
|
CREATE DEFINER=CURRENT_USER /*!50000 EVENT event44331_2 */
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_2 fired - DEFINER=CURRENT_USER');
|
||||||
|
|
||||||
|
CREATE DEFINER=CURRENT_USER() EVENT event44331_3
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_3 fired - DEFINER=CURRENT_USER() function');
|
||||||
|
|
||||||
|
CREATE /*!50000 DEFINER='user44331' */ EVENT event44331_4
|
||||||
|
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||||
|
ON COMPLETION PRESERVE DISABLE
|
||||||
|
DO INSERT INTO test.t1 VALUES('event event44331_4 fired - DEFINER=user1');
|
||||||
|
|
||||||
|
--echo #on master
|
||||||
|
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
|
||||||
|
where EVENT_NAME='event44331_1' || EVENT_NAME='event44331_2' ||
|
||||||
|
EVENT_NAME='event44331_3' || EVENT_NAME='event44331_4';
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
connection slave;
|
||||||
|
--echo #on slave
|
||||||
|
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
|
||||||
|
where EVENT_NAME='event44331_1' || EVENT_NAME='event44331_2' ||
|
||||||
|
EVENT_NAME='event44331_3' || EVENT_NAME='event44331_4';
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
SET @@global.event_scheduler= @old_event_scheduler;
|
SET @@global.event_scheduler= @old_event_scheduler;
|
||||||
DROP TABLE t28953;
|
DROP TABLE t28953;
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP EVENT event44331_1;
|
||||||
|
DROP EVENT event44331_2;
|
||||||
|
DROP EVENT event44331_3;
|
||||||
|
DROP EVENT event44331_4;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
@ -1018,3 +1018,18 @@ DROP TABLE t;
|
|||||||
|
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) results in
|
||||||
|
--echo # server crash
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t (a INT, b INT, INDEX (a,b));
|
||||||
|
INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1);
|
||||||
|
INSERT INTO t SELECT * FROM t;
|
||||||
|
|
||||||
|
SELECT a, MAX(b) FROM t WHERE b GROUP BY a;
|
||||||
|
|
||||||
|
DROP TABLE t;
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
# Save the initial number of concurrent sessions
|
# Save the initial number of concurrent sessions
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
SET @odl_sync_frm = @@global.sync_frm;
|
||||||
|
SET @@global.sync_frm = OFF;
|
||||||
|
|
||||||
connect (locker,localhost,root,,);
|
connect (locker,localhost,root,,);
|
||||||
connect (writer,localhost,root,,);
|
connect (writer,localhost,root,,);
|
||||||
|
|
||||||
@ -214,6 +217,8 @@ DROP TABLE t1;
|
|||||||
--disconnect locker
|
--disconnect locker
|
||||||
--disconnect writer
|
--disconnect writer
|
||||||
|
|
||||||
|
SET @@global.sync_frm = @odl_sync_frm;
|
||||||
|
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
|
|
||||||
# Wait till all disconnects are completed
|
# Wait till all disconnects are completed
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
# Save the initial number of concurrent sessions
|
# Save the initial number of concurrent sessions
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
SET @odl_sync_frm = @@global.sync_frm;
|
||||||
|
SET @@global.sync_frm = OFF;
|
||||||
|
|
||||||
# Test to see if select will get the lock ahead of low priority update
|
# Test to see if select will get the lock ahead of low priority update
|
||||||
|
|
||||||
connect (locker,localhost,root,,);
|
connect (locker,localhost,root,,);
|
||||||
@ -136,6 +139,8 @@ DROP TABLE t1, t2, t3;
|
|||||||
--disconnect locker
|
--disconnect locker
|
||||||
--disconnect writer
|
--disconnect writer
|
||||||
|
|
||||||
|
SET @@global.sync_frm = @odl_sync_frm;
|
||||||
|
|
||||||
# Wait till all disconnects are completed
|
# Wait till all disconnects are completed
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
@ -341,6 +341,33 @@ common_1_lev_code:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create a new query string for removing executable comments
|
||||||
|
for avoiding leak and keeping consistency of the execution
|
||||||
|
on master and slave.
|
||||||
|
|
||||||
|
@param[in] thd Thread handler
|
||||||
|
@param[in] buf Query string
|
||||||
|
|
||||||
|
@return
|
||||||
|
0 ok
|
||||||
|
1 error
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
create_query_string(THD *thd, String *buf)
|
||||||
|
{
|
||||||
|
/* Append the "CREATE" part of the query */
|
||||||
|
if (buf->append(STRING_WITH_LEN("CREATE ")))
|
||||||
|
return 1;
|
||||||
|
/* Append definer */
|
||||||
|
append_definer(thd, buf, &(thd->lex->definer->user), &(thd->lex->definer->host));
|
||||||
|
/* Append the left part of thd->query after "DEFINER" part */
|
||||||
|
if (buf->append(thd->lex->stmt_definition_begin))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Create a new event.
|
Create a new event.
|
||||||
|
|
||||||
@ -439,7 +466,16 @@ Events::create_event(THD *thd, Event_parse_data *parse_data,
|
|||||||
{
|
{
|
||||||
/* Binlog the create event. */
|
/* Binlog the create event. */
|
||||||
DBUG_ASSERT(thd->query && thd->query_length);
|
DBUG_ASSERT(thd->query && thd->query_length);
|
||||||
write_bin_log(thd, TRUE, thd->query, thd->query_length);
|
String log_query;
|
||||||
|
if (create_query_string(thd, &log_query))
|
||||||
|
{
|
||||||
|
sql_print_error("Event Error: An error occurred while creating query string, "
|
||||||
|
"before writing it into binary log.");
|
||||||
|
DBUG_RETURN(TRUE);
|
||||||
|
}
|
||||||
|
/* If the definer is not set or set to CURRENT_USER, the value of CURRENT_USER
|
||||||
|
will be written into the binary log as the definer for the SQL thread. */
|
||||||
|
write_bin_log(thd, TRUE, log_query.c_ptr(), log_query.length());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&LOCK_event_metadata);
|
pthread_mutex_unlock(&LOCK_event_metadata);
|
||||||
|
@ -9638,7 +9638,17 @@ check_group_min_max_predicates(COND *cond, Item_field *min_max_arg_item,
|
|||||||
*/
|
*/
|
||||||
if (cond_type == Item::SUBSELECT_ITEM)
|
if (cond_type == Item::SUBSELECT_ITEM)
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Condition of the form 'field' is equivalent to 'field <> 0' and thus
|
||||||
|
satisfies the SA3 condition.
|
||||||
|
*/
|
||||||
|
if (cond_type == Item::FIELD_ITEM)
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info", ("Analyzing: %s", cond->full_name()));
|
||||||
|
DBUG_RETURN(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
/* We presume that at this point there are no other Items than functions. */
|
/* We presume that at this point there are no other Items than functions. */
|
||||||
DBUG_ASSERT(cond_type == Item::FUNC_ITEM);
|
DBUG_ASSERT(cond_type == Item::FUNC_ITEM);
|
||||||
|
|
||||||
|
@ -1809,15 +1809,16 @@ server_option:
|
|||||||
;
|
;
|
||||||
|
|
||||||
event_tail:
|
event_tail:
|
||||||
EVENT_SYM opt_if_not_exists sp_name
|
remember_name EVENT_SYM opt_if_not_exists sp_name
|
||||||
{
|
{
|
||||||
THD *thd= YYTHD;
|
THD *thd= YYTHD;
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
|
|
||||||
lex->create_info.options= $2;
|
lex->stmt_definition_begin= $1;
|
||||||
|
lex->create_info.options= $3;
|
||||||
if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
|
if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
lex->event_parse_data->identifier= $3;
|
lex->event_parse_data->identifier= $4;
|
||||||
lex->event_parse_data->on_completion=
|
lex->event_parse_data->on_completion=
|
||||||
Event_parse_data::ON_COMPLETION_DROP;
|
Event_parse_data::ON_COMPLETION_DROP;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user