Commit 6a5ce49d authored by kostja@bodhi.(none)'s avatar kostja@bodhi.(none)

Merge bk-internal.mysql.com:/home/bk/mysql-5.1

into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
parents 2efac224 c965ca53
This diff is collapsed.
...@@ -905,12 +905,12 @@ extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); ...@@ -905,12 +905,12 @@ extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
uint cs_flags, myf my_flags); uint cs_flags, myf my_flags);
extern bool resolve_charset(CHARSET_INFO **cs, extern bool resolve_charset(const char *cs_name,
const char *cs_name, CHARSET_INFO *default_cs,
CHARSET_INFO *default_cs); CHARSET_INFO **cs);
extern bool resolve_collation(CHARSET_INFO **cl, extern bool resolve_collation(const char *cl_name,
const char *cl_name, CHARSET_INFO *default_cl,
CHARSET_INFO *default_cl); CHARSET_INFO **cl);
extern void free_charsets(void); extern void free_charsets(void);
extern char *get_charsets_dir(char *buf); extern char *get_charsets_dir(char *buf);
......
# - Check SHOW CREATE statement;
--echo
--echo
SHOW CREATE EVENT ev1|
--echo
SHOW CREATE EVENT ev2|
--echo
SHOW CREATE EVENT mysqltest2.ev3|
--echo
SHOW CREATE EVENT mysqltest2.ev3|
# - Check SHOW statement;
--echo
--echo
SHOW EVENTS LIKE 'ev1'|
--echo
SHOW EVENTS LIKE 'ev2'|
--echo
SHOW EVENTS LIKE 'ev3'|
--echo
SHOW EVENTS LIKE 'ev4'|
# - Check INFORMATION_SCHEMA;
--echo
--echo
--replace_column 17 CREATED 18 LAST_ALTERED
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'|
--echo
--replace_column 17 CREATED 18 LAST_ALTERED
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
--echo
--replace_column 17 CREATED 18 LAST_ALTERED
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
--echo
--replace_column 17 CREATED 18 LAST_ALTERED
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
# - Check SHOW CREATE statement;
--echo
--echo
SHOW CREATE PROCEDURE p1|
--echo
SHOW CREATE PROCEDURE p2|
--echo
SHOW CREATE PROCEDURE mysqltest2.p3|
--echo
SHOW CREATE PROCEDURE mysqltest2.p4|
# - Check SHOW statement;
--echo
--echo
--replace_column 5 MODIFIED 6 CREATED
SHOW PROCEDURE STATUS LIKE 'p1'|
--echo
--replace_column 5 MODIFIED 6 CREATED
SHOW PROCEDURE STATUS LIKE 'p2'|
--echo
--replace_column 5 MODIFIED 6 CREATED
SHOW PROCEDURE STATUS LIKE 'p3'|
--echo
--replace_column 5 MODIFIED 6 CREATED
SHOW PROCEDURE STATUS LIKE 'p4'|
# - Check INFORMATION_SCHEMA;
--echo
--echo
--replace_column 16 CREATED 17 ALTERED
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
--echo
--replace_column 16 CREATED 17 ALTERED
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
--echo
--replace_column 16 CREATED 17 ALTERED
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
--echo
--replace_column 16 CREATED 17 ALTERED
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
# - Initialize the used variables (actual values don't matter);
--echo
--echo
SET @a = '1'|
SET @b = '2'|
# - Execute the routines;
--echo
--echo
CALL p1(@a, @b)|
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
--echo
CALL p2(@a, @b)|
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
--echo
CALL mysqltest2.p3(@a, @b)|
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
--echo
CALL mysqltest2.p4(@a, @b)|
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
# - Check SHOW CREATE statement;
--echo
--echo
SHOW CREATE TRIGGER trg1|
--echo
SHOW CREATE TRIGGER trg2|
--echo
SHOW CREATE TRIGGER mysqltest2.trg3|
--echo
SHOW CREATE TRIGGER mysqltest2.trg4|
# - Check SHOW statement;
--echo
--echo
SHOW TRIGGERS|
--echo
use mysqltest2|
--echo
SHOW TRIGGERS|
use mysqltest1|
# - Check INFORMATION_SCHEMA;
--echo
--echo
--replace_column 17 CREATED
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'|
--echo
--replace_column 17 CREATED
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
--echo
--replace_column 17 CREATED
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
--echo
--replace_column 17 CREATED
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
# - Initialize the used variables (actual values don't matter);
--echo
--echo
SET @a1 = '1'|
SET @a2 = '1'|
SET @a3 = '1'|
SET @b1 = '2'|
SET @b2 = '2'|
SET @b3 = '2'|
# - Execute the triggers;
--echo
--echo
INSERT INTO t1 VALUES(1)|
--echo
--echo ---> Log:
SELECT msg FROM log|
--echo
SELECT
COLLATION(@a1) AS ca1,
COLLATION(@a2) AS ca2,
COLLATION(@a3) AS ca3,
COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
--echo
DELETE FROM log|
--echo
--echo
INSERT INTO mysqltest2.t1 VALUES(1)|
--echo
--echo ---> Log:
SELECT msg FROM mysqltest2.log|
--echo
SELECT
COLLATION(@a1) AS ca1,
COLLATION(@a2) AS ca2,
COLLATION(@a3) AS ca3,
COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
--echo
DELETE FROM mysqltest2.log|
# - Check SHOW CREATE statement;
--echo
--echo
SHOW CREATE VIEW v1|
--echo
SHOW CREATE VIEW v2|
# - Check INFORMATION_SCHEMA;
--echo
--echo
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
--echo
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
# - Execute the views;
--echo
--echo
SELECT COLLATION(c1), COLLATION(c2) FROM v1|
--echo
SELECT COLLATION(c1) FROM v2|
--require r/have_cp1251.require
--disable_query_log
SHOW COLLATION LIKE 'cp1251_general_ci';
--enable_query_log
--require r/have_cp866.require
--disable_query_log
SHOW COLLATION LIKE 'cp866_general_ci';
--enable_query_log
--require r/have_koi8r.require
--disable_query_log
SHOW COLLATION LIKE 'koi8r_general_ci';
--enable_query_log
--require r/have_utf8.require
--disable_query_log
SHOW COLLATION LIKE 'utf8_general_ci';
--enable_query_log
...@@ -33,7 +33,7 @@ drop table if exists t1; ...@@ -33,7 +33,7 @@ drop table if exists t1;
create table t1(c1 int); create table t1(c1 int);
insert into t1 values(1),(10),(100); insert into t1 values(1),(10),(100);
# Prepared statements has no parameters, query caching should happen # First, prepared statements with no parameters
prepare stmt1 from "select * from t1 where c1=10"; prepare stmt1 from "select * from t1 where c1=10";
show status like 'Qcache_hits'; show status like 'Qcache_hits';
execute stmt1; execute stmt1;
...@@ -113,7 +113,9 @@ show status like 'Qcache_hits'; ...@@ -113,7 +113,9 @@ show status like 'Qcache_hits';
--echo ---- switch to connection default ---- --echo ---- switch to connection default ----
connection default; connection default;
# Prepared statement has parameters, query caching should not happen # Query caching also works when statement has parameters
# (BUG#29318 Statements prepared with PREPARE and with one parameter don't use
# query cache)
prepare stmt1 from "select * from t1 where c1=?"; prepare stmt1 from "select * from t1 where c1=?";
show status like 'Qcache_hits'; show status like 'Qcache_hits';
set @a=1; set @a=1;
...@@ -127,6 +129,12 @@ set @a=1; ...@@ -127,6 +129,12 @@ set @a=1;
prepare stmt4 from "select * from t1 where c1=?"; prepare stmt4 from "select * from t1 where c1=?";
execute stmt4 using @a; execute stmt4 using @a;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
# verify that presence of user variables forbids caching
prepare stmt4 from "select @a from t1 where c1=?";
execute stmt4 using @a;
show status like 'Qcache_hits';
execute stmt4 using @a;
show status like 'Qcache_hits';
--echo ---- switch to connection default ---- --echo ---- switch to connection default ----
connection default; connection default;
......
...@@ -364,7 +364,12 @@ sub mtr_report_stats ($) { ...@@ -364,7 +364,12 @@ sub mtr_report_stats ($) {
# Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes # Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes
# server coredump # server coredump
/\QError in Log_event::read_log_event(): 'Sanity check failed', data_len: 258, event_type: 49\E/ or /\QError in Log_event::read_log_event(): 'Sanity check failed', data_len: 258, event_type: 49\E/ or
/Statement is not safe to log in statement format/ /Statement is not safe to log in statement format/ or
# Test case for Bug#14233 produces the following warnings:
/Stored routine 'test'.'bug14233_1': invalid value in column mysql.proc/ or
/Stored routine 'test'.'bug14233_2': invalid value in column mysql.proc/ or
/Stored routine 'test'.'bug14233_3': invalid value in column mysql.proc/
) )
{ {
next; # Skip these lines next; # Skip these lines
......
...@@ -1618,8 +1618,8 @@ Table Create Table ...@@ -1618,8 +1618,8 @@ Table Create Table
KEY `имя_индекса_в_кодировке_утф8_длиной_больше_чем_48` (`имя_поля_в_кодировке_утф8_длиной_больше_чем_45`) KEY `имя_индекса_в_кодировке_утф8_длиной_больше_чем_48` (`имя_поля_в_кодировке_утф8_длиной_больше_чем_45`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create view имя_вью_кодировке_утф8_длиной_больше_чем_42; show create view имя_вью_кодировке_утф8_длиной_больше_чем_42;
View Create View View Create View character_set_client collation_connection
имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8 utf8_general_ci
create event имя_события_в_кодировке_утф8_длиной_больше_чем_48 on schedule every 2 year do select 1; create event имя_события_в_кодировке_утф8_длиной_больше_чем_48 on schedule every 2 year do select 1;
select EVENT_NAME from information_schema.events select EVENT_NAME from information_schema.events
where event_schema='test'; where event_schema='test';
......
...@@ -40,9 +40,9 @@ IN ind DECIMAL(10,2)) ...@@ -40,9 +40,9 @@ IN ind DECIMAL(10,2))
BEGIN BEGIN
INSERT INTO t4 VALUES (ins1, ins2, ind); INSERT INTO t4 VALUES (ins1, ins2, ind);
END END
master-bin.000001 783 Query 1 1002 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) master-bin.000001 783 Query 1 999 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
master-bin.000001 1002 Query 1 1091 use `test`; DROP PROCEDURE bug18293 master-bin.000001 999 Query 1 1085 use `test`; DROP PROCEDURE bug18293
master-bin.000001 1091 Query 1 1170 use `test`; DROP TABLE t4 master-bin.000001 1085 Query 1 1161 use `test`; DROP TABLE t4
End of 5.0 tests End of 5.0 tests
SHOW BINLOG EVENTS FROM 364; SHOW BINLOG EVENTS FROM 364;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
...@@ -2,8 +2,8 @@ CREATE DATABASE IF NOT EXISTS events_test; ...@@ -2,8 +2,8 @@ CREATE DATABASE IF NOT EXISTS events_test;
use events_test; use events_test;
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123;
SHOW EVENTS; SHOW EVENTS;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME;
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT
NULL events_test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE NULL events_test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE
...@@ -29,8 +29,8 @@ ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_te ...@@ -29,8 +29,8 @@ ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_te
USE events_test; USE events_test;
"We should see one event"; "We should see one event";
SHOW EVENTS; SHOW EVENTS;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT CONCAT("Let's create some new events from the name of ", USER()); SELECT CONCAT("Let's create some new events from the name of ", USER());
CONCAT("Let's create some new events from the name of ", USER()) CONCAT("Let's create some new events from the name of ", USER())
Let's create some new events from the name of ev_test@localhost Let's create some new events from the name of ev_test@localhost
...@@ -40,18 +40,18 @@ CREATE EVENT two_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION NOT PRESERVE CO ...@@ -40,18 +40,18 @@ CREATE EVENT two_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION NOT PRESERVE CO
CREATE EVENT three_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION PRESERVE COMMENT "three event" DO SELECT 123; CREATE EVENT three_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION PRESERVE COMMENT "three event" DO SELECT 123;
"Now we should see 3 events:"; "Now we should see 3 events:";
SHOW EVENTS; SHOW EVENTS;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 events_test one_event root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
"This should show us only 2 events:"; "This should show us only 2 events:";
SHOW EVENTS LIKE 't%event'; SHOW EVENTS LIKE 't%event';
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 events_test three_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 events_test two_event ev_test@localhost SYSTEM RECURRING NULL 20 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
"This should show us no events:"; "This should show us no events:";
SHOW EVENTS FROM test LIKE '%'; SHOW EVENTS FROM test LIKE '%';
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
GRANT EVENT ON events_test2.* TO ev_test@localhost; GRANT EVENT ON events_test2.* TO ev_test@localhost;
USE events_test2; USE events_test2;
CREATE EVENT four_event ON SCHEDULE EVERY 20 SECOND DO SELECT 42; CREATE EVENT four_event ON SCHEDULE EVERY 20 SECOND DO SELECT 42;
......
...@@ -225,8 +225,8 @@ a ...@@ -225,8 +225,8 @@ a
46 46
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45); CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
SHOW CREATE VIEW v1; SHOW CREATE VIEW v1;
View Create View View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` <> 45) v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` <> 45) latin1 latin1_swedish_ci
SELECT * FROM v1; SELECT * FROM v1;
a a
44 44
......
...@@ -745,10 +745,10 @@ drop table t1; ...@@ -745,10 +745,10 @@ drop table t1;
drop procedure if exists fn3; drop procedure if exists fn3;
create function fn3 () returns point deterministic return GeomFromText("point(1 1)"); create function fn3 () returns point deterministic return GeomFromText("point(1 1)");
show create function fn3; show create function fn3;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
fn3 CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point fn3 CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point
DETERMINISTIC DETERMINISTIC
return GeomFromText("point(1 1)") return GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci
select astext(fn3()); select astext(fn3());
astext(fn3()) astext(fn3())
POINT(1 1) POINT(1 1)
......
...@@ -907,11 +907,11 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl ...@@ -907,11 +907,11 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl
SHOW CREATE TABLE mysqltest2.v_yn; SHOW CREATE TABLE mysqltest2.v_yn;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
SHOW CREATE TABLE mysqltest2.v_ny; SHOW CREATE TABLE mysqltest2.v_ny;
View Create View View Create View character_set_client collation_connection
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
SHOW CREATE VIEW mysqltest2.v_ny; SHOW CREATE VIEW mysqltest2.v_ny;
View Create View View Create View character_set_client collation_connection
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest3.t_nn; SHOW CREATE TABLE mysqltest3.t_nn;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
SHOW CREATE VIEW mysqltest3.t_nn; SHOW CREATE VIEW mysqltest3.t_nn;
...@@ -928,17 +928,17 @@ t_nn CREATE TABLE `t_nn` ( ...@@ -928,17 +928,17 @@ t_nn CREATE TABLE `t_nn` (
SHOW CREATE VIEW mysqltest2.t_nn; SHOW CREATE VIEW mysqltest2.t_nn;
ERROR HY000: 'mysqltest2.t_nn' is not VIEW ERROR HY000: 'mysqltest2.t_nn' is not VIEW
SHOW CREATE VIEW mysqltest2.v_yy; SHOW CREATE VIEW mysqltest2.v_yy;
View Create View View Create View character_set_client collation_connection
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.v_yy; SHOW CREATE TABLE mysqltest2.v_yy;
View Create View View Create View character_set_client collation_connection
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55) latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.v_nn; SHOW CREATE TABLE mysqltest2.v_nn;
View Create View View Create View character_set_client collation_connection
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` latin1 latin1_swedish_ci
SHOW CREATE VIEW mysqltest2.v_nn; SHOW CREATE VIEW mysqltest2.v_nn;
View Create View View Create View character_set_client collation_connection
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn` latin1 latin1_swedish_ci
SHOW CREATE TABLE mysqltest2.t_nn; SHOW CREATE TABLE mysqltest2.t_nn;
Table Create Table Table Create Table
t_nn CREATE TABLE `t_nn` ( t_nn CREATE TABLE `t_nn` (
......
Collation Charset Id Default Compiled Sortlen
cp1251_general_ci cp1251 51 Yes 0
Collation Charset Id Default Compiled Sortlen
cp866_general_ci cp866 36 Yes 0
Collation Charset Id Default Compiled Sortlen
koi8r_general_ci koi8r 7 Yes 0
Collation Charset Id Default Compiled Sortlen
utf8_general_ci utf8 33 Yes Yes 1
This diff is collapsed.
...@@ -132,11 +132,11 @@ show fields from testdb_1.v6; ...@@ -132,11 +132,11 @@ show fields from testdb_1.v6;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(4) YES NULL f1 char(4) YES NULL
show create view testdb_1.v6; show create view testdb_1.v6;
View Create View View Create View character_set_client collation_connection
v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v6` AS select `t1`.`f1` AS `f1` from `t1` v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v6` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
show create view testdb_1.v7; show create view testdb_1.v7;
View Create View View Create View character_set_client collation_connection
v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` latin1 latin1_swedish_ci
Warnings: Warnings:
Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
show fields from testdb_1.v7; show fields from testdb_1.v7;
...@@ -153,22 +153,22 @@ show fields from testdb_1.v5; ...@@ -153,22 +153,22 @@ show fields from testdb_1.v5;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(4) YES NULL f1 char(4) YES NULL
show create view testdb_1.v5; show create view testdb_1.v5;
View Create View View Create View character_set_client collation_connection
v5 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_1`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v5` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` v5 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_1`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v5` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
show fields from testdb_1.v6; show fields from testdb_1.v6;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(4) YES NULL f1 char(4) YES NULL
show create view testdb_1.v6; show create view testdb_1.v6;
View Create View View Create View character_set_client collation_connection
v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
show fields from testdb_1.v7; show fields from testdb_1.v7;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 null YES NULL f1 null YES NULL
Warnings: Warnings:
Note 1449 There is no 'no_such_user'@'no_such_host' registered Note 1449 There is no 'no_such_user'@'no_such_host' registered
show create view testdb_1.v7; show create view testdb_1.v7;
View Create View View Create View character_set_client collation_connection
v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2` latin1 latin1_swedish_ci
Warnings: Warnings:
Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
revoke insert(f1) on v3 from testdb_2@localhost; revoke insert(f1) on v3 from testdb_2@localhost;
...@@ -200,8 +200,8 @@ show fields from testdb_1.v1; ...@@ -200,8 +200,8 @@ show fields from testdb_1.v1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(4) YES NULL f1 char(4) YES NULL
show create view v2; show create view v2;
View Create View View Create View character_set_client collation_connection
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci
show create view testdb_1.v1; show create view testdb_1.v1;
ERROR 42000: SHOW VIEW command denied to user 'testdb_2'@'localhost' for table 'v1' ERROR 42000: SHOW VIEW command denied to user 'testdb_2'@'localhost' for table 'v1'
select table_name from information_schema.columns a select table_name from information_schema.columns a
...@@ -211,7 +211,7 @@ v2 ...@@ -211,7 +211,7 @@ v2
select view_definition from information_schema.views a select view_definition from information_schema.views a
where a.table_name = 'v2'; where a.table_name = 'v2';
view_definition view_definition
/* ALGORITHM=UNDEFINED */ select `v1`.`f1` AS `f1` from `testdb_1`.`v1` select f1 from testdb_1.v1
select view_definition from information_schema.views a select view_definition from information_schema.views a
where a.table_name = 'testdb_1.v1'; where a.table_name = 'testdb_1.v1';
view_definition view_definition
......
...@@ -6,8 +6,8 @@ use MySQLTest; ...@@ -6,8 +6,8 @@ use MySQLTest;
create table TaB (Field int); create table TaB (Field int);
create view ViE as select * from TAb; create view ViE as select * from TAb;
show create table VIe; show create table VIe;
View Create View View Create View character_set_client collation_connection
vie CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vie` AS select `tab`.`Field` AS `Field` from `tab` vie CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vie` AS select `tab`.`Field` AS `Field` from `tab` latin1 latin1_swedish_ci
drop database MySQLTest; drop database MySQLTest;
use test; use test;
create table t1Aa (col1 int); create table t1Aa (col1 int);
...@@ -118,8 +118,8 @@ drop table t1Aa,t2Aa; ...@@ -118,8 +118,8 @@ drop table t1Aa,t2Aa;
create table t1Aa (col1 int); create table t1Aa (col1 int);
create view v1Aa as select col1 from t1Aa as AaA; create view v1Aa as select col1 from t1Aa as AaA;
show create view v1AA; show create view v1AA;
View Create View View Create View character_set_client collation_connection
v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci
drop view v1AA; drop view v1AA;
select Aaa.col1 from t1Aa as AaA; select Aaa.col1 from t1Aa as AaA;
col1 col1
...@@ -127,7 +127,7 @@ create view v1Aa as select Aaa.col1 from t1Aa as AaA; ...@@ -127,7 +127,7 @@ create view v1Aa as select Aaa.col1 from t1Aa as AaA;
drop view v1AA; drop view v1AA;
create view v1Aa as select AaA.col1 from t1Aa as AaA; create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA; show create view v1AA;
View Create View View Create View character_set_client collation_connection
v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci
drop view v1AA; drop view v1AA;
drop table t1Aa; drop table t1Aa;
This diff is collapsed.
...@@ -31,12 +31,12 @@ select @test_var; ...@@ -31,12 +31,12 @@ select @test_var;
10 10
alter procedure test_proc1 comment 'new comment'; alter procedure test_proc1 comment 'new comment';
show create procedure test_proc1; show create procedure test_proc1;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
test_proc1 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc1`(in var_in int) test_proc1 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc1`(in var_in int)
COMMENT 'new comment' COMMENT 'new comment'
begin begin
select * from t1 where a = var_in; select * from t1 where a = var_in;
end end latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure test_proc1; drop procedure test_proc1;
drop procedure test_proc2; drop procedure test_proc2;
drop procedure test_proc3; drop procedure test_proc3;
......
This diff is collapsed.
...@@ -378,6 +378,8 @@ prepare stmt1 from ' execute stmt2 ' ; ...@@ -378,6 +378,8 @@ prepare stmt1 from ' execute stmt2 ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' deallocate prepare never_prepared ' ; prepare stmt1 from ' deallocate prepare never_prepared ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from 'alter view v1 as select 2';
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt4 from ' use test ' ; prepare stmt4 from ' use test ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' create database mysqltest '; prepare stmt3 from ' create database mysqltest ';
......
...@@ -144,7 +144,7 @@ c1 ...@@ -144,7 +144,7 @@ c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 15
---- switch to connection con1 ---- ---- switch to connection con1 ----
set @a=1; set @a=1;
prepare stmt4 from "select * from t1 where c1=?"; prepare stmt4 from "select * from t1 where c1=?";
...@@ -153,50 +153,63 @@ c1 ...@@ -153,50 +153,63 @@ c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
prepare stmt4 from "select @a from t1 where c1=?";
execute stmt4 using @a;
@a
1
show status like 'Qcache_hits';
Variable_name Value
Qcache_hits 16
execute stmt4 using @a;
@a
1
show status like 'Qcache_hits';
Variable_name Value
Qcache_hits 16
---- switch to connection default ---- ---- switch to connection default ----
prepare stmt1 from "select * from t1 where c1=10"; prepare stmt1 from "select * from t1 where c1=10";
set global query_cache_size=0; set global query_cache_size=0;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=100000; set global query_cache_size=100000;
execute stmt1; execute stmt1;
...@@ -204,80 +217,80 @@ c1 ...@@ -204,80 +217,80 @@ c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 15 Qcache_hits 17
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 16 Qcache_hits 18
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 18 Qcache_hits 20
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=10"; prepare stmt1 from "select * from t1 where c1=10";
...@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10"; ...@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
set global query_cache_size=100000; set global query_cache_size=100000;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
---- switch to connection con1 ---- ---- switch to connection con1 ----
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=?"; prepare stmt1 from "select * from t1 where c1=?";
set global query_cache_size=100000; set global query_cache_size=100000;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
set @a=1; set @a=1;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
set @a=100; set @a=100;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
100 100
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
set @a=10; set @a=10;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 19 Qcache_hits 21
drop table t1; drop table t1;
---- disconnect connection con1 ---- ---- disconnect connection con1 ----
set @@global.query_cache_size=@initial_query_cache_size; set @@global.query_cache_size=@initial_query_cache_size;
......
...@@ -144,7 +144,7 @@ c1 ...@@ -144,7 +144,7 @@ c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 13
---- switch to connection con1 ---- ---- switch to connection con1 ----
set @a=1; set @a=1;
prepare stmt4 from "select * from t1 where c1=?"; prepare stmt4 from "select * from t1 where c1=?";
...@@ -153,50 +153,63 @@ c1 ...@@ -153,50 +153,63 @@ c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
prepare stmt4 from "select @a from t1 where c1=?";
execute stmt4 using @a;
@a
1
show status like 'Qcache_hits';
Variable_name Value
Qcache_hits 14
execute stmt4 using @a;
@a
1
show status like 'Qcache_hits';
Variable_name Value
Qcache_hits 14
---- switch to connection default ---- ---- switch to connection default ----
prepare stmt1 from "select * from t1 where c1=10"; prepare stmt1 from "select * from t1 where c1=10";
set global query_cache_size=0; set global query_cache_size=0;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=100000; set global query_cache_size=100000;
execute stmt1; execute stmt1;
...@@ -204,80 +217,80 @@ c1 ...@@ -204,80 +217,80 @@ c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 12 Qcache_hits 14
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 13 Qcache_hits 15
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 14 Qcache_hits 16
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 15 Qcache_hits 17
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 16 Qcache_hits 18
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
---- switch to connection con1 ---- ---- switch to connection con1 ----
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=10"; prepare stmt1 from "select * from t1 where c1=10";
...@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10"; ...@@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
set global query_cache_size=100000; set global query_cache_size=100000;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt1; execute stmt1;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
---- switch to connection con1 ---- ---- switch to connection con1 ----
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
execute stmt3; execute stmt3;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
---- switch to connection default ---- ---- switch to connection default ----
set global query_cache_size=0; set global query_cache_size=0;
prepare stmt1 from "select * from t1 where c1=?"; prepare stmt1 from "select * from t1 where c1=?";
set global query_cache_size=100000; set global query_cache_size=100000;
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
set @a=1; set @a=1;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
1 1
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
set @a=100; set @a=100;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
100 100
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
set @a=10; set @a=10;
execute stmt1 using @a; execute stmt1 using @a;
c1 c1
10 10
show status like 'Qcache_hits'; show status like 'Qcache_hits';
Variable_name Value Variable_name Value
Qcache_hits 17 Qcache_hits 19
drop table t1; drop table t1;
---- disconnect connection con1 ---- ---- disconnect connection con1 ----
set @@global.query_cache_size=@initial_query_cache_size; set @@global.query_cache_size=@initial_query_cache_size;
......
...@@ -87,27 +87,27 @@ Tables_in_test ...@@ -87,27 +87,27 @@ Tables_in_test
t1 t1
t2 t2
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
*** slave *** *** slave ***
show tables; show tables;
Tables_in_test Tables_in_test
t1 t1
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
*** master *** *** master ***
drop trigger trg1; drop trigger trg1;
drop trigger trg2; drop trigger trg2;
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
*** slave *** *** slave ***
show tables; show tables;
Tables_in_test Tables_in_test
t1 t1
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
*** master *** *** master ***
drop table t1; drop table t1;
drop table t2; drop table t2;
...@@ -17,21 +17,31 @@ insert into t1 values (b); ...@@ -17,21 +17,31 @@ insert into t1 values (b);
insert into t1 values (unix_timestamp()); insert into t1 values (unix_timestamp());
end| end|
select * from mysql.proc where name='foo' and db='mysqltest1'; select * from mysql.proc where name='foo' and db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
declare b int; declare b int;
set b = 8; set b = 8;
insert into t1 values (b); insert into t1 values (b);
insert into t1 values (unix_timestamp()); insert into t1 values (unix_timestamp());
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
declare b int;
set b = 8;
insert into t1 values (b);
insert into t1 values (unix_timestamp());
end
select * from mysql.proc where name='foo' and db='mysqltest1'; select * from mysql.proc where name='foo' and db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
declare b int; declare b int;
set b = 8; set b = 8;
insert into t1 values (b); insert into t1 values (b);
insert into t1 values (unix_timestamp()); insert into t1 values (unix_timestamp());
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
declare b int;
set b = 8;
insert into t1 values (b);
insert into t1 values (unix_timestamp());
end
set timestamp=1000000000; set timestamp=1000000000;
call foo(); call foo();
select * from t1; select * from t1;
...@@ -115,15 +125,17 @@ select * from t2; ...@@ -115,15 +125,17 @@ select * from t2;
a a
20 20
select * from mysql.proc where name="foo4" and db='mysqltest1'; select * from mysql.proc where name="foo4" and db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 foo4 PROCEDURE foo4 SQL CONTAINS_SQL YES DEFINER begin mysqltest1 foo4 PROCEDURE foo4 SQL CONTAINS_SQL YES DEFINER begin
insert into t2 values(20),(20); insert into t2 values(20),(20);
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
insert into t2 values(20),(20);
end
drop procedure foo4; drop procedure foo4;
select * from mysql.proc where name="foo4" and db='mysqltest1'; select * from mysql.proc where name="foo4" and db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
select * from mysql.proc where name="foo4" and db='mysqltest1'; select * from mysql.proc where name="foo4" and db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
drop procedure foo; drop procedure foo;
drop procedure foo2; drop procedure foo2;
drop procedure foo3; drop procedure foo3;
...@@ -202,16 +214,22 @@ select fn3(); ...@@ -202,16 +214,22 @@ select fn3();
fn3() fn3()
0 0
select * from mysql.proc where db='mysqltest1'; select * from mysql.proc where db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp(); return unix_timestamp();
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return unix_timestamp();
end
mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp(); return unix_timestamp();
end zedjzlcsjhd@localhost # # end zedjzlcsjhd@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return unix_timestamp();
end
mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
return 0; return 0;
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return 0;
end
select * from t1; select * from t1;
a a
1000000000 1000000000
...@@ -220,16 +238,22 @@ select * from t1; ...@@ -220,16 +238,22 @@ select * from t1;
a a
1000000000 1000000000
select * from mysql.proc where db='mysqltest1'; select * from mysql.proc where db='mysqltest1';
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp(); return unix_timestamp();
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return unix_timestamp();
end
mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
return unix_timestamp(); return unix_timestamp();
end zedjzlcsjhd@localhost # # end zedjzlcsjhd@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return unix_timestamp();
end
mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
return 0; return 0;
end root@localhost # # end root@localhost # # latin1 latin1_swedish_ci latin1_swedish_ci begin
return 0;
end
delete from t2; delete from t2;
alter table t2 add unique (a); alter table t2 add unique (a);
drop function fn1; drop function fn1;
...@@ -337,26 +361,26 @@ DROP FUNCTION IF EXISTS f1; ...@@ -337,26 +361,26 @@ DROP FUNCTION IF EXISTS f1;
---> Checking on master... ---> Checking on master...
SHOW CREATE PROCEDURE p1; SHOW CREATE PROCEDURE p1;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SET @a = 1 SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1; SHOW CREATE FUNCTION f1;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
RETURN 0 RETURN 0 latin1 latin1_swedish_ci latin1_swedish_ci
---> Synchronizing slave with master... ---> Synchronizing slave with master...
---> connection: master ---> connection: master
---> Checking on slave... ---> Checking on slave...
SHOW CREATE PROCEDURE p1; SHOW CREATE PROCEDURE p1;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SET @a = 1 SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f1; SHOW CREATE FUNCTION f1;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
RETURN 0 RETURN 0 latin1 latin1_swedish_ci latin1_swedish_ci
---> connection: master ---> connection: master
......
...@@ -868,8 +868,8 @@ Tables_in_test (t_) ...@@ -868,8 +868,8 @@ Tables_in_test (t_)
t1 t1
t2 t2
SHOW TRIGGERS; SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 INSERT INTO t2 VALUES(CURRENT_USER()) AFTER NULL trg1 INSERT t1 INSERT INTO t2 VALUES(CURRENT_USER()) AFTER NULL latin1 latin1_swedish_ci latin1_swedish_ci
SELECT * FROM t1; SELECT * FROM t1;
c c
1 1
...@@ -895,7 +895,7 @@ RESET SLAVE; ...@@ -895,7 +895,7 @@ RESET SLAVE;
SHOW TABLES LIKE 't_'; SHOW TABLES LIKE 't_';
Tables_in_test (t_) Tables_in_test (t_)
SHOW TRIGGERS; SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
RESET MASTER; RESET MASTER;
START SLAVE; START SLAVE;
......
...@@ -88,8 +88,8 @@ Field Type Null Key Default Extra ...@@ -88,8 +88,8 @@ Field Type Null Key Default Extra
a int(11) YES NULL a int(11) YES NULL
b decimal(32,0) YES NULL b decimal(32,0) YES NULL
show create table v1; show create table v1;
View Create View View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a` v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a` latin1 latin1_swedish_ci
select * from v1; select * from v1;
a b a b
1 6 1 6
......
This diff is collapsed.
...@@ -35,16 +35,16 @@ SELECT 3; ...@@ -35,16 +35,16 @@ SELECT 3;
CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
RETURN 3; RETURN 3;
SHOW CREATE VIEW v3; SHOW CREATE VIEW v3;
View Create View View Create View character_set_client collation_connection
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` latin1 latin1_swedish_ci
SHOW CREATE PROCEDURE p3; SHOW CREATE PROCEDURE p3;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
p3 CREATE DEFINER=`a`@`` PROCEDURE `p3`() p3 CREATE DEFINER=`a`@`` PROCEDURE `p3`()
SELECT 3 SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION f3; SHOW CREATE FUNCTION f3;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
f3 CREATE DEFINER=`a`@`` FUNCTION `f3`() RETURNS int(11) f3 CREATE DEFINER=`a`@`` FUNCTION `f3`() RETURNS int(11)
RETURN 3 RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER t1_bi; DROP TRIGGER t1_bi;
DROP TRIGGER ti_ai; DROP TRIGGER ti_ai;
DROP TRIGGER ti_bu; DROP TRIGGER ti_bu;
......
...@@ -37,26 +37,33 @@ insert into mysql.proc ...@@ -37,26 +37,33 @@ insert into mysql.proc
( (
db, name, type, specific_name, language, sql_data_access, is_deterministic, db, name, type, specific_name, language, sql_data_access, is_deterministic,
security_type, param_list, returns, body, definer, created, modified, security_type, param_list, returns, body, definer, created, modified,
sql_mode, comment sql_mode, comment, character_set_client, collation_connection, db_collation,
body_utf8
) )
values values
( (
'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO', 'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)', 'DEFINER', '', 'int(10)',
'select count(*) from mysql.user', 'select count(*) from mysql.user',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'select count(*) from mysql.user'
), ),
( (
'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO', 'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)', 'DEFINER', '', 'int(10)',
'begin declare x int; select count(*) into x from mysql.user; end', 'begin declare x int; select count(*) into x from mysql.user; end',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'begin declare x int; select count(*) into x from mysql.user; end'
), ),
( (
'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO', 'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
'DEFINER', '', '', 'DEFINER', '', '',
'alksj wpsj sa ^#!@ ', 'alksj wpsj sa ^#!@ ',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'alksj wpsj sa ^#!@ '
); );
select bug14233_1(); select bug14233_1();
ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
...@@ -78,6 +85,6 @@ drop function bug14233_1; ...@@ -78,6 +85,6 @@ drop function bug14233_1;
drop function bug14233_2; drop function bug14233_2;
drop procedure bug14233_3; drop procedure bug14233_3;
show procedure status; show procedure status;
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
show function status; show function status;
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
...@@ -87,6 +87,10 @@ prepare stmt from "create table t1 (a int)"; ...@@ -87,6 +87,10 @@ prepare stmt from "create table t1 (a int)";
execute stmt; execute stmt;
insert into t1 (a) values (1); insert into t1 (a) values (1);
select * from t1; select * from t1;
prepare stmt_alter from "alter table t1 add (b int)";
execute stmt_alter;
insert into t1 (a,b) values (2,1);
deallocate prepare stmt_alter;
deallocate prepare stmt; deallocate prepare stmt;
deallocate prepare stmt_drop; deallocate prepare stmt_drop;
end| end|
...@@ -245,6 +249,9 @@ a ...@@ -245,6 +249,9 @@ a
1 1
drop procedure p1| drop procedure p1|
drop table if exists t1| drop table if exists t1|
drop table if exists t2|
Warnings:
Note 1051 Unknown table 't2'
create table t1 (id integer primary key auto_increment, create table t1 (id integer primary key auto_increment,
stmt_text char(35), status varchar(20))| stmt_text char(35), status varchar(20))|
insert into t1 (stmt_text) values insert into t1 (stmt_text) values
...@@ -255,7 +262,10 @@ insert into t1 (stmt_text) values ...@@ -255,7 +262,10 @@ insert into t1 (stmt_text) values
("help help"), ("show databases"), ("show tables"), ("help help"), ("show databases"), ("show tables"),
("show table status"), ("show open tables"), ("show storage engines"), ("show table status"), ("show open tables"), ("show storage engines"),
("insert into t1 (id) values (1)"), ("update t1 set status=''"), ("insert into t1 (id) values (1)"), ("update t1 set status=''"),
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")| ("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
("create view v1 as select 1"), ("alter view v1 as select 2"),
("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
("drop table t2")|
create procedure p1() create procedure p1()
begin begin
declare v_stmt_text varchar(255); declare v_stmt_text varchar(255);
...@@ -305,6 +315,12 @@ id stmt_text status ...@@ -305,6 +315,12 @@ id stmt_text status
20 truncate t1 supported 20 truncate t1 supported
21 call p1() supported 21 call p1() supported
22 foo bar syntax error 22 foo bar syntax error
23 create view v1 as select 1 supported
24 alter view v1 as select 2 not supported
25 drop view v1 supported
26 create table t2 (a int) supported
27 alter table t2 add (b int) supported
28 drop table t2 supported
drop procedure p1| drop procedure p1|
drop table t1| drop table t1|
prepare stmt from 'select 1'| prepare stmt from 'select 1'|
......
...@@ -682,8 +682,8 @@ create procedure bug17015_012345678901234567890123456789012345678901234567890123 ...@@ -682,8 +682,8 @@ create procedure bug17015_012345678901234567890123456789012345678901234567890123
begin begin
end| end|
show procedure status like 'bug17015%'| show procedure status like 'bug17015%'|
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
test bug17015_0123456789012345678901234567890123456789012345678901234 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER test bug17015_0123456789012345678901234567890123456789012345678901234 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure bug17015_0123456789012345678901234567890123456789012345678901234| drop procedure bug17015_0123456789012345678901234567890123456789012345678901234|
drop procedure if exists bug10969| drop procedure if exists bug10969|
create procedure bug10969() create procedure bug10969()
...@@ -982,9 +982,9 @@ ERROR HY000: Explicit or implicit commit is not allowed in stored function or tr ...@@ -982,9 +982,9 @@ ERROR HY000: Explicit or implicit commit is not allowed in stored function or tr
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END | CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END | CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. ERROR 0A000: ALTER VIEW is not allowed in stored procedures
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END | CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. ERROR 0A000: ALTER VIEW is not allowed in stored procedures
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END | CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END | CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END |
...@@ -1087,8 +1087,8 @@ create procedure p2() select version(); ...@@ -1087,8 +1087,8 @@ create procedure p2() select version();
ERROR 3D000: No database selected ERROR 3D000: No database selected
use mysqltest2; use mysqltest2;
show procedure status; show procedure status;
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop database mysqltest2; drop database mysqltest2;
use test; use test;
DROP FUNCTION IF EXISTS bug13012| DROP FUNCTION IF EXISTS bug13012|
...@@ -1177,8 +1177,8 @@ call ` bug15658`(); ...@@ -1177,8 +1177,8 @@ call ` bug15658`();
1 1
1 1
show procedure status; show procedure status;
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
test bug15658 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER test bug15658 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure ` bug15658`; drop procedure ` bug15658`;
drop function if exists bug14270; drop function if exists bug14270;
drop table if exists t1; drop table if exists t1;
......
...@@ -12,8 +12,8 @@ insert into t1 values('test', 0); ...@@ -12,8 +12,8 @@ insert into t1 values('test', 0);
create procedure stamp(i int) create procedure stamp(i int)
insert into db1_secret.t1 values (user(), i); insert into db1_secret.t1 values (user(), i);
show procedure status like 'stamp'; show procedure status like 'stamp';
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
create function db() returns varchar(64) create function db() returns varchar(64)
begin begin
declare v varchar(64); declare v varchar(64);
...@@ -21,8 +21,8 @@ select u into v from t1 limit 1; ...@@ -21,8 +21,8 @@ select u into v from t1 limit 1;
return v; return v;
end| end|
show function status like 'db'; show function status like 'db';
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
call stamp(1); call stamp(1);
select * from t1; select * from t1;
u i u i
...@@ -71,12 +71,12 @@ user1@localhost 2 ...@@ -71,12 +71,12 @@ user1@localhost 2
anon@localhost 3 anon@localhost 3
alter procedure stamp sql security invoker; alter procedure stamp sql security invoker;
show procedure status like 'stamp'; show procedure status like 'stamp';
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
alter function db sql security invoker; alter function db sql security invoker;
show function status like 'db'; show function status like 'db';
Db Name Type Definer Modified Created Security_type Comment Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
call stamp(4); call stamp(4);
select * from t1; select * from t1;
u i u i
...@@ -365,21 +365,21 @@ Note 1449 There is no 'a @ b @ c'@'localhost' registered ...@@ -365,21 +365,21 @@ Note 1449 There is no 'a @ b @ c'@'localhost' registered
---> connection: con1root ---> connection: con1root
use mysqltest; use mysqltest;
SHOW CREATE PROCEDURE wl2897_p1; SHOW CREATE PROCEDURE wl2897_p1;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
wl2897_p1 CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`() wl2897_p1 CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`()
SELECT 1 SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE PROCEDURE wl2897_p3; SHOW CREATE PROCEDURE wl2897_p3;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
wl2897_p3 CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`() wl2897_p3 CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`()
SELECT 3 SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION wl2897_f1; SHOW CREATE FUNCTION wl2897_f1;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
wl2897_f1 CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11) wl2897_f1 CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11)
RETURN 1 RETURN 1 latin1 latin1_swedish_ci latin1_swedish_ci
SHOW CREATE FUNCTION wl2897_f3; SHOW CREATE FUNCTION wl2897_f3;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
wl2897_f3 CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11) wl2897_f3 CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11)
RETURN 3 RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
DROP USER mysqltest_1@localhost; DROP USER mysqltest_1@localhost;
DROP USER mysqltest_2@localhost; DROP USER mysqltest_2@localhost;
DROP DATABASE mysqltest; DROP DATABASE mysqltest;
...@@ -443,14 +443,14 @@ SET a=1; ...@@ -443,14 +443,14 @@ SET a=1;
SELECT a; SELECT a;
END // END //
SHOW CREATE PROCEDURE test.sp19857; SHOW CREATE PROCEDURE test.sp19857;
Procedure sql_mode Create Procedure Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp19857 CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`() sp19857 CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`()
DETERMINISTIC DETERMINISTIC
BEGIN BEGIN
DECLARE a INT; DECLARE a INT;
SET a=1; SET a=1;
SELECT a; SELECT a;
END END latin1 latin1_swedish_ci latin1_swedish_ci
DROP PROCEDURE IF EXISTS test.sp19857; DROP PROCEDURE IF EXISTS test.sp19857;
---> connection: root ---> connection: root
......
This diff is collapsed.
...@@ -426,37 +426,37 @@ a\b a\'b a"\b a"\'b ...@@ -426,37 +426,37 @@ a\b a\'b a"\b a"\'b
SET @@SQL_MODE=''; SET @@SQL_MODE='';
create function `foo` () returns int return 5; create function `foo` () returns int return 5;
show create function `foo`; show create function `foo`;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11) foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
return 5 return 5 latin1 latin1_swedish_ci latin1_swedish_ci
SET @@SQL_MODE='ANSI_QUOTES'; SET @@SQL_MODE='ANSI_QUOTES';
show create function `foo`; show create function `foo`;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11) foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
return 5 return 5 latin1 latin1_swedish_ci latin1_swedish_ci
drop function `foo`; drop function `foo`;
create function `foo` () returns int return 5; create function `foo` () returns int return 5;
show create function `foo`; show create function `foo`;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11) foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
return 5 return 5 latin1 latin1_swedish_ci latin1_swedish_ci
SET @@SQL_MODE=''; SET @@SQL_MODE='';
show create function `foo`; show create function `foo`;
Function sql_mode Create Function Function sql_mode Create Function character_set_client collation_connection Database Collation
foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11) foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
return 5 return 5 latin1 latin1_swedish_ci latin1_swedish_ci
drop function `foo`; drop function `foo`;
SET @@SQL_MODE=''; SET @@SQL_MODE='';
create table t1 (a int); create table t1 (a int);
create table t2 (a int); create table t2 (a int);
create view v1 as select a from t1; create view v1 as select a from t1;
show create view v1; show create view v1;
View Create View View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
SET @@SQL_MODE='ANSI_QUOTES'; SET @@SQL_MODE='ANSI_QUOTES';
show create view v1; show create view v1;
View Create View View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1" v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1" latin1 latin1_swedish_ci
create view v2 as select a from t2 where a in (select a from v1); create view v2 as select a from t2 where a in (select a from v1);
drop view v2, v1; drop view v2, v1;
drop table t1, t2; drop table t1, t2;
......
...@@ -203,6 +203,10 @@ proc CREATE TABLE `proc` ( ...@@ -203,6 +203,10 @@ proc CREATE TABLE `proc` (
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL DEFAULT '', `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL DEFAULT '',
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`body_utf8` longblob,
PRIMARY KEY (`db`,`name`,`type`) PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
show create table event; show create table event;
...@@ -226,6 +230,10 @@ event CREATE TABLE `event` ( ...@@ -226,6 +230,10 @@ event CREATE TABLE `event` (
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`originator` int(10) NOT NULL, `originator` int(10) NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', `time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`body_utf8` longblob,
PRIMARY KEY (`db`,`name`) PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'
show create table general_log; show create table general_log;
......
...@@ -111,8 +111,8 @@ v1 CREATE TEMPORARY TABLE `v1` ( ...@@ -111,8 +111,8 @@ v1 CREATE TEMPORARY TABLE `v1` (
`A` varchar(19) NOT NULL DEFAULT '' `A` varchar(19) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create view v1; show create view v1;
View Create View View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'This is view' AS `A` v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'This is view' AS `A` latin1 latin1_swedish_ci
drop view v1; drop view v1;
select * from v1; select * from v1;
A A
......
...@@ -32,9 +32,9 @@ Warnings: ...@@ -32,9 +32,9 @@ Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger. Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name; SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
NULL mysqltest_db1 wl2818_trg1 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW NULL NULL mysqltest_db1 wl2818_trg1 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW NULL latin1 latin1_swedish_ci latin1_swedish_ci
NULL mysqltest_db1 wl2818_trg2 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW NULL mysqltest_dfn@localhost NULL mysqltest_db1 wl2818_trg2 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW NULL mysqltest_dfn@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER wl2818_trg1; DROP TRIGGER wl2818_trg1;
Warnings: Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger. Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
......
...@@ -137,9 +137,9 @@ Note 1449 There is no 'mysqltest_nonexs'@'localhost' registered ...@@ -137,9 +137,9 @@ Note 1449 There is no 'mysqltest_nonexs'@'localhost' registered
INSERT INTO t1 VALUES(6); INSERT INTO t1 VALUES(6);
ERROR HY000: There is no 'mysqltest_nonexs'@'localhost' registered ERROR HY000: There is no 'mysqltest_nonexs'@'localhost' registered
SHOW TRIGGERS; SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trg1 INSERT t1 SET @new_sum = 0 BEFORE NULL mysqltest_inv@localhost trg1 INSERT t1 SET @new_sum = 0 BEFORE NULL mysqltest_inv@localhost latin1 latin1_swedish_ci latin1_swedish_ci
trg2 INSERT t1 SET @new_sum = 0 AFTER NULL mysqltest_nonexs@localhost trg2 INSERT t1 SET @new_sum = 0 AFTER NULL mysqltest_nonexs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER trg1; DROP TRIGGER trg1;
DROP TRIGGER trg2; DROP TRIGGER trg2;
CREATE TRIGGER trg1 BEFORE INSERT ON t1 CREATE TRIGGER trg1 BEFORE INSERT ON t1
...@@ -169,12 +169,12 @@ Warnings: ...@@ -169,12 +169,12 @@ Warnings:
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger. Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name; SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
NULL mysqltest_db1 trg1 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NULL NULL mysqltest_db1 trg1 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NULL latin1 latin1_swedish_ci latin1_swedish_ci
NULL mysqltest_db1 trg2 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW NULL @ NULL mysqltest_db1 trg2 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW NULL @ latin1 latin1_swedish_ci latin1_swedish_ci
NULL mysqltest_db1 trg3 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW NULL @abc@def@@ NULL mysqltest_db1 trg3 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW NULL @abc@def@@ latin1 latin1_swedish_ci latin1_swedish_ci
NULL mysqltest_db1 trg4 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW NULL @hostname NULL mysqltest_db1 trg4 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW NULL @hostname latin1 latin1_swedish_ci latin1_swedish_ci
NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW NULL @abcdef@@@hostname NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW NULL @abcdef@@@hostname latin1 latin1_swedish_ci latin1_swedish_ci
---> connection: default ---> connection: default
DROP USER mysqltest_dfn@localhost; DROP USER mysqltest_dfn@localhost;
......
...@@ -600,9 +600,9 @@ select @a; ...@@ -600,9 +600,9 @@ select @a;
@a @a
10 10
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
t1_bi INSERT t1 set new."t1 column" = 5 BEFORE # REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI root@localhost t1_bi INSERT t1 set new."t1 column" = 5 BEFORE # REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
t1_af INSERT t1 set @a=10 AFTER # root@localhost t1_af INSERT t1 set @a=10 AFTER # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop table t1; drop table t1;
set sql_mode="traditional"; set sql_mode="traditional";
create table t1 (a date); create table t1 (a date);
...@@ -622,8 +622,8 @@ t1 CREATE TABLE `t1` ( ...@@ -622,8 +622,8 @@ t1 CREATE TABLE `t1` (
`a` date DEFAULT NULL `a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
show triggers; show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
t1_bi INSERT t1 set new.a = '2004-01-00' BEFORE # root@localhost t1_bi INSERT t1 set new.a = '2004-01-00' BEFORE # root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop table t1; drop table t1;
create table t1 (id int); create table t1 (id int);
create trigger t1_ai after insert on t1 for each row reset query cache; create trigger t1_ai after insert on t1 for each row reset query cache;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -185,7 +185,30 @@ set names cp1251; ...@@ -185,7 +185,30 @@ set names cp1251;
create event 21 on schedule every '50:23:59:95' day_second COMMENT ' 1251 ' do select 1; create event 21 on schedule every '50:23:59:95' day_second COMMENT ' 1251 ' do select 1;
--replace_regex /STARTS '[^']+'/STARTS '#'/ --replace_regex /STARTS '[^']+'/STARTS '#'/
SHOW CREATE EVENT 21; SHOW CREATE EVENT 21;
insert into mysql.event (db, name, body, definer, interval_value, interval_field, originator) values (database(), "root22", "select 1", user(), 100, "SECOND_MICROSECOND", 1); insert into mysql.event (
db,
name,
body,
definer,
interval_value,
interval_field,
originator,
character_set_client,
collation_connection,
db_collation,
body_utf8)
values (
database(),
"root22",
"select 1",
user(),
100,
"SECOND_MICROSECOND",
1,
'utf8',
'utf8_general_ci',
'utf8_general_ci',
'select 1');
--error ER_NOT_SUPPORTED_YET --error ER_NOT_SUPPORTED_YET
show create event root22; show create event root22;
--error ER_NOT_SUPPORTED_YET --error ER_NOT_SUPPORTED_YET
......
...@@ -825,7 +825,7 @@ drop table t1; ...@@ -825,7 +825,7 @@ drop table t1;
use mysql; use mysql;
INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL', INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL',
'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03', 'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03',
'2006-03-02 18:40:03','',''); '2006-03-02 18:40:03','','','utf8','utf8_general_ci','utf8_general_ci','n/a');
select routine_name from information_schema.routines; select routine_name from information_schema.routines;
delete from proc where name=''; delete from proc where name='';
use test; use test;
......
...@@ -414,6 +414,10 @@ prepare stmt1 from ' execute stmt2 ' ; ...@@ -414,6 +414,10 @@ prepare stmt1 from ' execute stmt2 ' ;
--error ER_UNSUPPORTED_PS --error ER_UNSUPPORTED_PS
prepare stmt1 from ' deallocate prepare never_prepared ' ; prepare stmt1 from ' deallocate prepare never_prepared ' ;
## We don't support alter view as prepared statements
--error ER_UNSUPPORTED_PS
prepare stmt1 from 'alter view v1 as select 2';
## switch the database connection ## switch the database connection
--error ER_UNSUPPORTED_PS --error ER_UNSUPPORTED_PS
prepare stmt4 from ' use test ' ; prepare stmt4 from ' use test ' ;
......
...@@ -599,4 +599,55 @@ set names latin1; ...@@ -599,4 +599,55 @@ set names latin1;
--error ER_NO_SUCH_TABLE,ER_FILE_NOT_FOUND --error ER_NO_SUCH_TABLE,ER_FILE_NOT_FOUND
show columns from `#mysql50#????????`; show columns from `#mysql50#????????`;
#
# SHOW CREATE TRIGGER test.
#
# Prepare.
--disable_warnings
DROP TABLE IF EXISTS t1;
DROP PROCEDURE IF EXISTS p1;
--enable_warnings
CREATE TABLE t1(c1 INT);
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
# Test.
SHOW CREATE TRIGGER t1_bi;
CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi;
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
CALL p1();
PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi';
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
EXECUTE stmt1;
# Cleanup.
DROP TABLE t1;
DROP PROCEDURE p1;
DEALLOCATE PREPARE stmt1;
--echo End of 5.1 tests --echo End of 5.1 tests
...@@ -94,26 +94,33 @@ insert into mysql.proc ...@@ -94,26 +94,33 @@ insert into mysql.proc
( (
db, name, type, specific_name, language, sql_data_access, is_deterministic, db, name, type, specific_name, language, sql_data_access, is_deterministic,
security_type, param_list, returns, body, definer, created, modified, security_type, param_list, returns, body, definer, created, modified,
sql_mode, comment sql_mode, comment, character_set_client, collation_connection, db_collation,
body_utf8
) )
values values
( (
'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO', 'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)', 'DEFINER', '', 'int(10)',
'select count(*) from mysql.user', 'select count(*) from mysql.user',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'select count(*) from mysql.user'
), ),
( (
'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO', 'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
'DEFINER', '', 'int(10)', 'DEFINER', '', 'int(10)',
'begin declare x int; select count(*) into x from mysql.user; end', 'begin declare x int; select count(*) into x from mysql.user; end',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'begin declare x int; select count(*) into x from mysql.user; end'
), ),
( (
'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO', 'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
'DEFINER', '', '', 'DEFINER', '', '',
'alksj wpsj sa ^#!@ ', 'alksj wpsj sa ^#!@ ',
'root@localhost', NOW() , '0000-00-00 00:00:00', '', '' 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '',
'', '', '',
'alksj wpsj sa ^#!@ '
); );
--error ER_SP_PROC_TABLE_CORRUPT --error ER_SP_PROC_TABLE_CORRUPT
......
...@@ -85,7 +85,7 @@ call p1()| ...@@ -85,7 +85,7 @@ call p1()|
call p1()| call p1()|
drop procedure p1| drop procedure p1|
# #
# D. Create/Drop a table (a DDL that issues a commit) in Dynamic SQL. # D. Create/Drop/Alter a table (a DDL that issues a commit) in Dynamic SQL.
# (should work ok). # (should work ok).
# #
create procedure p1() create procedure p1()
...@@ -96,6 +96,10 @@ begin ...@@ -96,6 +96,10 @@ begin
execute stmt; execute stmt;
insert into t1 (a) values (1); insert into t1 (a) values (1);
select * from t1; select * from t1;
prepare stmt_alter from "alter table t1 add (b int)";
execute stmt_alter;
insert into t1 (a,b) values (2,1);
deallocate prepare stmt_alter;
deallocate prepare stmt; deallocate prepare stmt;
deallocate prepare stmt_drop; deallocate prepare stmt_drop;
end| end|
...@@ -239,6 +243,7 @@ drop procedure p1| ...@@ -239,6 +243,7 @@ drop procedure p1|
# K. Use of continue handlers with Dynamic SQL. # K. Use of continue handlers with Dynamic SQL.
# #
drop table if exists t1| drop table if exists t1|
drop table if exists t2|
create table t1 (id integer primary key auto_increment, create table t1 (id integer primary key auto_increment,
stmt_text char(35), status varchar(20))| stmt_text char(35), status varchar(20))|
insert into t1 (stmt_text) values insert into t1 (stmt_text) values
...@@ -249,7 +254,10 @@ insert into t1 (stmt_text) values ...@@ -249,7 +254,10 @@ insert into t1 (stmt_text) values
("help help"), ("show databases"), ("show tables"), ("help help"), ("show databases"), ("show tables"),
("show table status"), ("show open tables"), ("show storage engines"), ("show table status"), ("show open tables"), ("show storage engines"),
("insert into t1 (id) values (1)"), ("update t1 set status=''"), ("insert into t1 (id) values (1)"), ("update t1 set status=''"),
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")| ("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
("create view v1 as select 1"), ("alter view v1 as select 2"),
("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
("drop table t2")|
create procedure p1() create procedure p1()
begin begin
declare v_stmt_text varchar(255); declare v_stmt_text varchar(255);
......
This diff is collapsed.
...@@ -6331,7 +6331,7 @@ set names utf8| ...@@ -6331,7 +6331,7 @@ set names utf8|
drop database if exists това_е_дълго_име_за_база_данни_нали| drop database if exists това_е_дълго_име_за_база_данни_нали|
--enable_warnings --enable_warnings
create database това_е_дълго_име_за_база_данни_нали| create database това_е_дълго_име_за_база_данни_нали|
INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','')| INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','', 'utf8', 'utf8_general_ci', 'utf8_general_ci', 'n/a')|
--error ER_SP_PROC_TABLE_CORRUPT --error ER_SP_PROC_TABLE_CORRUPT
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()| call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
drop database това_е_дълго_име_за_база_данни_нали| drop database това_е_дълго_име_за_база_данни_нали|
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -3728,7 +3728,7 @@ bool mysql_unpack_partition(THD *thd, ...@@ -3728,7 +3728,7 @@ bool mysql_unpack_partition(THD *thd,
lex.part_info->part_state= part_state; lex.part_info->part_state= part_state;
lex.part_info->part_state_len= part_state_len; lex.part_info->part_state_len= part_state_len;
DBUG_PRINT("info", ("Parse: %s", part_buf)); DBUG_PRINT("info", ("Parse: %s", part_buf));
if (parse_sql(thd, &lip)) if (parse_sql(thd, &lip, NULL))
{ {
thd->free_items(); thd->free_items();
goto end; goto end;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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