mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Merge with 5.1
This commit is contained in:
commit
66b3e82953
9 changed files with 397 additions and 189 deletions
|
@ -1,4 +1,5 @@
|
|||
drop table if exists t1,t2,t3;
|
||||
drop view if exists v1,v2;
|
||||
CREATE TABLE t1 (S1 INT);
|
||||
CREATE TABLE t2 (S1 INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
@ -1220,4 +1221,22 @@ f1
|
|||
2
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug LP:798597: Incorrect "Duplicate entry" error with views and
|
||||
# GROUP BY
|
||||
#
|
||||
CREATE TABLE t1 ( f1 int NOT NULL , f2 int NOT NULL ) ;
|
||||
INSERT INTO t1 VALUES (214,0),(6,6);
|
||||
CREATE TABLE t2 ( f2 int) ;
|
||||
INSERT INTO t2 VALUES (88),(88);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT t1.f1, t2.f2 FROM (t2 LEFT JOIN t1 ON (t2.f2 <> t1.f1)) WHERE (t1.f2 <= 0) ;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT t1.f1, t2.f2 FROM (t2 LEFT JOIN t1 ON (t2.f2 <> t1.f1)) WHERE (t1.f2 <= 0 or t1.f2 is null) ;
|
||||
SELECT f1 , MIN(f2) FROM v1 GROUP BY f1;
|
||||
f1 MIN(f2)
|
||||
214 88
|
||||
SELECT f1 , MIN(f2) FROM v2 GROUP BY f1;
|
||||
f1 MIN(f2)
|
||||
214 88
|
||||
drop table t1,t2;
|
||||
drop view v1,v2;
|
||||
End of 5.1 tests
|
||||
|
|
11
mysql-test/r/plugin_innodb.result
Normal file
11
mysql-test/r/plugin_innodb.result
Normal file
|
@ -0,0 +1,11 @@
|
|||
install plugin example soname 'ha_example.so';
|
||||
create table t1(a int) engine=example;
|
||||
drop table t1;
|
||||
alter table mysql.plugin engine=innodb;
|
||||
restart
|
||||
create table t1(a int) engine=example;
|
||||
select * from t1;
|
||||
a
|
||||
drop table t1;
|
||||
alter table mysql.plugin engine=myisam;
|
||||
uninstall plugin example;
|
|
@ -29,28 +29,29 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
|
|||
`COMMAND` varchar(16) NOT NULL DEFAULT '',
|
||||
`TIME` int(7) NOT NULL DEFAULT '0',
|
||||
`STATE` varchar(64) DEFAULT NULL,
|
||||
`INFO` longtext
|
||||
`INFO` longtext,
|
||||
`TIME_MS` decimal(22,3) NOT NULL DEFAULT '0.000'
|
||||
) DEFAULT CHARSET=utf8
|
||||
SHOW processlist;
|
||||
Id User Host db Command Time State Info
|
||||
ID root HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
SELECT * FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID root HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID root HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID root HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID root HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS FROM processlist ORDER BY id TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
|
||||
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
|
||||
INSERT INTO processlist SELECT * FROM test.t_processlist;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE test.t_processlist;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS) AS SELECT * FROM processlist WITH CHECK OPTION;
|
||||
ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS) AS SELECT * FROM processlist;
|
||||
UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP VIEW test.v_processlist;
|
||||
|
@ -99,25 +100,26 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
|
|||
`COMMAND` varchar(16) NOT NULL DEFAULT '',
|
||||
`TIME` int(7) NOT NULL DEFAULT '0',
|
||||
`STATE` varchar(64) DEFAULT NULL,
|
||||
`INFO` longtext
|
||||
`INFO` longtext,
|
||||
`TIME_MS` decimal(22,3) NOT NULL DEFAULT '0.000'
|
||||
) DEFAULT CHARSET=utf8
|
||||
SHOW processlist;
|
||||
Id User Host db Command Time State Info
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id
|
||||
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS
|
||||
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS FROM processlist ORDER BY id;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS FROM processlist ORDER BY id TIME_MS
|
||||
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
|
||||
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
|
||||
INSERT INTO processlist SELECT * FROM test.t_processlist;
|
||||
ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
|
||||
DROP TABLE test.t_processlist;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS) AS SELECT * FROM processlist WITH CHECK OPTION;
|
||||
ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
|
||||
CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS) AS SELECT * FROM processlist;
|
||||
UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
|
||||
ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
|
||||
DROP VIEW test.v_processlist;
|
||||
|
@ -170,8 +172,8 @@ SHOW processlist;
|
|||
Id User Host db Command Time State Info
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
####################################################################################
|
||||
4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
|
||||
SHOW/SELECT shows all processes/threads.
|
||||
|
@ -185,10 +187,10 @@ ID root HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
5 Grant PROCESS privilege to anonymous user.
|
||||
connection default (user=root)
|
||||
|
@ -209,11 +211,11 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
6 Revoke PROCESS privilege from ddicttestuser1
|
||||
connection default (user=root)
|
||||
|
@ -233,10 +235,10 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
7 Revoke PROCESS privilege from anonymous user
|
||||
connection default (user=root)
|
||||
|
@ -251,9 +253,9 @@ SHOW GRANTS FOR ''@'localhost';
|
|||
Grants for @localhost
|
||||
GRANT USAGE ON *.* TO ''@'localhost'
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
|
||||
connection default (user=root)
|
||||
|
@ -273,11 +275,11 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
9 Revoke SUPER privilege from user ddicttestuser1
|
||||
connection default (user=root)
|
||||
|
@ -299,12 +301,12 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
10 Grant SUPER privilege with grant option to user ddicttestuser1.
|
||||
connection default (user=root)
|
||||
|
@ -353,18 +355,18 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser2 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
11 User ddicttestuser1 revokes PROCESS privilege from user ddicttestuser2
|
||||
connection ddicttestuser1;
|
||||
|
@ -382,9 +384,9 @@ Id User Host db Command Time State Info
|
|||
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser2 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
|
||||
connection default (user=root)
|
||||
|
@ -411,15 +413,15 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
12 Revoke the SELECT privilege from user ddicttestuser1
|
||||
connection default (user=root)
|
||||
|
@ -447,16 +449,16 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
|||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Query TIME NULL SHOW processlist
|
||||
SELECT * FROM information_schema.processlist;
|
||||
ID USER HOST DB COMMAND TIME STATE INFO
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL
|
||||
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
|
||||
####################################################################################
|
||||
12.2 Revoke only the SELECT privilege on the information_schema from ddicttestuser1.
|
||||
connection default (user=root)
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,7 @@
|
|||
# Initialization
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
drop view if exists v1,v2;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
|
@ -921,4 +922,21 @@ EXECUTE stmt;
|
|||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug LP:798597: Incorrect "Duplicate entry" error with views and
|
||||
--echo # GROUP BY
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 ( f1 int NOT NULL , f2 int NOT NULL ) ;
|
||||
INSERT INTO t1 VALUES (214,0),(6,6);
|
||||
CREATE TABLE t2 ( f2 int) ;
|
||||
INSERT INTO t2 VALUES (88),(88);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT t1.f1, t2.f2 FROM (t2 LEFT JOIN t1 ON (t2.f2 <> t1.f1)) WHERE (t1.f2 <= 0) ;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT t1.f1, t2.f2 FROM (t2 LEFT JOIN t1 ON (t2.f2 <> t1.f1)) WHERE (t1.f2 <= 0 or t1.f2 is null) ;
|
||||
SELECT f1 , MIN(f2) FROM v1 GROUP BY f1;
|
||||
SELECT f1 , MIN(f2) FROM v2 GROUP BY f1;
|
||||
drop table t1,t2;
|
||||
drop view v1,v2;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
27
mysql-test/t/plugin_innodb.test
Normal file
27
mysql-test/t/plugin_innodb.test
Normal file
|
@ -0,0 +1,27 @@
|
|||
--source include/not_embedded.inc
|
||||
--source include/have_example_plugin.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
if (!`select count(*) from information_schema.plugins
|
||||
where plugin_name = 'innodb' and plugin_status = 'active' and
|
||||
plugin_library is null`) {
|
||||
skip Need compiled-in InnoDB;
|
||||
}
|
||||
|
||||
|
||||
--replace_regex /\.dll/.so/
|
||||
eval install plugin example soname '$HA_EXAMPLE_SO';
|
||||
create table t1(a int) engine=example;
|
||||
drop table t1;
|
||||
|
||||
alter table mysql.plugin engine=innodb;
|
||||
--echo restart
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
create table t1(a int) engine=example;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
alter table mysql.plugin engine=myisam;
|
||||
uninstall plugin example;
|
||||
|
|
@ -1432,15 +1432,23 @@ int plugin_init(int *argc, char **argv, int flags)
|
|||
if (register_builtin(plugin, &tmp, &plugin_ptr))
|
||||
goto err_unlock;
|
||||
|
||||
/* only initialize MyISAM and CSV at this stage */
|
||||
if (!(is_myisam=
|
||||
!my_strcasecmp(&my_charset_latin1, plugin->name, "MyISAM")) &&
|
||||
my_strcasecmp(&my_charset_latin1, plugin->name, "CSV"))
|
||||
continue;
|
||||
is_myisam= !my_strcasecmp(&my_charset_latin1, plugin->name, "MyISAM");
|
||||
|
||||
if (plugin_ptr->state == PLUGIN_IS_UNINITIALIZED &&
|
||||
plugin_initialize(plugin_ptr))
|
||||
goto err_unlock;
|
||||
/*
|
||||
strictly speaking, we should to initialize all plugins,
|
||||
even for mysqld --help, because important subsystems
|
||||
may be disabled otherwise, and the help will be incomplete.
|
||||
For example, if the mysql.plugin table is not MyISAM.
|
||||
But for now it's an unlikely corner case, and to optimize
|
||||
mysqld --help for all other users, we will only initialize
|
||||
MyISAM here.
|
||||
*/
|
||||
if (!(flags & PLUGIN_INIT_SKIP_INITIALIZATION) || is_myisam)
|
||||
{
|
||||
if (plugin_ptr->state == PLUGIN_IS_UNINITIALIZED &&
|
||||
plugin_initialize(plugin_ptr))
|
||||
goto err_unlock;
|
||||
}
|
||||
|
||||
/*
|
||||
initialize the global default storage engine so that it may
|
||||
|
@ -1650,13 +1658,6 @@ static void plugin_load(MEM_ROOT *tmp_root, int *argc, char **argv)
|
|||
goto end;
|
||||
}
|
||||
table->use_all_columns();
|
||||
/*
|
||||
there're no other threads running yet, so we don't need a mutex.
|
||||
but plugin_add() before is designed to work in multi-threaded
|
||||
environment, and it uses safe_mutex_assert_owner(), so we lock
|
||||
the mutex here to satisfy the assert
|
||||
*/
|
||||
pthread_mutex_lock(&LOCK_plugin);
|
||||
while (!(error= read_record_info.read_record(&read_record_info)))
|
||||
{
|
||||
DBUG_PRINT("info", ("init plugin record"));
|
||||
|
@ -1667,12 +1668,19 @@ static void plugin_load(MEM_ROOT *tmp_root, int *argc, char **argv)
|
|||
LEX_STRING name= {(char *)str_name.ptr(), str_name.length()};
|
||||
LEX_STRING dl= {(char *)str_dl.ptr(), str_dl.length()};
|
||||
|
||||
/*
|
||||
there're no other threads running yet, so we don't need a mutex.
|
||||
but plugin_add() before is designed to work in multi-threaded
|
||||
environment, and it uses safe_mutex_assert_owner(), so we lock
|
||||
the mutex here to satisfy the assert
|
||||
*/
|
||||
pthread_mutex_lock(&LOCK_plugin);
|
||||
if (plugin_add(tmp_root, &name, &dl, argc, argv, REPORT_TO_LOG))
|
||||
sql_print_warning("Couldn't load plugin named '%s' with soname '%s'.",
|
||||
str_name.c_ptr(), str_dl.c_ptr());
|
||||
free_root(tmp_root, MYF(MY_MARK_BLOCKS_FREE));
|
||||
pthread_mutex_unlock(&LOCK_plugin);
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_plugin);
|
||||
if (error > 0)
|
||||
sql_print_error(ER(ER_GET_ERRNO), my_errno);
|
||||
end_read_record(&read_record_info);
|
||||
|
|
|
@ -10645,15 +10645,30 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
|||
(ha_base_keytype) key_part_info->type == HA_KEYTYPE_VARTEXT1 ||
|
||||
(ha_base_keytype) key_part_info->type == HA_KEYTYPE_VARTEXT2) ?
|
||||
0 : FIELDFLAG_BINARY;
|
||||
|
||||
if (!using_unique_constraint)
|
||||
{
|
||||
cur_group->buff=(char*) group_buff;
|
||||
|
||||
if (maybe_null && !field->null_bit)
|
||||
{
|
||||
/*
|
||||
This can only happen in the unusual case where an outer join
|
||||
table was found to be not-nullable by the optimizer and we
|
||||
the item can't really be null.
|
||||
We solve this by marking the item as !maybe_null to ensure
|
||||
that the key,field and item definition match.
|
||||
*/
|
||||
(*cur_group->item)->maybe_null= maybe_null= 0;
|
||||
}
|
||||
|
||||
if (!(cur_group->field= field->new_key_field(thd->mem_root,table,
|
||||
group_buff +
|
||||
test(maybe_null),
|
||||
field->null_ptr,
|
||||
field->null_bit)))
|
||||
goto err; /* purecov: inspected */
|
||||
|
||||
if (maybe_null)
|
||||
{
|
||||
/*
|
||||
|
@ -10675,6 +10690,12 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
|||
}
|
||||
keyinfo->key_length+= key_part_info->length;
|
||||
}
|
||||
/*
|
||||
Ensure we didn't overrun the group buffer. The < is only true when
|
||||
some maybe_null fields was changed to be not null fields.
|
||||
*/
|
||||
DBUG_ASSERT(using_unique_constraint ||
|
||||
group_buff <= param->group_buff + param->group_length);
|
||||
}
|
||||
|
||||
if (distinct && field_count != param->hidden_field_count)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#undef DBUG_OFF
|
||||
#endif
|
||||
#ifndef SAFEMALLOC
|
||||
#define SAFEMALLOC
|
||||
#define SAFEMALLOC 1
|
||||
#endif
|
||||
|
||||
#include "heapdef.h" /* Because of hp_find_block */
|
||||
|
|
Loading…
Reference in a new issue