mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +03:00
The feature was backported from MySQL 5.6.
Some code was added to make commands as
SELECT * FROM ignored_db.t1;
CALL ignored_db.proc();
USE ignored_db;
to take that option into account.
per-file comments:
mysql-test/r/ignore_db_dirs_basic.result
test result added.
mysql-test/t/ignore_db_dirs_basic-master.opt
options for the test,
actually the set of --ignore-db-dir lines.
mysql-test/t/ignore_db_dirs_basic.test
test for the feature.
Same test from 5.6 was taken as a basis,
then tests for SELECT, CALL etc were added.
per-file comments:
sql/mysql_priv.h
MDEV-495 backport --ignore-db-dir.
interface for db_name_is_in_ignore_list() added.
sql/mysqld.cc
MDEV-495 backport --ignore-db-dir.
--ignore-db-dir handling.
sql/set_var.cc
MDEV-495 backport --ignore-db-dir.
the @@ignore_db_dirs variable added.
sql/sql_show.cc
MDEV-495 backport --ignore-db-dir.
check if the directory is ignored.
sql/sql_show.h
MDEV-495 backport --ignore-db-dir.
interface added for opt_ignored_db_dirs.
sql/table.cc
MDEV-495 backport --ignore-db-dir.
check if the directory is ignored.
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
select @@ignore_db_dirs;
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
|
|
mkdir $MYSQLD_DATADIR/.mysqlgui;
|
|
mkdir $MYSQLD_DATADIR/.otherdir;
|
|
mkdir $MYSQLD_DATADIR/lost+found;
|
|
mkdir $MYSQLD_DATADIR/ignored_db;
|
|
--echo # Check that SHOW DATABASES ignores all directories from
|
|
--echo # @@ignore_db_dirs and all directories with names starting
|
|
--echo # with '.'
|
|
SHOW DATABASES;
|
|
--error ER_WRONG_DB_NAME
|
|
USE ignored_db;
|
|
--error ER_WRONG_DB_NAME
|
|
SELECT * FROM ignored_db.t1;
|
|
--error ER_WRONG_DB_NAME
|
|
CALL ignored_db.p1();
|
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='ignored_db';
|
|
--error ER_WRONG_DB_NAME
|
|
CREATE DATABASE ignored_db;
|
|
CREATE DATABASE `lost+found`;
|
|
USE `lost+found`;
|
|
CREATE TABLE t1(id INT);
|
|
INSERT INTO t1 VALUES (1), (2);
|
|
SELECT * FROM `lost+found`.t1;
|
|
SHOW DATABASES;
|
|
DROP DATABASE `lost+found`;
|
|
rmdir $MYSQLD_DATADIR/.mysqlgui;
|
|
rmdir $MYSQLD_DATADIR/.otherdir;
|
|
rmdir $MYSQLD_DATADIR/lost+found;
|
|
rmdir $MYSQLD_DATADIR/ignored_db;
|
|
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
SET @@global.ignore_db_dirs = 'aha';
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
SET @@local.ignore_db_dirs = 'aha';
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
SET @@ignore_db_dirs = 'aha';
|