Cherry-picking WL#5710 from mysql-5.5 to mysql-5.5.16-release.

Original revision id:
# revno: 3489 [merge]
# revision-id: tatjana.nuernberg@oracle.com-20110811120945-c6x9a5d2du8s9oj2
# parent: tatjana.nuernberg@oracle.com-20110811112736-so8r813hs8dmf7nr
# parent: chuck.bell@oracle.com-20110810183949-2s9uxcuoux2p668e
# committer: Tatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>
# branch nick: 55-9
# timestamp: Thu 2011-08-11 13:09:45 +0100
# message:
#   auto-merge

This merge revision also has a patch for Bug 12664445, which has been also
taken to 5.5.16.
This commit is contained in:
Alexander Nozdrin 2011-08-15 18:29:38 +04:00
parent c8c3e9bd9b
commit 11c20be47e
22 changed files with 2218 additions and 95 deletions

View File

@ -54,6 +54,9 @@ ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs)
MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c)
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient)
MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c)
TARGET_LINK_LIBRARIES(mysql_plugin mysqlclient)
MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc)
TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient)
@ -69,7 +72,7 @@ IF(WIN32)
MYSQL_ADD_EXECUTABLE(echo echo.c)
ENDIF(WIN32)
SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap
SET_TARGET_PROPERTIES (mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysqlslap mysql_plugin
PROPERTIES HAS_CXX TRUE)
ADD_DEFINITIONS(-DHAVE_DLOPEN)

1192
client/mysql_plugin.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -603,6 +603,8 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define FN_LIBCHAR '\\'
#define FN_LIBCHAR2 '/'
#define FN_DIRSEP "/\\" /* Valid directory separators */
#define FN_EXEEXT ".exe"
#define FN_SOEXT ".dll"
#define FN_ROOTDIR "\\"
#define FN_DEVCHAR ':'
#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
@ -611,6 +613,8 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define FN_LIBCHAR '/'
#define FN_LIBCHAR2 '/'
#define FN_DIRSEP "/" /* Valid directory separators */
#define FN_EXEEXT ""
#define FN_SOEXT ".so"
#define FN_ROOTDIR "/"
#endif

View File

@ -0,0 +1,8 @@
#
# Plugin configuration file. Place the following on a separate line:
#
# library binary file name (without .so or .dll)
# component_name
# [component_name] - additional components in plugin
#
libdaemon_example

View File

@ -0,0 +1,9 @@
#
# Plugin configuration file. Place the following on a separate line:
#
# library binary file name (without .so or .dll)
# component_name
# [component_name] - additional components in plugin
#
libdaemon_BADNAME
daemon_BADNAME

View File

@ -39,3 +39,4 @@ ha_archive storage/archive ARCHIVE_PLUGIN
ha_blackhole storage/blackhole BLACKHOLE_PLUGIN
ha_federated storage/federated FEDERATED_PLUGIN
mypluglib plugin/fulltext SIMPLE_PARSER
libdaemon_example plugin/daemon_example DAEMONEXAMPLE

View File

@ -168,6 +168,7 @@ my $opt_suites;
our $opt_verbose= 0; # Verbose output, enable with --verbose
our $exe_mysql;
our $exe_mysql_plugin;
our $exe_mysqladmin;
our $exe_mysqltest;
our $exe_libtool;
@ -1950,6 +1951,7 @@ sub executable_setup () {
# Look for the client binaries
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
$exe_mysql_plugin= mtr_exe_exists("$path_client_bindir/mysql_plugin");
$exe_mysql_embedded= mtr_exe_maybe_exists("$basedir/libmysqld/examples/mysql_embedded");
@ -2357,6 +2359,7 @@ sub environment_setup {
$ENV{'MYSQLADMIN'}= native_path($exe_mysqladmin);
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
$ENV{'EXE_MYSQL'}= $exe_mysql;
$ENV{'MYSQL_PLUGIN'}= $exe_mysql_plugin;
$ENV{'MYSQL_EMBEDDED'}= $exe_mysql_embedded;
# ----------------------------------------------------

View File

@ -0,0 +1,110 @@
#
# Ensure the plugin isn't loaded.
#
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
name dl
#
# Enable the plugin...
#
#
# Ensure the plugin is now loaded.
#
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
name dl
daemon_example libdaemon_example.so
#
# Disable the plugin...
#
#
# Ensure the plugin isn't loaded.
#
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
name dl
#
# Attempt to load non-existant plugin
#
ERROR: Cannot read plugin config file NOT_THERE_AT_ALL. File does not exist.
#
# Attempt to use non-existant plugin.ini file
#
ERROR: Cannot read plugin config file daemon_example. File does not exist.
#
# Attempt to omit the plugin
#
ERROR: No plugin specified.
#
# Attempt to omit DISABLE|ENABLE
#
ERROR: missing operation. Please specify either '<plugin> ENABLE' or '<plugin> DISABLE'.
#
# Attempt to use bad paths - datadir
#
ERROR: Cannot access datadir at '/data_not_there/'.
#
# Attempt to use bad paths - basedir
#
ERROR: Cannot access basedir at '/basedir_not_there/'.
#
# Attempt to use bad paths - plugin_dir
#
ERROR: Cannot read plugin config file daemon_example. File does not exist.
#
# Attempt to use bad paths - mysqld
#
ERROR: Cannot access mysqld path '/mysqld_not_there/'.
#
# Attempt to use bad paths - my_print_defaults
#
ERROR: Cannot access my-print-defaults path '/my_print_defaults_not_there/'.
#
# Missing library
#
ERROR: The plugin library is missing or in a different location.
#
# Bad format for config file
#
ERROR: Cannot read plugin config file daemon_example. Bad format in plugin configuration file.
#
# Missing base_dir option
#
ERROR: Missing --basedir option.
#
# Missing data_dir option
#
ERROR: Missing --datadir option.
#
# Missing plugin_dir option
#
ERROR: Missing --plugin_dir option.
#
# Show the help.
#
mysql_plugin Ver V.V.VV Distrib XX.XX.XX
Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
Enable or disable plugins.
Usage: mysql_plugin [options] <plugin> ENABLE|DISABLE
Options:
-?, --help Display this help and exit.
-b, --basedir=name The basedir for the server.
-d, --datadir=name The datadir for the server.
-p, --plugin-dir=name
The plugin dir for the server.
-i, --plugin-ini=name
Read plugin information from configuration file specified
instead of from <plugin-dir>/<plugin_name>.ini.
-n, --no-defaults Do not read values from configuration file.
-P, --print-defaults
Show default values from configuration file.
-m, --mysqld=name Path to mysqld executable. Example: /sbin/temp1/mysql/bin
-f, --my-print-defaults=name
Path to my_print_defaults executable. Example:
/source/temp11/extra
-v, --verbose More verbose output; you can use this multiple times to
get even more verbose output.
-V, --version Output version information and exit.
mysql_plugin Ver V.V.VV Distrib XX.XX.XX

View File

@ -11,13 +11,7 @@ There should be *no* long test name listed below:
select variable_name as `There should be *no* variables listed below:` from t2
left join t1 on variable_name=test_name where test_name is null;
There should be *no* variables listed below:
INNODB_ROLLBACK_SEGMENTS
INNODB_STATS_METHOD
INNODB_FILE_FORMAT_MAX
INNODB_LARGE_PREFIX
INNODB_ROLLBACK_SEGMENTS
INNODB_STATS_METHOD
INNODB_FILE_FORMAT_MAX
INNODB_LARGE_PREFIX
drop table t1;
drop table t2;

View File

@ -1,59 +1,80 @@
SET @start_global_value = @@global.innodb_file_format_max;
SET @start_global_value = @@global.innodb_file_format_check;
SELECT @start_global_value;
@start_global_value
Antelope
Valid values are 'Antelope' and 'Barracuda'
select @@global.innodb_file_format_max in ('Antelope', 'Barracuda');
@@global.innodb_file_format_max in ('Antelope', 'Barracuda')
1
select @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope
select @@session.innodb_file_format_max;
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable
show global variables like 'innodb_file_format_max';
Valid values are 'ON' and 'OFF'
SELECT @@global.innodb_file_format_check in (0, 1);
@@global.innodb_file_format_check in (0, 1)
1
SELECT @@global.innodb_file_format_check;
@@global.innodb_file_format_check
1
SELECT @@session.innodb_file_format_check;
ERROR HY000: Variable 'innodb_file_format_check' is a GLOBAL variable
SHOW global variables LIKE 'innodb_file_format_check';
Variable_name Value
innodb_file_format_max Antelope
show session variables like 'innodb_file_format_max';
innodb_file_format_check ON
SHOW session variables LIKE 'innodb_file_format_check';
Variable_name Value
innodb_file_format_max Antelope
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
innodb_file_format_check ON
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_check';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
INNODB_FILE_FORMAT_CHECK ON
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_check';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
set global innodb_file_format_max='Antelope';
select @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
set @@global.innodb_file_format_max='Barracuda';
select @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Barracuda
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Barracuda
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Barracuda
set session innodb_file_format_max='Salmon';
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable and should be set with SET GLOBAL
set @@session.innodb_file_format_max='Salmon';
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable and should be set with SET GLOBAL
set global innodb_file_format_max=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_file_format_max'
set global innodb_file_format_max=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_file_format_max'
set global innodb_file_format_max='Salmon';
ERROR 42000: Variable 'innodb_file_format_max' can't be set to the value of 'Salmon'
SET @@global.innodb_file_format_max = @start_global_value;
SELECT @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope
INNODB_FILE_FORMAT_CHECK ON
SET @@global.innodb_file_format_check='Off';
ERROR HY000: Variable 'innodb_file_format_check' is a read only variable
Expected error 'Read only variable'
SET @@global.innodb_file_format_check=1;
ERROR HY000: Variable 'innodb_file_format_check' is a read only variable
Expected error 'Read only variable'
SET @@global.innodb_file_format_check=0;
ERROR HY000: Variable 'innodb_file_format_check' is a read only variable
Expected error 'Read only variable'
SET @@global.innodb_file_format_check='On';
ERROR HY000: Variable 'innodb_file_format_check' is a read only variable
Expected error 'Read only variable'
SET session innodb_large_prefix='OFF';
ERROR HY000: Variable 'innodb_large_prefix' is a GLOBAL variable and should be set with SET GLOBAL
SET @@session.innodb_stats_on_metadata='ON';
ERROR HY000: Variable 'innodb_stats_on_metadata' is a GLOBAL variable and should be set with SET GLOBAL
SELECT IF(@@GLOBAL.innodb_file_format_check, "ON", "OFF") = VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='innodb_file_format_check';
IF(@@GLOBAL.innodb_file_format_check, "ON", "OFF") = VARIABLE_VALUE
1
1 Expected
SELECT COUNT(@@GLOBAL.innodb_file_format_check);
COUNT(@@GLOBAL.innodb_file_format_check)
1
1 Expected
SELECT COUNT(VARIABLE_VALUE)
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='innodb_file_format_check';
COUNT(VARIABLE_VALUE)
1
1 Expected
SELECT @@innodb_file_format_check = @@GLOBAL.innodb_file_format_check;
@@innodb_file_format_check = @@GLOBAL.innodb_file_format_check
1
1 Expected
SELECT COUNT(@@innodb_file_format_check);
COUNT(@@innodb_file_format_check)
1
1 Expected
SELECT COUNT(@@local.innodb_file_format_check);
ERROR HY000: Variable 'innodb_file_format_check' is a GLOBAL variable
Expected error 'Variable is a GLOBAL variable'
SELECT COUNT(@@SESSION.innodb_file_format_check);
ERROR HY000: Variable 'innodb_file_format_check' is a GLOBAL variable
Expected error 'Variable is a GLOBAL variable'
SELECT COUNT(@@GLOBAL.innodb_file_format_check);
COUNT(@@GLOBAL.innodb_file_format_check)
1
1 Expected
SELECT innodb_file_format_check = @@SESSION.innodb_file_format_check;
ERROR 42S22: Unknown column 'innodb_file_format_check' in 'field list'
Expected error 'Readonly variable'

View File

@ -0,0 +1,65 @@
SET @start_global_value = @@global.innodb_file_format_max;
SELECT @start_global_value;
@start_global_value
Antelope
Valid values are 'Antelope' and 'Barracuda'
SELECT @@global.innodb_file_format_max in ('Antelope', 'Barracuda');
@@global.innodb_file_format_max in ('Antelope', 'Barracuda')
1
SELECT @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope
SELECT @@session.innodb_file_format_max;
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable
SHOW global variables LIKE 'innodb_file_format_max';
Variable_name Value
innodb_file_format_max Antelope
SHOW session variables LIKE 'innodb_file_format_max';
Variable_name Value
innodb_file_format_max Antelope
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
SET global innodb_file_format_max='Antelope';
SELECT @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Antelope
SET @@global.innodb_file_format_max='Barracuda';
SELECT @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Barracuda
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Barracuda
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_FILE_FORMAT_MAX Barracuda
SET session innodb_file_format_max='Salmon';
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable and should be set with SET GLOBAL
SET @@session.innodb_file_format_max='Salmon';
ERROR HY000: Variable 'innodb_file_format_max' is a GLOBAL variable and should be set with SET GLOBAL
SET global innodb_file_format_max=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_file_format_max'
SET global innodb_file_format_max=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_file_format_max'
SET global innodb_file_format_max='Salmon';
ERROR 42000: Variable 'innodb_file_format_max' can't be set to the value of 'Salmon'
SET @@global.innodb_file_format_max = @start_global_value;
SELECT @@global.innodb_file_format_max;
@@global.innodb_file_format_max
Antelope

View File

@ -0,0 +1,64 @@
SET @start_global_value = @@global.innodb_rollback_segments;
SELECT @start_global_value;
@start_global_value
128
Valid values are zero or above
SELECT @@global.innodb_rollback_segments >=0;
@@global.innodb_rollback_segments >=0
1
SELECT @@global.innodb_rollback_segments <=128;
@@global.innodb_rollback_segments <=128
1
SELECT @@global.innodb_rollback_segments;
@@global.innodb_rollback_segments
128
SELECT @@session.innodb_rollback_segments;
ERROR HY000: Variable 'innodb_rollback_segments' is a GLOBAL variable
SHOW global variables LIKE 'innodb_rollback_segments';
Variable_name Value
innodb_rollback_segments 128
SHOW session variables LIKE 'innodb_rollback_segments';
Variable_name Value
innodb_rollback_segments 128
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
VARIABLE_NAME VARIABLE_VALUE
INNODB_ROLLBACK_SEGMENTS 128
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_rollback_segments';
VARIABLE_NAME VARIABLE_VALUE
INNODB_ROLLBACK_SEGMENTS 128
SET global innodb_rollback_segments=100;
SELECT @@global.innodb_rollback_segments;
@@global.innodb_rollback_segments
100
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
VARIABLE_NAME VARIABLE_VALUE
INNODB_ROLLBACK_SEGMENTS 100
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_rollback_segments';
VARIABLE_NAME VARIABLE_VALUE
INNODB_ROLLBACK_SEGMENTS 100
SET session innodb_rollback_segments=1;
ERROR HY000: Variable 'innodb_rollback_segments' is a GLOBAL variable and should be set with SET GLOBAL
SET global innodb_rollback_segments=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_rollback_segments'
SET global innodb_rollback_segments=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_rollback_segments'
SET global innodb_rollback_segments="foo";
ERROR 42000: Incorrect argument type to variable 'innodb_rollback_segments'
SET global innodb_rollback_segments=-7;
Warnings:
Warning 1292 Truncated incorrect innodb_rollback_segments value: '-7'
SELECT @@global.innodb_rollback_segments;
@@global.innodb_rollback_segments
1
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
VARIABLE_NAME VARIABLE_VALUE
INNODB_ROLLBACK_SEGMENTS 1
SET @@global.innodb_rollback_segments = @start_global_value;
SELECT @@global.innodb_rollback_segments;
@@global.innodb_rollback_segments
128

View File

@ -0,0 +1,83 @@
SET @start_global_value = @@global.innodb_stats_method;
SELECT @start_global_value;
@start_global_value
nulls_equal
Valid values are 'nulls_equal', 'nulls_unequal', 'nulls_ignored'
SELECT @@global.innodb_stats_method in ('nulls_equal', 'nulls_unequal',
'nulls_ignored');
@@global.innodb_stats_method in ('nulls_equal', 'nulls_unequal',
'nulls_ignored')
1
SELECT @@global.innodb_stats_method;
@@global.innodb_stats_method
nulls_equal
SELECT @@session.innodb_stats_method;
ERROR HY000: Variable 'innodb_stats_method' is a GLOBAL variable
SHOW global variables LIKE 'innodb_stats_method';
Variable_name Value
innodb_stats_method nulls_equal
SHOW session variables LIKE 'innodb_stats_method';
Variable_name Value
innodb_stats_method nulls_equal
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_equal
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_equal
SET global innodb_stats_method='nulls_equal';
SELECT @@global.innodb_stats_method;
@@global.innodb_stats_method
nulls_equal
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_equal
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_equal
SET @@global.innodb_stats_method='nulls_unequal';
SELECT @@global.innodb_stats_method;
@@global.innodb_stats_method
nulls_unequal
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_unequal
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_unequal
SET global innodb_stats_method=2;
SELECT @@global.innodb_stats_method;
@@global.innodb_stats_method
nulls_ignored
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_ignored
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
VARIABLE_NAME VARIABLE_VALUE
INNODB_STATS_METHOD nulls_ignored
SET session innodb_stats_method='nulls_equal';
ERROR HY000: Variable 'innodb_stats_method' is a GLOBAL variable and should be set with SET GLOBAL
SET @@session.innodb_stats_method='nulls_ignored';
ERROR HY000: Variable 'innodb_stats_method' is a GLOBAL variable and should be set with SET GLOBAL
SET global innodb_stats_method=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_stats_method'
SET global innodb_stats_method=4;
ERROR 42000: Variable 'innodb_stats_method' can't be set to the value of '4'
SET global innodb_stats_method=-2;
ERROR 42000: Variable 'innodb_stats_method' can't be set to the value of '-2'
SET global innodb_stats_method=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_stats_method'
SET global innodb_stats_method='some';
ERROR 42000: Variable 'innodb_stats_method' can't be set to the value of 'some'
SET @@global.innodb_stats_method = @start_global_value;
SELECT @@global.innodb_stats_method;
@@global.innodb_stats_method
nulls_equal

View File

@ -1,55 +1,95 @@
# 2010-01-25 - Added
#
# 2011-08-02 - Added
#
--source include/not_embedded.inc
--source include/have_innodb.inc
SET @start_global_value = @@global.innodb_file_format_max;
SET @start_global_value = @@global.innodb_file_format_check;
SELECT @start_global_value;
#
# exists as global only
#
--echo Valid values are 'Antelope' and 'Barracuda'
select @@global.innodb_file_format_max in ('Antelope', 'Barracuda');
select @@global.innodb_file_format_max;
--echo Valid values are 'ON' and 'OFF'
SELECT @@global.innodb_file_format_check in (0, 1);
SELECT @@global.innodb_file_format_check;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
select @@session.innodb_file_format_max;
show global variables like 'innodb_file_format_max';
show session variables like 'innodb_file_format_max';
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
SELECT @@session.innodb_file_format_check;
SHOW global variables LIKE 'innodb_file_format_check';
SHOW session variables LIKE 'innodb_file_format_check';
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_check';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_check';
#
# show that it's writable
# show that it's read only
#
set global innodb_file_format_max='Antelope';
select @@global.innodb_file_format_max;
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
set @@global.innodb_file_format_max='Barracuda';
select @@global.innodb_file_format_max;
select * from information_schema.global_variables where variable_name='innodb_file_format_max';
select * from information_schema.session_variables where variable_name='innodb_file_format_max';
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SET @@global.innodb_file_format_check='Off';
--echo Expected error 'Read only variable'
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SET @@global.innodb_file_format_check=1;
--echo Expected error 'Read only variable'
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SET @@global.innodb_file_format_check=0;
--echo Expected error 'Read only variable'
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SET @@global.innodb_file_format_check='On';
--echo Expected error 'Read only variable'
--error ER_GLOBAL_VARIABLE
set session innodb_file_format_max='Salmon';
SET session innodb_large_prefix='OFF';
--error ER_GLOBAL_VARIABLE
set @@session.innodb_file_format_max='Salmon';
SET @@session.innodb_stats_on_metadata='ON';
#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
set global innodb_file_format_max=1.1;
--error ER_WRONG_TYPE_FOR_VAR
set global innodb_file_format_max=1e1;
--error ER_WRONG_VALUE_FOR_VAR
set global innodb_file_format_max='Salmon';
#
# Cleanup
# Check if the value in GLOBAL Table matches value in variable
#
SET @@global.innodb_file_format_max = @start_global_value;
SELECT @@global.innodb_file_format_max;
SELECT IF(@@GLOBAL.innodb_file_format_check, "ON", "OFF") = VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='innodb_file_format_check';
--echo 1 Expected
SELECT COUNT(@@GLOBAL.innodb_file_format_check);
--echo 1 Expected
SELECT COUNT(VARIABLE_VALUE)
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='innodb_file_format_check';
--echo 1 Expected
#
# Check if accessing variable with and without GLOBAL point to same variable
#
SELECT @@innodb_file_format_check = @@GLOBAL.innodb_file_format_check;
--echo 1 Expected
#
# Check if innodb_doublewrite can be accessed with and without @@ sign
#
SELECT COUNT(@@innodb_file_format_check);
--echo 1 Expected
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT COUNT(@@local.innodb_file_format_check);
--echo Expected error 'Variable is a GLOBAL variable'
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT COUNT(@@SESSION.innodb_file_format_check);
--echo Expected error 'Variable is a GLOBAL variable'
SELECT COUNT(@@GLOBAL.innodb_file_format_check);
--echo 1 Expected
--Error ER_BAD_FIELD_ERROR
SELECT innodb_file_format_check = @@SESSION.innodb_file_format_check;
--echo Expected error 'Readonly variable'

View File

@ -0,0 +1,60 @@
#
# 2011-08-02 - Added
#
--source include/not_embedded.inc
--source include/have_innodb.inc
SET @start_global_value = @@global.innodb_file_format_max;
SELECT @start_global_value;
#
# exists as global only
#
--echo Valid values are 'Antelope' and 'Barracuda'
SELECT @@global.innodb_file_format_max in ('Antelope', 'Barracuda');
SELECT @@global.innodb_file_format_max;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.innodb_file_format_max;
SHOW global variables LIKE 'innodb_file_format_max';
SHOW session variables LIKE 'innodb_file_format_max';
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
#
# show that it's writable
#
SET global innodb_file_format_max='Antelope';
SELECT @@global.innodb_file_format_max;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
SET @@global.innodb_file_format_max='Barracuda';
SELECT @@global.innodb_file_format_max;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_file_format_max';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_file_format_max';
--error ER_GLOBAL_VARIABLE
SET session innodb_file_format_max='Salmon';
--error ER_GLOBAL_VARIABLE
SET @@session.innodb_file_format_max='Salmon';
#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_file_format_max=1.1;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_file_format_max=1e1;
--error ER_WRONG_VALUE_FOR_VAR
SET global innodb_file_format_max='Salmon';
#
# Cleanup
#
SET @@global.innodb_file_format_max = @start_global_value;
SELECT @@global.innodb_file_format_max;

View File

@ -0,0 +1,58 @@
#
# 2011-08-01 Added
#
--source include/have_innodb.inc
SET @start_global_value = @@global.innodb_rollback_segments;
SELECT @start_global_value;
#
# exists as global only
#
--echo Valid values are zero or above
SELECT @@global.innodb_rollback_segments >=0;
SELECT @@global.innodb_rollback_segments <=128;
SELECT @@global.innodb_rollback_segments;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.innodb_rollback_segments;
SHOW global variables LIKE 'innodb_rollback_segments';
SHOW session variables LIKE 'innodb_rollback_segments';
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_rollback_segments';
#
# show that it's writable
#
SET global innodb_rollback_segments=100;
SELECT @@global.innodb_rollback_segments;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_rollback_segments';
--error ER_GLOBAL_VARIABLE
SET session innodb_rollback_segments=1;
#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_rollback_segments=1.1;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_rollback_segments=1e1;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_rollback_segments="foo";
SET global innodb_rollback_segments=-7;
SELECT @@global.innodb_rollback_segments;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_rollback_segments';
#
# cleanup
#
SET @@global.innodb_rollback_segments = @start_global_value;
SELECT @@global.innodb_rollback_segments;

View File

@ -0,0 +1,72 @@
#
# 2011-08-05 - Added
#
--source include/have_innodb.inc
SET @start_global_value = @@global.innodb_stats_method;
SELECT @start_global_value;
#
# exists as global only
#
--echo Valid values are 'nulls_equal', 'nulls_unequal', 'nulls_ignored'
SELECT @@global.innodb_stats_method in ('nulls_equal', 'nulls_unequal',
'nulls_ignored');
SELECT @@global.innodb_stats_method;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.innodb_stats_method;
SHOW global variables LIKE 'innodb_stats_method';
SHOW session variables LIKE 'innodb_stats_method';
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
#
# show that it's writable
#
SET global innodb_stats_method='nulls_equal';
SELECT @@global.innodb_stats_method;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
SET @@global.innodb_stats_method='nulls_unequal';
SELECT @@global.innodb_stats_method;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
SET global innodb_stats_method=2;
SELECT @@global.innodb_stats_method;
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_stats_method';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_stats_method';
--error ER_GLOBAL_VARIABLE
SET session innodb_stats_method='nulls_equal';
--error ER_GLOBAL_VARIABLE
SET @@session.innodb_stats_method='nulls_ignored';
#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_stats_method=1.1;
--error ER_WRONG_VALUE_FOR_VAR
SET global innodb_stats_method=4;
--error ER_WRONG_VALUE_FOR_VAR
SET global innodb_stats_method=-2;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_stats_method=1e1;
--error ER_WRONG_VALUE_FOR_VAR
SET global innodb_stats_method='some';
#
# Cleanup
#
SET @@global.innodb_stats_method = @start_global_value;
SELECT @@global.innodb_stats_method;

View File

@ -0,0 +1 @@
--plugin-dir=$DAEMONEXAMPLE_DIR

View File

@ -0,0 +1,318 @@
#
# Test mysql_plugin tool
#
# This test contains test cases for testing the mysql_plugin client with
# the daemon_example plugin. Test cases include tests for:
#
# - successful enable/disable
# - incorrect paths
# - missing paths/options
#
# Implementation Notes
#
# The mysql_plugin tool now accepts --mysqld the path to mysqld server. The
# mysqld path is extracted from MYSQLD_BOOTSTRAP_CMD line. We also extract
# the path of MYSQLD_BASEDIR (where mysql exists) and use it for the errmsg
# file. The directories differ between Windows and Unix but the Perl script
# included below will pick as per platform.
#
# The test is also designed to issue the --skip directive if the location of
# the mysqld, my_print_defaults, or daemon_example.ini files cannot be found.
#
--source include/not_embedded.inc
# Add the datadir, basedir, plugin_dir to the bootstrap command
let $MYSQLD_DATADIR= `select @@datadir`;
let $MYSQL_BASEDIR= `select @@basedir`;
let $MYSQL_ERRMSG_BASEDIR=`select @@lc_messages_dir`;
let $PLUGIN_DIR=`select @@plugin_dir`;
--disable_abort_on_error
# Perl script to extract the location of the basedir from environment
# variables. This is needed to ensure the test will run on the PB machines
# designed to test release as well as debug builds. It also checks for the
# location of the my_print_defaults and daemon_example.ini files.
perl;
use File::Basename;
my ($mysqld)= split " ", $ENV{MYSQLD_BOOTSTRAP_CMD};
my $mysqld_basedir=dirname($mysqld);
my $my_print_defaults= $ENV{MYSQL_MY_PRINT_DEFAULTS};
my $my_print_defaults_basedir=dirname($my_print_defaults);
my $daemonexample_ini= "$ENV{DAEMONEXAMPLE_DIR}/daemon_example.ini";
my $plugindir_ini= "$ENV{PLUGIN_DIR}/daemon_example.ini";
my $notfound= "";
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/mysqld.inc") or die;
print FILE "let \$MYSQLD= $mysqld;\n";
print FILE "let \$MYSQLD_BASEDIR= $mysqld_basedir;\n";
print FILE "let \$MYSQL_MY_PRINT_DEFAULTS_BASEDIR= $my_print_defaults_basedir;\n";
if ((!-e $daemonexample_ini) || (!-r $daemonexample_ini))
{
print FILE "let \$DAEMONEXAMPLE_DIR= $not_found;\n";
}
if ((!-e $plugindir_ini) || (!-r $plugindir_ini))
{
print FILE "let \$PLUGIN_DIR= $not_found;\n";
}
close FILE;
EOF
source $MYSQL_TMP_DIR/mysqld.inc;
remove_file $MYSQL_TMP_DIR/mysqld.inc;
# The mysql_plugin tool expects a directory structure like in the installed
# mysql version, so errmsg.sys will be copied to "basedir/share", we create
# and remove this structure.
--mkdir $MYSQLD_BASEDIR/share
--mkdir $MYSQLD_BASEDIR/share/mysql
--copy_file $MYSQL_ERRMSG_BASEDIR/english/errmsg.sys $MYSQLD_BASEDIR/share/errmsg.sys
--copy_file $MYSQL_ERRMSG_BASEDIR/english/errmsg.sys $MYSQLD_BASEDIR/share/mysql/errmsg.sys
# The mysql_plugin tool now accepts --my-print-defaults which points to the
# executable my_print_defaults.exe we can get this path from the variable
# $MYSQL_MY_PRINT_DEFAULTS.
# Check for my_print_defaults location. Skip if not found.
if ($MYSQL_MY_PRINT_DEFAULTS_BASEDIR == '')
{
--skip Test requires known location of my_print_defaults executable.
}
# Check for mysqld location. Skip if not found.
if ($MYSQLD == '')
{
--skip Test requires known location of mysqld executable.
}
# Check for daemon_example.ini location. Skip if not found in either
# the plugin_dir path or the daemon_example_dir path.
if ($PLUGIN_DIR == '')
{
if ($DAEMONEXAMPLE_DIR == '')
{
--skip Test requires known location of daemon_example.ini file.
}
let $PLUGIN_DIR = $DAEMONEXAMPLE_DIR;
}
# Build client command for reuse.
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN --datadir=$MYSQLD_DATADIR --basedir=$MYSQLD_BASEDIR --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--echo #
--echo # Ensure the plugin isn't loaded.
--echo #
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
--echo #
--echo # Enable the plugin...
--echo #
let $expect_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
# MTR will remove this file later, but this might be too late.
--error 0,1
--remove_file $expect_file
--write_file $expect_file
wait
EOF
--shutdown_server 10
--source include/wait_until_disconnected.inc
#
# Enable the plugin
#
--exec $MYSQL_PLUGIN_CMD ENABLE daemon_example
#
# Ensure enabling an enabled plugin doesn't fail
--exec $MYSQL_PLUGIN_CMD ENABLE daemon_example
#
# Restart the server
#
--append_file $expect_file
restart
EOF
--enable_reconnect
--source include/wait_until_connected_again.inc
--echo #
--echo # Ensure the plugin is now loaded.
--echo #
--replace_regex /\.dll/.so/
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
--echo #
--echo # Disable the plugin...
--echo #
# MTR will remove this file later, but this might be too late.
--error 0,1
--remove_file $expect_file
--write_file $expect_file
wait
EOF
--shutdown_server 10
--source include/wait_until_disconnected.inc
#
# Disable the plugin
#
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example
#
# Restart the server
#
--append_file $expect_file
restart
EOF
--enable_reconnect
--source include/wait_until_connected_again.inc
--echo #
--echo # Ensure the plugin isn't loaded.
--echo #
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name;
#
# Stop the server for error conditions
#
let $expect_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
# MTR will remove this file later, but this might be too late.
--error 0,1
--remove_file $expect_file
--write_file $expect_file
wait
EOF
--shutdown_server 10
--source include/wait_until_disconnected.inc
--echo #
--echo # Attempt to load non-existant plugin
--echo #
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE NOT_THERE_AT_ALL 2>&1
--echo #
--echo # Attempt to use non-existant plugin.ini file
--echo #
--error 1,2,7,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example --plugin-ini=/NOT/THERE/pi.ini 2>&1
--echo #
--echo # Attempt to omit the plugin
--echo #
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE 2>&1
--echo #
--echo # Attempt to omit DISABLE|ENABLE
--echo #
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD daemon_example 2>&1
--echo #
--echo # Attempt to use bad paths - datadir
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=/data_not_there/ --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Attempt to use bad paths - basedir
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=/basedir_not_there/ --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Attempt to use bad paths - plugin_dir
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=$MYSQL_BASEDIR --plugin-dir=/plugin_not_there/ --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Attempt to use bad paths - mysqld
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --mysqld=/mysqld_not_there/ --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Attempt to use bad paths - my_print_defaults
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=/my_print_defaults_not_there/;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Missing library
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --plugin-ini=$MYSQL_TEST_DIR/include/daemon_example_bad_soname.ini --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Bad format for config file
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --plugin-ini=$MYSQL_TEST_DIR/include/daemon_example_bad_format.ini --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Missing base_dir option
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQLD_DATADIR --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,139,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Missing data_dir option
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --basedir=$MYSQL_BASEDIR --plugin-dir=$PLUGIN_DIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,139,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Missing plugin_dir option
--echo #
let $MYSQL_PLUGIN_CMD= $MYSQL_PLUGIN -n --datadir=$MYSQL_DATADIR --basedir=$MYSQL_BASEDIR --mysqld=$MYSQLD_BASEDIR --my-print-defaults=$MYSQL_MY_PRINT_DEFAULTS_BASEDIR;
--error 1,2,139,256
--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example 2>&1
--echo #
--echo # Show the help.
--echo #
replace_result $MYSQL_PLUGIN mysql_plugin;
--replace_regex /Ver [0-9.]+ Distrib [0-9.]+/Ver V.V.VV Distrib XX.XX.XX/
--exec $MYSQL_PLUGIN --help
replace_result $MYSQL_PLUGIN mysql_plugin;
--replace_regex /Ver [0-9.]+ Distrib [0-9.]+/Ver V.V.VV Distrib XX.XX.XX/
--exec $MYSQL_PLUGIN --version
#
# Restart the server
#
--append_file $expect_file
restart
EOF
--enable_reconnect
--source include/wait_until_connected_again.inc
#
# Cleanup
# MTR will remove this file later, but this might be too late.
--error 0,1
--remove_file $expect_file
# Cleanup the share folder in the binary path.
--remove_file $MYSQLD_BASEDIR/share/errmsg.sys
--rmdir $MYSQLD_BASEDIR/share/mysql
--rmdir $MYSQLD_BASEDIR/share
--enable_abort_on_error

View File

@ -15,3 +15,5 @@
MYSQL_ADD_PLUGIN(daemon_example daemon_example.cc
MODULE_ONLY MODULE_OUTPUT_NAME "libdaemon_example")
INSTALL(FILES daemon_example.ini DESTINATION ${INSTALL_PLUGINDIR})

View File

@ -0,0 +1,9 @@
#
# Plugin configuration file. Place the following on a separate line:
#
# library binary file name (without .so or .dll)
# component_name
# [component_name] - additional components in plugin
#
libdaemon_example
daemon_example

View File

@ -1000,6 +1000,7 @@ echo "=====" >> $STATUS_HISTORY
%attr(755, root, root) %{_bindir}/mysql_setpermission
%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql
%attr(755, root, root) %{_bindir}/mysql_upgrade
%attr(755, root, root) %{_bindir}/mysql_plugin
%attr(755, root, root) %{_bindir}/mysql_zap
%attr(755, root, root) %{_bindir}/mysqlbug
%attr(755, root, root) %{_bindir}/mysqld_multi
@ -1015,6 +1016,7 @@ echo "=====" >> $STATUS_HISTORY
%attr(755, root, root) %{_sbindir}/mysqld
%attr(755, root, root) %{_sbindir}/mysqld-debug
%attr(755, root, root) %{_sbindir}/rcmysql
%attr(755, root, root) %{_libdir}/mysql/plugin/daemon_example.ini
%if %{WITH_TCMALLOC}
%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
@ -1113,6 +1115,10 @@ echo "=====" >> $STATUS_HISTORY
- Source plugin library files list from cmake-generated file.
* Mon Jul 25 2011 Chuck Bell <chuck.bell@oracle.com>
- Added the mysql_plugin client - enables or disables plugins.
* Thu Jul 21 2011 Sunanda Menon <sunanda.menon@oracle.com>
- Fix bug#12561297: Added the MySQL embedded binary