Loading mysql-test/r/trigger.result +13 −0 Original line number Diff line number Diff line Loading @@ -952,3 +952,16 @@ load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); drop table t1; drop function f1; drop function f2; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( conn_id INT, trigger_conn_id INT ); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.trigger_conn_id = CONNECTION_ID(); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); SELECT * FROM t1 WHERE conn_id != trigger_conn_id; conn_id trigger_conn_id DROP TRIGGER t1_bi; DROP TABLE t1; mysql-test/t/trigger.test +28 −0 Original line number Diff line number Diff line Loading @@ -1114,3 +1114,31 @@ load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); drop table t1; drop function f1; drop function f2; # # Test for Bug #16461 connection_id() does not work properly inside trigger # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 ( conn_id INT, trigger_conn_id INT ); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.trigger_conn_id = CONNECTION_ID(); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); connect (con1,localhost,root,,); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); connection default; disconnect con1; SELECT * FROM t1 WHERE conn_id != trigger_conn_id; DROP TRIGGER t1_bi; DROP TABLE t1; # End of 5.0 tests sql/item.cc +0 −16 Original line number Diff line number Diff line Loading @@ -644,22 +644,6 @@ Item *Item_num::safe_charset_converter(CHARSET_INFO *tocs) } Item *Item_static_int_func::safe_charset_converter(CHARSET_INFO *tocs) { Item_string *conv; char buf[64]; String *s, tmp(buf, sizeof(buf), &my_charset_bin); s= val_str(&tmp); if ((conv= new Item_static_string_func(func_name, s->ptr(), s->length(), s->charset()))) { conv->str_value.copy(); conv->str_value.mark_as_const(); } return conv; } Item *Item_static_float_func::safe_charset_converter(CHARSET_INFO *tocs) { Item_string *conv; Loading sql/item.h +0 −12 Original line number Diff line number Diff line Loading @@ -1387,18 +1387,6 @@ class Item_int :public Item_num }; class Item_static_int_func :public Item_int { const char *func_name; public: Item_static_int_func(const char *str_arg, longlong i, uint length) :Item_int(NullS, i, length), func_name(str_arg) {} Item *safe_charset_converter(CHARSET_INFO *tocs); void print(String *str) { str->append(func_name); } }; class Item_uint :public Item_int { public: Loading sql/item_create.cc +2 −8 Original line number Diff line number Diff line Loading @@ -71,14 +71,8 @@ Item *create_func_ceiling(Item* a) Item *create_func_connection_id(void) { THD *thd=current_thd; thd->lex->safe_to_cache_query= 0; return new Item_static_int_func("connection_id()", (longlong) ((thd->slave_thread) ? thd->variables.pseudo_thread_id : thd->thread_id), 10); current_thd->lex->safe_to_cache_query= 0; return new Item_func_connection_id(); } Item *create_func_conv(Item* a, Item *b, Item *c) Loading Loading
mysql-test/r/trigger.result +13 −0 Original line number Diff line number Diff line Loading @@ -952,3 +952,16 @@ load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); drop table t1; drop function f1; drop function f2; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( conn_id INT, trigger_conn_id INT ); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.trigger_conn_id = CONNECTION_ID(); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); SELECT * FROM t1 WHERE conn_id != trigger_conn_id; conn_id trigger_conn_id DROP TRIGGER t1_bi; DROP TABLE t1;
mysql-test/t/trigger.test +28 −0 Original line number Diff line number Diff line Loading @@ -1114,3 +1114,31 @@ load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1(); drop table t1; drop function f1; drop function f2; # # Test for Bug #16461 connection_id() does not work properly inside trigger # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 ( conn_id INT, trigger_conn_id INT ); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.trigger_conn_id = CONNECTION_ID(); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); connect (con1,localhost,root,,); INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1); connection default; disconnect con1; SELECT * FROM t1 WHERE conn_id != trigger_conn_id; DROP TRIGGER t1_bi; DROP TABLE t1; # End of 5.0 tests
sql/item.cc +0 −16 Original line number Diff line number Diff line Loading @@ -644,22 +644,6 @@ Item *Item_num::safe_charset_converter(CHARSET_INFO *tocs) } Item *Item_static_int_func::safe_charset_converter(CHARSET_INFO *tocs) { Item_string *conv; char buf[64]; String *s, tmp(buf, sizeof(buf), &my_charset_bin); s= val_str(&tmp); if ((conv= new Item_static_string_func(func_name, s->ptr(), s->length(), s->charset()))) { conv->str_value.copy(); conv->str_value.mark_as_const(); } return conv; } Item *Item_static_float_func::safe_charset_converter(CHARSET_INFO *tocs) { Item_string *conv; Loading
sql/item.h +0 −12 Original line number Diff line number Diff line Loading @@ -1387,18 +1387,6 @@ class Item_int :public Item_num }; class Item_static_int_func :public Item_int { const char *func_name; public: Item_static_int_func(const char *str_arg, longlong i, uint length) :Item_int(NullS, i, length), func_name(str_arg) {} Item *safe_charset_converter(CHARSET_INFO *tocs); void print(String *str) { str->append(func_name); } }; class Item_uint :public Item_int { public: Loading
sql/item_create.cc +2 −8 Original line number Diff line number Diff line Loading @@ -71,14 +71,8 @@ Item *create_func_ceiling(Item* a) Item *create_func_connection_id(void) { THD *thd=current_thd; thd->lex->safe_to_cache_query= 0; return new Item_static_int_func("connection_id()", (longlong) ((thd->slave_thread) ? thd->variables.pseudo_thread_id : thd->thread_id), 10); current_thd->lex->safe_to_cache_query= 0; return new Item_func_connection_id(); } Item *create_func_conv(Item* a, Item *b, Item *c) Loading