#At file:///export/home/x/mysql-5.5-runtime-test/ based on revid:jon.hauglid@stripped
3177 Jon Olav Hauglid 2010-11-05 [merge]
Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
removed:
win/build-nmake-x64.bat
win/build-nmake.bat
win/build-vs71.bat
win/build-vs8.bat
win/build-vs8_x64.bat
win/build-vs9.bat
win/build-vs9_x64.bat
added:
mysql-test/suite/sys_vars/inc/autocommit_func2.inc
mysql-test/suite/sys_vars/r/autocommit_func2.result
mysql-test/suite/sys_vars/r/autocommit_func3.result
mysql-test/suite/sys_vars/t/autocommit_func2-master.opt
mysql-test/suite/sys_vars/t/autocommit_func2.test
mysql-test/suite/sys_vars/t/autocommit_func3-master.opt
mysql-test/suite/sys_vars/t/autocommit_func3.test
modified:
.bzrignore
CMakeLists.txt
cmake/mysql_version.cmake
config/ac-macros/maintainer.m4
configure.in
mysql-test/mysql-test-run.pl
mysql-test/r/1st.result
mysql-test/r/connect.result
mysql-test/r/errors.result
mysql-test/r/information_schema.result
mysql-test/r/keywords.result
mysql-test/r/log_tables_upgrade.result
mysql-test/r/mysql_upgrade.result
mysql-test/r/mysql_upgrade_ssl.result
mysql-test/r/mysqlcheck.result
mysql-test/r/mysqld--help-notwin.result
mysql-test/r/mysqld--help-win.result
mysql-test/r/plugin_auth.result
mysql-test/r/system_mysql_db.result
mysql-test/suite/funcs_1/r/is_columns_mysql.result
mysql-test/suite/funcs_1/r/is_key_column_usage.result
mysql-test/suite/funcs_1/r/is_statistics.result
mysql-test/suite/funcs_1/r/is_statistics_mysql.result
mysql-test/suite/funcs_1/r/is_table_constraints.result
mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result
mysql-test/suite/funcs_1/r/is_tables_mysql.result
mysql-test/t/errors.test
mysql-test/t/keywords.test
mysql-test/t/plugin_auth.test
mysql-test/t/system_mysql_db_fix40123.test
mysql-test/t/system_mysql_db_fix50030.test
mysql-test/t/system_mysql_db_fix50117.test
scripts/mysql_system_tables.sql
scripts/mysql_system_tables_data.sql
scripts/mysql_system_tables_fix.sql
sql/item.cc
sql/mysqld.cc
sql/mysqld.h
sql/rpl_handler.cc
sql/sql_acl.cc
sql/sql_partition.cc
sql/sql_show.cc
sql/sql_yacc.yy
storage/innobase/os/os0sync.c
support-files/mysql.spec.sh
win/README
=== modified file '.bzrignore'
--- a/.bzrignore 2010-08-13 09:51:48 +0000
+++ b/.bzrignore 2010-11-03 13:45:03 +0000
@@ -9,15 +9,19 @@
*.core
*.d
*.da
+*.dll
*.exe
+*.exp
*.gcda
*.gcno
*.gcov
*.idb
+*.ilk
*.la
*.lai
*.lib
*.lo
+*.manifest
*.map
*.o
*.obj
@@ -148,6 +152,7 @@ Makefile
Makefile.in
Makefile.in'
PENDING/*
+scripts/scripts
TAGS
VC++Files/client/mysql_amd64.dsp
ac_available_languages_fragment
@@ -1981,6 +1986,7 @@ sql-bench/test-transactions
sql-bench/test-wisconsin
sql/*.cpp
sql/*.ds?
+sql/*.def
sql/*.vcproj
sql/.deps/client.Po
sql/.deps/derror.Po
@@ -2116,6 +2122,7 @@ sql/.libs/udf_example.lai
sql/.libs/udf_example.so.0
sql/.libs/udf_example.so.0.0.0
sql/client.c
+sql/cmake_dummy.cc
sql/Doxyfile
sql/f.c
sql/gen_lex_hash
@@ -3046,6 +3053,7 @@ vio/viotest.cpp
win/configure.data
win/vs71cache.txt
win/vs8cache.txt
+win/nmake_cache.txt
ylwrap
zlib/*.ds?
zlib/*.vcproj
=== modified file 'CMakeLists.txt'
--- a/CMakeLists.txt 2010-10-21 12:12:23 +0000
+++ b/CMakeLists.txt 2010-11-05 13:33:59 +0000
@@ -115,18 +115,27 @@ ENDIF()
# Control aspects of the development environment which are
# specific to MySQL maintainers and developers.
#
+INCLUDE (CheckCCompilerFlag)
OPTION(MYSQL_MAINTAINER_MODE "MySQL maintainer-specific development environment" OFF)
# Whether the maintainer mode should be enabled.
IF(MYSQL_MAINTAINER_MODE)
IF(CMAKE_COMPILER_IS_GNUCC)
+ CHECK_C_COMPILER_FLAG("-Wdeclaration-after-statement" HAVE_DECLARATION_AFTER_STATEMENT)
+ IF(HAVE_DECLARATION_AFTER_STATEMENT)
+ SET(MY_MAINTAINER_DECLARATION_AFTER_STATEMENT "-Wdeclaration-after-statement")
+ ENDIF()
SET(MY_MAINTAINER_C_WARNINGS
- "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
- CACHE STRING "C warning options used in maintainer builds.")
+ "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror")
ENDIF()
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(MY_MAINTAINER_CXX_WARNINGS "${MY_MAINTAINER_C_WARNINGS} -Wno-unused-parameter"
CACHE STRING "C++ warning options used in maintainer builds.")
ENDIF()
+ IF(CMAKE_COMPILER_IS_GNUCC)
+ SET(MY_MAINTAINER_C_WARNINGS
+ "${MY_MAINTAINER_C_WARNINGS} ${MY_MAINTAINER_DECLARATION_AFTER_STATEMENT}"
+ CACHE STRING "C warning options used in maintainer builds.")
+ ENDIF()
# Do not make warnings in checks into errors.
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-error")
=== modified file 'cmake/mysql_version.cmake'
--- a/cmake/mysql_version.cmake 2010-06-18 15:04:15 +0000
+++ b/cmake/mysql_version.cmake 2010-11-02 18:52:56 +0000
@@ -42,6 +42,9 @@ MACRO(GET_MYSQL_VERSION)
IF(NOT VERSION_STRING)
FILE(STRINGS configure.in str REGEX "AC_INIT\\(")
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+[-][a-zAZ0-9]+" VERSION_STRING "${str}")
+ IF(NOT VERSION_STRING)
+ STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" VERSION_STRING "${str}")
+ ENDIF()
ENDIF()
ENDIF()
ENDIF()
=== modified file 'config/ac-macros/maintainer.m4'
--- a/config/ac-macros/maintainer.m4 2010-10-18 16:27:10 +0000
+++ b/config/ac-macros/maintainer.m4 2010-11-05 13:17:47 +0000
@@ -19,6 +19,7 @@ AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS],
AS_IF([test "$GCC" = "yes"], [
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
+ C_WARNINGS="${C_WARNINGS} -Wdeclaration-after-statement"
])
# Test whether the warning options work.
=== modified file 'configure.in'
--- a/configure.in 2010-11-01 09:36:43 +0000
+++ b/configure.in 2010-11-03 14:15:18 +0000
@@ -27,7 +27,7 @@ dnl
dnl When changing the major version number please also check the switch
dnl statement in mysqlbinlog::check_master_version(). You may also need
dnl to update version.c in ndb.
-AC_INIT([MySQL Server], [5.5.8-rc], [], [mysql])
+AC_INIT([MySQL Server], [5.5.8], [], [mysql])
AC_CONFIG_SRCDIR([sql/mysqld.cc])
AC_CANONICAL_SYSTEM
=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl 2010-10-26 06:31:22 +0000
+++ b/mysql-test/mysql-test-run.pl 2010-11-05 13:16:27 +0000
@@ -5317,8 +5317,7 @@ sub gdb_arguments {
"break mysql_parse\n" .
"commands 1\n" .
"disable 1\n" .
- "end\n" .
- "run");
+ "end\n");
}
if ( $opt_manual_gdb )
=== modified file 'mysql-test/r/1st.result'
--- a/mysql-test/r/1st.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/r/1st.result 2010-11-02 15:45:26 +0000
@@ -21,7 +21,7 @@ ndb_binlog_index
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
=== modified file 'mysql-test/r/connect.result'
--- a/mysql-test/r/connect.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/r/connect.result 2010-11-02 15:45:26 +0000
@@ -15,7 +15,7 @@ ndb_binlog_index
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
@@ -49,7 +49,7 @@ ndb_binlog_index
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
@@ -91,7 +91,7 @@ ndb_binlog_index
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
=== modified file 'mysql-test/r/errors.result'
--- a/mysql-test/r/errors.result 2010-05-27 16:01:43 +0000
+++ b/mysql-test/r/errors.result 2010-11-04 12:36:36 +0000
@@ -134,3 +134,15 @@ INSERT INTO t1 VALUES ('abc\0\0');
INSERT INTO t1 VALUES ('abc\0\0');
ERROR 23000: Duplicate entry 'abc\x00\x00' for key 'PRIMARY'
DROP TABLE t1;
+#
+# Bug#57882: Item_func_conv_charset::val_str(String*):
+# Assertion `fixed == 1' failed
+#
+SELECT (CONVERT('0' USING latin1) IN (CHAR(COT('v') USING utf8),''));
+ERROR 22003: DOUBLE value is out of range in 'cot('v')'
+SET NAMES utf8 COLLATE utf8_latvian_ci ;
+SELECT UPDATEXML(-73 * -2465717823867977728,@@global.auto_increment_increment,null);
+ERROR 22003: BIGINT value is out of range in '(-(73) * -(2465717823867977728))'
+#
+# End Bug#57882
+#
=== modified file 'mysql-test/r/information_schema.result'
--- a/mysql-test/r/information_schema.result 2010-10-14 16:56:56 +0000
+++ b/mysql-test/r/information_schema.result 2010-11-02 15:45:26 +0000
@@ -88,7 +88,7 @@ host
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
=== modified file 'mysql-test/r/keywords.result'
--- a/mysql-test/r/keywords.result 2007-02-23 11:13:55 +0000
+++ b/mysql-test/r/keywords.result 2010-11-05 08:23:39 +0000
@@ -45,3 +45,227 @@ p1
max=1
drop procedure p1;
drop table t1;
+CREATE TABLE slow (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO slow(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO slow(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO slow(slow, general) VALUES (1,2), (5,6);
+INSERT INTO slow(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM slow ORDER BY slow;
+slow general master_heartbeat_period ignore_server_ids
+1 2 3 4
+1 2 3 NULL
+1 2 NULL NULL
+1 NULL NULL NULL
+5 6 7 8
+5 6 7 NULL
+5 6 NULL NULL
+5 NULL NULL NULL
+SELECT slow, general, master_heartbeat_period FROM slow ORDER BY slow;
+slow general master_heartbeat_period
+1 2 3
+1 2 3
+1 2 NULL
+1 NULL NULL
+5 6 7
+5 6 7
+5 6 NULL
+5 NULL NULL
+SELECT slow, master_heartbeat_period FROM slow ORDER BY slow;
+slow master_heartbeat_period
+1 3
+1 3
+1 NULL
+1 NULL
+5 7
+5 7
+5 NULL
+5 NULL
+SELECT slow FROM slow ORDER BY slow;
+slow
+1
+1
+1
+1
+5
+5
+5
+5
+DROP TABLE slow;
+CREATE TABLE general (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO general(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO general(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO general(slow, general) VALUES (1,2), (5,6);
+INSERT INTO general(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM general ORDER BY slow;
+slow general master_heartbeat_period ignore_server_ids
+1 2 3 4
+1 2 3 NULL
+1 2 NULL NULL
+1 NULL NULL NULL
+5 6 7 8
+5 6 7 NULL
+5 6 NULL NULL
+5 NULL NULL NULL
+SELECT slow, general, master_heartbeat_period FROM general ORDER BY slow;
+slow general master_heartbeat_period
+1 2 3
+1 2 3
+1 2 NULL
+1 NULL NULL
+5 6 7
+5 6 7
+5 6 NULL
+5 NULL NULL
+SELECT slow, master_heartbeat_period FROM general ORDER BY slow;
+slow master_heartbeat_period
+1 3
+1 3
+1 NULL
+1 NULL
+5 7
+5 7
+5 NULL
+5 NULL
+SELECT slow FROM general ORDER BY slow;
+slow
+1
+1
+1
+1
+5
+5
+5
+5
+DROP TABLE general;
+CREATE TABLE master_heartbeat_period (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO master_heartbeat_period(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO master_heartbeat_period(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO master_heartbeat_period(slow, general) VALUES (1,2), (5,6);
+INSERT INTO master_heartbeat_period(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM master_heartbeat_period ORDER BY slow;
+slow general master_heartbeat_period ignore_server_ids
+1 2 3 4
+1 2 3 NULL
+1 2 NULL NULL
+1 NULL NULL NULL
+5 6 7 8
+5 6 7 NULL
+5 6 NULL NULL
+5 NULL NULL NULL
+SELECT slow, general, master_heartbeat_period FROM master_heartbeat_period ORDER BY slow;
+slow general master_heartbeat_period
+1 2 3
+1 2 3
+1 2 NULL
+1 NULL NULL
+5 6 7
+5 6 7
+5 6 NULL
+5 NULL NULL
+SELECT slow, master_heartbeat_period FROM master_heartbeat_period ORDER BY slow;
+slow master_heartbeat_period
+1 3
+1 3
+1 NULL
+1 NULL
+5 7
+5 7
+5 NULL
+5 NULL
+SELECT slow FROM master_heartbeat_period ORDER BY slow;
+slow
+1
+1
+1
+1
+5
+5
+5
+5
+DROP TABLE master_heartbeat_period;
+CREATE TABLE ignore_server_ids (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO ignore_server_ids(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO ignore_server_ids(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO ignore_server_ids(slow, general) VALUES (1,2), (5,6);
+INSERT INTO ignore_server_ids(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM ignore_server_ids ORDER BY slow;
+slow general master_heartbeat_period ignore_server_ids
+1 2 3 4
+1 2 3 NULL
+1 2 NULL NULL
+1 NULL NULL NULL
+5 6 7 8
+5 6 7 NULL
+5 6 NULL NULL
+5 NULL NULL NULL
+SELECT slow, general, master_heartbeat_period FROM ignore_server_ids ORDER BY slow;
+slow general master_heartbeat_period
+1 2 3
+1 2 3
+1 2 NULL
+1 NULL NULL
+5 6 7
+5 6 7
+5 6 NULL
+5 NULL NULL
+SELECT slow, master_heartbeat_period FROM ignore_server_ids ORDER BY slow;
+slow master_heartbeat_period
+1 3
+1 3
+1 NULL
+1 NULL
+5 7
+5 7
+5 NULL
+5 NULL
+SELECT slow FROM ignore_server_ids ORDER BY slow;
+slow
+1
+1
+1
+1
+5
+5
+5
+5
+DROP TABLE ignore_server_ids;
+CREATE TABLE t1 (slow INT, general INT, ignore_server_ids INT, master_heartbeat_period INT);
+INSERT INTO t1 VALUES (1,2,3,4);
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE slow INT;
+DECLARE general INT;
+DECLARE ignore_server_ids INT;
+DECLARE master_heartbeat_period INT;
+SELECT max(t1.slow) INTO slow FROM t1;
+SELECT max(t1.general) INTO general FROM t1;
+SELECT max(t1.ignore_server_ids) INTO ignore_server_ids FROM t1;
+SELECT max(t1.master_heartbeat_period) INTO master_heartbeat_period FROM t1;
+SELECT slow, general, ignore_server_ids, master_heartbeat_period;
+END|
+CREATE PROCEDURE p2()
+BEGIN
+DECLARE n INT DEFAULT 2;
+general: WHILE n > 0 DO
+SET n = n -1;
+END WHILE general;
+SET n = 2;
+slow: WHILE n > 0 DO
+SET n = n -1;
+END WHILE slow;
+SET n = 2;
+ignore_server_ids: WHILE n > 0 DO
+SET n = n -1;
+END WHILE ignore_server_ids;
+SET n = 2;
+master_heartbeat_period: WHILE n > 0 DO
+SET n = n -1;
+END WHILE master_heartbeat_period;
+END|
+CALL p1();
+slow general ignore_server_ids master_heartbeat_period
+1 2 3 4
+call p2();
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP TABLE t1;
=== modified file 'mysql-test/r/log_tables_upgrade.result'
--- a/mysql-test/r/log_tables_upgrade.result 2010-10-04 12:42:16 +0000
+++ b/mysql-test/r/log_tables_upgrade.result 2010-11-02 15:45:26 +0000
@@ -27,7 +27,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.renamed_general_log OK
mysql.servers OK
mysql.slow_log OK
=== modified file 'mysql-test/r/mysql_upgrade.result'
--- a/mysql-test/r/mysql_upgrade.result 2010-10-04 12:42:16 +0000
+++ b/mysql-test/r/mysql_upgrade.result 2010-11-02 15:45:26 +0000
@@ -15,7 +15,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
@@ -44,7 +44,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
@@ -73,7 +73,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
@@ -104,7 +104,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
@@ -139,7 +139,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
@@ -177,7 +177,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
=== modified file 'mysql-test/r/mysql_upgrade_ssl.result'
--- a/mysql-test/r/mysql_upgrade_ssl.result 2010-10-04 12:42:16 +0000
+++ b/mysql-test/r/mysql_upgrade_ssl.result 2010-11-02 15:45:26 +0000
@@ -17,7 +17,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
=== modified file 'mysql-test/r/mysqlcheck.result'
--- a/mysql-test/r/mysqlcheck.result 2010-10-08 07:09:47 +0000
+++ b/mysql-test/r/mysqlcheck.result 2010-11-02 15:45:26 +0000
@@ -18,7 +18,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log
note : The storage engine for the table doesn't support analyze
@@ -46,7 +46,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log
note : The storage engine for the table doesn't support optimize
@@ -72,7 +72,7 @@ mysql.ndb_binlog_index
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
-mysql.proxy_priv OK
+mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log
note : The storage engine for the table doesn't support analyze
@@ -98,7 +98,7 @@ mysql.ndb_binlog_index
mysql.plugin Table is already up to date
mysql.proc Table is already up to date
mysql.procs_priv Table is already up to date
-mysql.proxy_priv Table is already up to date
+mysql.proxies_priv Table is already up to date
mysql.servers Table is already up to date
mysql.slow_log
note : The storage engine for the table doesn't support optimize
=== modified file 'mysql-test/r/mysqld--help-notwin.result'
--- a/mysql-test/r/mysqld--help-notwin.result 2010-09-30 13:52:39 +0000
+++ b/mysql-test/r/mysqld--help-notwin.result 2010-11-05 13:16:27 +0000
@@ -19,6 +19,7 @@ The following options may be given as th
--auto-increment-offset[=#]
Offset added to Auto-increment columns. Used when
auto-increment-increment != 1
+ --autocommit Set default value for autocommit (0 or 1)
--automatic-sp-privileges
Creating and dropping stored procedures alters ACLs
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
=== modified file 'mysql-test/r/mysqld--help-win.result'
--- a/mysql-test/r/mysqld--help-win.result 2010-10-05 12:26:49 +0000
+++ b/mysql-test/r/mysqld--help-win.result 2010-11-05 13:16:27 +0000
@@ -19,6 +19,7 @@ The following options may be given as th
--auto-increment-offset[=#]
Offset added to Auto-increment columns. Used when
auto-increment-increment != 1
+ --autocommit Set default value for autocommit (0 or 1)
--automatic-sp-privileges
Creating and dropping stored procedures alters ACLs
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
=== modified file 'mysql-test/r/plugin_auth.result'
--- a/mysql-test/r/plugin_auth.result 2010-10-04 13:09:37 +0000
+++ b/mysql-test/r/plugin_auth.result 2010-11-03 11:47:22 +0000
@@ -11,6 +11,26 @@ test_plugin_server plug_dest
## test plugin auth
ERROR 28000: Access denied for user 'plug'@'localhost' (using password: YES)
GRANT PROXY ON plug_dest TO plug;
+test proxies_priv columns
+SELECT * FROM mysql.proxies_priv;
+Host User Proxied_host Proxied_user With_grant Grantor Timestamp
+xx root 1 xx
+xx root 1 xx
+xx plug % plug_dest 0 root@localhost xx
+test mysql.proxies_priv;
+SHOW CREATE TABLE mysql.proxies_priv;
+Table Create Table
+proxies_priv CREATE TABLE `proxies_priv` (
+ `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `Proxied_user` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `With_grant` tinyint(1) NOT NULL DEFAULT '0',
+ `Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
+ KEY `Grantor` (`Grantor`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges'
select USER(),CURRENT_USER();
USER() CURRENT_USER()
plug@localhost plug_dest@%
@@ -146,8 +166,8 @@ Grants for test_drop@localhost
GRANT USAGE ON *.* TO 'test_drop'@'localhost'
GRANT PROXY ON 'future_user'@'%' TO 'test_drop'@'localhost'
DROP USER test_drop@localhost;
-SELECT * FROM mysql.proxy_priv WHERE Host = 'test_drop' AND User = 'localhost';
-Host User Proxied_Host Proxied_User With_Grant
+SELECT * FROM mysql.proxies_priv WHERE Host = 'test_drop' AND User = 'localhost';
+Host User Proxied_host Proxied_user With_grant Grantor Timestamp
DROP USER proxy_admin;
DROP USER grant_plug,grant_plug_dest,grant_plug_dest2;
## END GRANT PROXY tests
=== modified file 'mysql-test/r/system_mysql_db.result'
--- a/mysql-test/r/system_mysql_db.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/r/system_mysql_db.result 2010-11-02 15:45:26 +0000
@@ -14,7 +14,7 @@ ndb_binlog_index
plugin
proc
procs_priv
-proxy_priv
+proxies_priv
servers
slow_log
tables_priv
=== modified file 'mysql-test/suite/funcs_1/r/is_columns_mysql.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_mysql.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_mysql.result 2010-11-02 15:45:26 +0000
@@ -134,11 +134,13 @@ def mysql procs_priv Routine_name 4 NO
def mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
def mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
def mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
-def mysql proxy_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
-def mysql proxy_priv Proxied_Host 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
-def mysql proxy_priv Proxied_User 4 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
-def mysql proxy_priv User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
-def mysql proxy_priv With_Grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+def mysql proxies_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+def mysql proxies_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+def mysql proxies_priv Proxied_host 3 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+def mysql proxies_priv Proxied_user 4 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+def mysql proxies_priv Timestamp 7 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
+def mysql proxies_priv User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+def mysql proxies_priv With_grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
def mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
def mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
def mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
@@ -425,11 +427,13 @@ NULL mysql proc modified timestamp NULL
3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
-3.0000 mysql proxy_priv Host char 60 180 utf8 utf8_bin char(60)
-3.0000 mysql proxy_priv User char 16 48 utf8 utf8_bin char(16)
-3.0000 mysql proxy_priv Proxied_Host char 16 48 utf8 utf8_bin char(16)
-3.0000 mysql proxy_priv Proxied_User char 60 180 utf8 utf8_bin char(60)
-NULL mysql proxy_priv With_Grant tinyint NULL NULL NULL NULL tinyint(1)
+3.0000 mysql proxies_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql proxies_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql proxies_priv Proxied_host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql proxies_priv Proxied_user char 16 48 utf8 utf8_bin char(16)
+NULL mysql proxies_priv With_grant tinyint NULL NULL NULL NULL tinyint(1)
+3.0000 mysql proxies_priv Grantor char 77 231 utf8 utf8_bin char(77)
+NULL mysql proxies_priv Timestamp timestamp NULL NULL NULL NULL timestamp
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
=== modified file 'mysql-test/suite/funcs_1/r/is_key_column_usage.result'
--- a/mysql-test/suite/funcs_1/r/is_key_column_usage.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_key_column_usage.result 2010-11-02 15:45:26 +0000
@@ -106,10 +106,10 @@ def mysql PRIMARY def mysql procs_priv D
def mysql PRIMARY def mysql procs_priv User
def mysql PRIMARY def mysql procs_priv Routine_name
def mysql PRIMARY def mysql procs_priv Routine_type
-def mysql PRIMARY def mysql proxy_priv Host
-def mysql PRIMARY def mysql proxy_priv User
-def mysql PRIMARY def mysql proxy_priv Proxied_Host
-def mysql PRIMARY def mysql proxy_priv Proxied_User
+def mysql PRIMARY def mysql proxies_priv Host
+def mysql PRIMARY def mysql proxies_priv User
+def mysql PRIMARY def mysql proxies_priv Proxied_host
+def mysql PRIMARY def mysql proxies_priv Proxied_user
def mysql PRIMARY def mysql servers Server_name
def mysql PRIMARY def mysql tables_priv Host
def mysql PRIMARY def mysql tables_priv Db
=== modified file 'mysql-test/suite/funcs_1/r/is_statistics.result'
--- a/mysql-test/suite/funcs_1/r/is_statistics.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_statistics.result 2010-11-02 15:45:26 +0000
@@ -118,10 +118,11 @@ def mysql procs_priv mysql PRIMARY
def mysql procs_priv mysql PRIMARY
def mysql procs_priv mysql PRIMARY
def mysql procs_priv mysql Grantor
-def mysql proxy_priv mysql PRIMARY
-def mysql proxy_priv mysql PRIMARY
-def mysql proxy_priv mysql PRIMARY
-def mysql proxy_priv mysql PRIMARY
+def mysql proxies_priv mysql PRIMARY
+def mysql proxies_priv mysql PRIMARY
+def mysql proxies_priv mysql PRIMARY
+def mysql proxies_priv mysql PRIMARY
+def mysql proxies_priv mysql Grantor
def mysql servers mysql PRIMARY
def mysql tables_priv mysql PRIMARY
def mysql tables_priv mysql PRIMARY
=== modified file 'mysql-test/suite/funcs_1/r/is_statistics_mysql.result'
--- a/mysql-test/suite/funcs_1/r/is_statistics_mysql.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_statistics_mysql.result 2010-11-02 15:45:26 +0000
@@ -40,10 +40,11 @@ def mysql procs_priv 0 mysql PRIMARY 2 D
def mysql procs_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
def mysql procs_priv 0 mysql PRIMARY 4 Routine_name A #CARD# NULL NULL BTREE
def mysql procs_priv 0 mysql PRIMARY 5 Routine_type A #CARD# NULL NULL BTREE
-def mysql proxy_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql proxy_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
-def mysql proxy_priv 0 mysql PRIMARY 3 Proxied_Host A #CARD# NULL NULL BTREE
-def mysql proxy_priv 0 mysql PRIMARY 4 Proxied_User A #CARD# NULL NULL BTREE
+def mysql proxies_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
+def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
+def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
+def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
+def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
=== modified file 'mysql-test/suite/funcs_1/r/is_table_constraints.result'
--- a/mysql-test/suite/funcs_1/r/is_table_constraints.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_table_constraints.result 2010-11-02 15:45:26 +0000
@@ -73,7 +73,7 @@ def mysql PRIMARY mysql ndb_binlog_index
def mysql PRIMARY mysql plugin
def mysql PRIMARY mysql proc
def mysql PRIMARY mysql procs_priv
-def mysql PRIMARY mysql proxy_priv
+def mysql PRIMARY mysql proxies_priv
def mysql PRIMARY mysql servers
def mysql PRIMARY mysql tables_priv
def mysql PRIMARY mysql time_zone
=== modified file 'mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result'
--- a/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result 2010-11-02 15:45:26 +0000
@@ -23,7 +23,7 @@ def mysql PRIMARY mysql ndb_binlog_index
def mysql PRIMARY mysql plugin PRIMARY KEY
def mysql PRIMARY mysql proc PRIMARY KEY
def mysql PRIMARY mysql procs_priv PRIMARY KEY
-def mysql PRIMARY mysql proxy_priv PRIMARY KEY
+def mysql PRIMARY mysql proxies_priv PRIMARY KEY
def mysql PRIMARY mysql servers PRIMARY KEY
def mysql PRIMARY mysql tables_priv PRIMARY KEY
def mysql PRIMARY mysql time_zone PRIMARY KEY
=== modified file 'mysql-test/suite/funcs_1/r/is_tables_mysql.result'
--- a/mysql-test/suite/funcs_1/r/is_tables_mysql.result 2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/funcs_1/r/is_tables_mysql.result 2010-11-02 15:45:26 +0000
@@ -336,7 +336,7 @@ user_comment Procedure privileges
Separator -----------------------------------------------------
TABLE_CATALOG def
TABLE_SCHEMA mysql
-TABLE_NAME proxy_priv
+TABLE_NAME proxies_priv
TABLE_TYPE BASE TABLE
ENGINE MyISAM
VERSION 10
=== added file 'mysql-test/suite/sys_vars/inc/autocommit_func2.inc'
--- a/mysql-test/suite/sys_vars/inc/autocommit_func2.inc 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/inc/autocommit_func2.inc 2010-11-05 13:16:27 +0000
@@ -0,0 +1,29 @@
+--source include/have_innodb.inc
+
+CREATE TABLE t1
+(
+id INT NOT NULL auto_increment,
+PRIMARY KEY (id),
+name varchar(30)
+) ENGINE = INNODB;
+
+SELECT @@global.autocommit;
+SELECT @@autocommit;
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+ROLLBACK;
+SELECT * from t1;
+
+set @@global.autocommit = 1-@@global.autocommit;
+set @@autocommit = 1-@@autocommit;
+SELECT @@global.autocommit;
+SELECT @@autocommit;
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+ROLLBACK;
+SELECT * from t1;
+
+DROP TABLE t1;
+set @@global.autocommit = 1-@@global.autocommit;
=== added file 'mysql-test/suite/sys_vars/r/autocommit_func2.result'
--- a/mysql-test/suite/sys_vars/r/autocommit_func2.result 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/r/autocommit_func2.result 2010-11-05 13:16:27 +0000
@@ -0,0 +1,46 @@
+CREATE TABLE t1
+(
+id INT NOT NULL auto_increment,
+PRIMARY KEY (id),
+name varchar(30)
+) ENGINE = INNODB;
+SELECT @@global.autocommit;
+@@global.autocommit
+1
+SELECT @@autocommit;
+@@autocommit
+1
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+id name
+1 Record_1
+2 Record_2
+ROLLBACK;
+SELECT * from t1;
+id name
+1 Record_1
+2 Record_2
+set @@global.autocommit = 1-@@global.autocommit;
+set @@autocommit = 1-@@autocommit;
+SELECT @@global.autocommit;
+@@global.autocommit
+0
+SELECT @@autocommit;
+@@autocommit
+0
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+id name
+1 Record_1
+2 Record_2
+3 Record_1
+4 Record_2
+ROLLBACK;
+SELECT * from t1;
+id name
+1 Record_1
+2 Record_2
+DROP TABLE t1;
+set @@global.autocommit = 1-@@global.autocommit;
=== added file 'mysql-test/suite/sys_vars/r/autocommit_func3.result'
--- a/mysql-test/suite/sys_vars/r/autocommit_func3.result 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/r/autocommit_func3.result 2010-11-05 13:16:27 +0000
@@ -0,0 +1,42 @@
+CREATE TABLE t1
+(
+id INT NOT NULL auto_increment,
+PRIMARY KEY (id),
+name varchar(30)
+) ENGINE = INNODB;
+SELECT @@global.autocommit;
+@@global.autocommit
+0
+SELECT @@autocommit;
+@@autocommit
+0
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+id name
+1 Record_1
+2 Record_2
+ROLLBACK;
+SELECT * from t1;
+id name
+set @@global.autocommit = 1-@@global.autocommit;
+set @@autocommit = 1-@@autocommit;
+SELECT @@global.autocommit;
+@@global.autocommit
+1
+SELECT @@autocommit;
+@@autocommit
+1
+INSERT into t1(name) values('Record_1');
+INSERT into t1(name) values('Record_2');
+SELECT * from t1;
+id name
+3 Record_1
+4 Record_2
+ROLLBACK;
+SELECT * from t1;
+id name
+3 Record_1
+4 Record_2
+DROP TABLE t1;
+set @@global.autocommit = 1-@@global.autocommit;
=== added file 'mysql-test/suite/sys_vars/t/autocommit_func2-master.opt'
--- a/mysql-test/suite/sys_vars/t/autocommit_func2-master.opt 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/t/autocommit_func2-master.opt 2010-11-05 13:16:27 +0000
@@ -0,0 +1 @@
+--autocommit=1
=== added file 'mysql-test/suite/sys_vars/t/autocommit_func2.test'
--- a/mysql-test/suite/sys_vars/t/autocommit_func2.test 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/t/autocommit_func2.test 2010-11-05 13:16:27 +0000
@@ -0,0 +1 @@
+--source suite/sys_vars/inc/autocommit_func2.inc
=== added file 'mysql-test/suite/sys_vars/t/autocommit_func3-master.opt'
--- a/mysql-test/suite/sys_vars/t/autocommit_func3-master.opt 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/t/autocommit_func3-master.opt 2010-11-05 13:16:27 +0000
@@ -0,0 +1 @@
+--autocommit=0
=== added file 'mysql-test/suite/sys_vars/t/autocommit_func3.test'
--- a/mysql-test/suite/sys_vars/t/autocommit_func3.test 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/t/autocommit_func3.test 2010-11-05 13:16:27 +0000
@@ -0,0 +1 @@
+--source suite/sys_vars/inc/autocommit_func2.inc
=== modified file 'mysql-test/t/errors.test'
--- a/mysql-test/t/errors.test 2010-05-27 16:01:43 +0000
+++ b/mysql-test/t/errors.test 2010-11-04 12:36:36 +0000
@@ -155,3 +155,19 @@ INSERT INTO t1 VALUES ('abc\0\0');
--error ER_DUP_ENTRY
INSERT INTO t1 VALUES ('abc\0\0');
DROP TABLE t1;
+
+--echo #
+--echo # Bug#57882: Item_func_conv_charset::val_str(String*):
+--echo # Assertion `fixed == 1' failed
+--echo #
+
+--error ER_DATA_OUT_OF_RANGE
+SELECT (CONVERT('0' USING latin1) IN (CHAR(COT('v') USING utf8),''));
+
+SET NAMES utf8 COLLATE utf8_latvian_ci ;
+--error ER_DATA_OUT_OF_RANGE
+SELECT UPDATEXML(-73 * -2465717823867977728,@@global.auto_increment_increment,null);
+
+--echo #
+--echo # End Bug#57882
+--echo #
=== modified file 'mysql-test/t/keywords.test'
--- a/mysql-test/t/keywords.test 2007-02-23 11:13:55 +0000
+++ b/mysql-test/t/keywords.test 2010-11-05 08:23:39 +0000
@@ -62,5 +62,103 @@ call p1();
drop procedure p1;
drop table t1;
-
# End of 5.0 tests
+
+#
+# BUG#57899: Certain reserved words should not be reserved
+#
+
+#
+# We are looking for SYNTAX ERRORS here, so no need to
+# log the queries
+#
+
+CREATE TABLE slow (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO slow(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO slow(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO slow(slow, general) VALUES (1,2), (5,6);
+INSERT INTO slow(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM slow ORDER BY slow;
+SELECT slow, general, master_heartbeat_period FROM slow ORDER BY slow;
+SELECT slow, master_heartbeat_period FROM slow ORDER BY slow;
+SELECT slow FROM slow ORDER BY slow;
+DROP TABLE slow;
+CREATE TABLE general (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO general(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO general(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO general(slow, general) VALUES (1,2), (5,6);
+INSERT INTO general(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM general ORDER BY slow;
+SELECT slow, general, master_heartbeat_period FROM general ORDER BY slow;
+SELECT slow, master_heartbeat_period FROM general ORDER BY slow;
+SELECT slow FROM general ORDER BY slow;
+DROP TABLE general;
+CREATE TABLE master_heartbeat_period (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO master_heartbeat_period(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO master_heartbeat_period(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO master_heartbeat_period(slow, general) VALUES (1,2), (5,6);
+INSERT INTO master_heartbeat_period(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM master_heartbeat_period ORDER BY slow;
+SELECT slow, general, master_heartbeat_period FROM master_heartbeat_period ORDER BY slow;
+SELECT slow, master_heartbeat_period FROM master_heartbeat_period ORDER BY slow;
+SELECT slow FROM master_heartbeat_period ORDER BY slow;
+DROP TABLE master_heartbeat_period;
+CREATE TABLE ignore_server_ids (slow INT, general INT, master_heartbeat_period INT, ignore_server_ids INT);
+INSERT INTO ignore_server_ids(slow, general, master_heartbeat_period, ignore_server_ids) VALUES (1,2,3,4), (5,6,7,8);
+INSERT INTO ignore_server_ids(slow, general, master_heartbeat_period) VALUES (1,2,3), (5,6,7);
+INSERT INTO ignore_server_ids(slow, general) VALUES (1,2), (5,6);
+INSERT INTO ignore_server_ids(slow) VALUES (1), (5);
+SELECT slow, general, master_heartbeat_period, ignore_server_ids FROM ignore_server_ids ORDER BY slow;
+SELECT slow, general, master_heartbeat_period FROM ignore_server_ids ORDER BY slow;
+SELECT slow, master_heartbeat_period FROM ignore_server_ids ORDER BY slow;
+SELECT slow FROM ignore_server_ids ORDER BY slow;
+DROP TABLE ignore_server_ids;
+
+CREATE TABLE t1 (slow INT, general INT, ignore_server_ids INT, master_heartbeat_period INT);
+INSERT INTO t1 VALUES (1,2,3,4);
+DELIMITER |;
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE slow INT;
+ DECLARE general INT;
+ DECLARE ignore_server_ids INT;
+ DECLARE master_heartbeat_period INT;
+
+ SELECT max(t1.slow) INTO slow FROM t1;
+ SELECT max(t1.general) INTO general FROM t1;
+ SELECT max(t1.ignore_server_ids) INTO ignore_server_ids FROM t1;
+ SELECT max(t1.master_heartbeat_period) INTO master_heartbeat_period FROM t1;
+
+ SELECT slow, general, ignore_server_ids, master_heartbeat_period;
+END|
+
+CREATE PROCEDURE p2()
+BEGIN
+
+ DECLARE n INT DEFAULT 2;
+ general: WHILE n > 0 DO
+ SET n = n -1;
+ END WHILE general;
+
+ SET n = 2;
+ slow: WHILE n > 0 DO
+ SET n = n -1;
+ END WHILE slow;
+
+ SET n = 2;
+ ignore_server_ids: WHILE n > 0 DO
+ SET n = n -1;
+ END WHILE ignore_server_ids;
+
+ SET n = 2;
+ master_heartbeat_period: WHILE n > 0 DO
+ SET n = n -1;
+ END WHILE master_heartbeat_period;
+
+END|
+DELIMITER ;|
+CALL p1();
+call p2();
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP TABLE t1;
=== modified file 'mysql-test/t/plugin_auth.test'
--- a/mysql-test/t/plugin_auth.test 2010-09-20 13:51:42 +0000
+++ b/mysql-test/t/plugin_auth.test 2010-11-03 11:47:22 +0000
@@ -16,6 +16,11 @@ connect(plug_con,localhost,plug,plug_des
--enable_query_log
GRANT PROXY ON plug_dest TO plug;
+--echo test proxies_priv columns
+--replace_column 1 xx 7 xx
+SELECT * FROM mysql.proxies_priv;
+--echo test mysql.proxies_priv;
+SHOW CREATE TABLE mysql.proxies_priv;
connect(plug_con,localhost,plug,plug_dest);
@@ -226,7 +231,7 @@ CREATE USER test_drop@localhost;
GRANT PROXY ON future_user TO test_drop@localhost;
SHOW GRANTS FOR test_drop@localhost;
DROP USER test_drop@localhost;
-SELECT * FROM mysql.proxy_priv WHERE Host = 'test_drop' AND User = 'localhost';
+SELECT * FROM mysql.proxies_priv WHERE Host = 'test_drop' AND User = 'localhost';
DROP USER proxy_admin;
=== modified file 'mysql-test/t/system_mysql_db_fix40123.test'
--- a/mysql-test/t/system_mysql_db_fix40123.test 2010-08-09 08:32:50 +0000
+++ b/mysql-test/t/system_mysql_db_fix40123.test 2010-11-02 15:45:26 +0000
@@ -72,7 +72,7 @@ CREATE TABLE time_zone_leap_second ( T
-- disable_query_log
# Drop all tables created by this test
-DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxy_priv;
+DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv;
-- enable_query_log
=== modified file 'mysql-test/t/system_mysql_db_fix50030.test'
--- a/mysql-test/t/system_mysql_db_fix50030.test 2010-08-09 08:32:50 +0000
+++ b/mysql-test/t/system_mysql_db_fix50030.test 2010-11-02 15:45:26 +0000
@@ -78,7 +78,7 @@ INSERT INTO servers VALUES ('test','loca
-- disable_query_log
# Drop all tables created by this test
-DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxy_priv;
+DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv;
-- enable_query_log
=== modified file 'mysql-test/t/system_mysql_db_fix50117.test'
--- a/mysql-test/t/system_mysql_db_fix50117.test 2010-08-09 08:32:50 +0000
+++ b/mysql-test/t/system_mysql_db_fix50117.test 2010-11-02 15:45:26 +0000
@@ -97,7 +97,7 @@ CREATE TABLE IF NOT EXISTS ndb_binlog_in
-- disable_query_log
# Drop all tables created by this test
-DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxy_priv;
+DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv;
-- enable_query_log
=== modified file 'scripts/mysql_system_tables.sql'
--- a/scripts/mysql_system_tables.sql 2010-10-07 00:03:27 +0000
+++ b/scripts/mysql_system_tables.sql 2010-11-02 15:45:26 +0000
@@ -478,7 +478,7 @@ PREPARE stmt FROM @str;
EXECUTE stmt;
DROP PREPARE stmt;
-CREATE TABLE IF NOT EXISTS proxy_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_Host char(16) binary DEFAULT '' NOT NULL, Proxied_User char(60) binary DEFAULT '' NOT NULL, With_Grant BOOL DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User,Proxied_Host,Proxied_User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges';
+CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(16) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY Host (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges';
--- Remember for later if proxy_priv table already existed
-set @had_proxy_priv_table= @@warning_count != 0;
+-- Remember for later if proxies_priv table already existed
+set @had_proxies_priv_table= @@warning_count != 0;
=== modified file 'scripts/mysql_system_tables_data.sql'
--- a/scripts/mysql_system_tables_data.sql 2010-08-09 08:32:50 +0000
+++ b/scripts/mysql_system_tables_data.sql 2010-11-02 15:45:26 +0000
@@ -30,8 +30,8 @@ INSERT INTO tmp_user (host,user) SELECT
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
DROP TABLE tmp_user;
-CREATE TEMPORARY TABLE tmp_proxy_priv LIKE proxy_priv;
-INSERT INTO tmp_proxy_priv VALUES ('localhost', 'root', '', '', TRUE);
-REPLACE INTO tmp_proxy_priv SELECT @current_hostname, 'root', '', '', TRUE FROM DUAL WHERE LOWER (@current_hostname) != 'localhost';
-INSERT INTO proxy_priv SELECT * FROM tmp_proxy_priv WHERE @had_proxy_priv_table=0;
-DROP TABLE tmp_proxy_priv;
+CREATE TEMPORARY TABLE tmp_proxies_priv LIKE proxies_priv;
+INSERT INTO tmp_proxies_priv VALUES ('localhost', 'root', '', '', TRUE, '', now());
+REPLACE INTO tmp_proxies_priv SELECT @current_hostname, 'root', '', '', TRUE, '', now() FROM DUAL WHERE LOWER (@current_hostname) != 'localhost';
+INSERT INTO proxies_priv SELECT * FROM tmp_proxies_priv WHERE @had_proxies_priv_table=0;
+DROP TABLE tmp_proxies_priv;
=== modified file 'scripts/mysql_system_tables_fix.sql'
--- a/scripts/mysql_system_tables_fix.sql 2010-08-09 08:32:50 +0000
+++ b/scripts/mysql_system_tables_fix.sql 2010-11-02 15:45:26 +0000
@@ -643,7 +643,7 @@ drop procedure mysql.die;
ALTER TABLE user ADD plugin char(60) DEFAULT '' NOT NULL, ADD authentication_string TEXT NOT NULL;
ALTER TABLE user MODIFY plugin char(60) DEFAULT '' NOT NULL;
-CREATE TABLE IF NOT EXISTS proxy_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_User char(60) binary DEFAULT '' NOT NULL, Proxied_Host char(16) binary DEFAULT '' NOT NULL, With_Grant BOOL DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User,Proxied_Host,Proxied_User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';
+CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(16) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY Host (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges';
# Activate the new, possible modified privilege tables
# This should not be needed, but gives us some extra testing that the above
=== modified file 'sql/item.cc'
--- a/sql/item.cc 2010-10-08 14:06:31 +0000
+++ b/sql/item.cc 2010-11-04 08:36:04 +0000
@@ -1853,11 +1853,12 @@ bool agg_item_set_converter(DTCollation
*arg= conv;
else
thd->change_item_tree(arg, conv);
- /*
- We do not check conv->fixed, because Item_func_conv_charset which can
- be return by safe_charset_converter can't be fixed at creation
- */
- conv->fix_fields(thd, arg);
+
+ if (conv->fix_fields(thd, arg))
+ {
+ res= TRUE;
+ break; // we cannot return here, we need to restore "arena".
+ }
}
if (arena)
thd->restore_active_arena(arena, &backup);
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2010-10-08 14:52:39 +0000
+++ b/sql/mysqld.cc 2010-11-05 13:16:27 +0000
@@ -3778,12 +3778,12 @@ static int init_server_components()
unireg_abort(1);
}
- /* initialize delegates for extension observers */
+ /*
+ initialize delegates for extension observers, errors have already
+ been reported in the function
+ */
if (delegates_init())
- {
- sql_print_error("Initialize extension delegates failed");
unireg_abort(1);
- }
/* need to configure logging before initializing storage engines */
if (opt_log_slave_updates && !opt_bin_log)
@@ -5662,6 +5662,12 @@ struct my_option my_long_options[]=
{"ansi", 'a', "Use ANSI SQL syntax instead of MySQL syntax. This mode "
"will also set transaction isolation level 'serializable'.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ /*
+ Because Sys_var_bit does not support command-line options, we need to
+ explicitely add one for --autocommit
+ */
+ {"autocommit", OPT_AUTOCOMMIT, "Set default value for autocommit (0 or 1)",
+ NULL, NULL, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, NULL},
{"bind-address", OPT_BIND_ADDRESS, "IP address to bind to.",
&my_bind_addr_str, &my_bind_addr_str, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -7114,6 +7120,13 @@ mysqld_get_one_option(int optid,
if (argument == NULL) /* no argument */
log_error_file_ptr= const_cast<char*>("");
break;
+ case OPT_AUTOCOMMIT:
+ const ulonglong turn_bit_on= (argument && (atoi(argument) == 0)) ?
+ OPTION_NOT_AUTOCOMMIT : OPTION_AUTOCOMMIT;
+ global_system_variables.option_bits=
+ (global_system_variables.option_bits &
+ ~(OPTION_NOT_AUTOCOMMIT | OPTION_AUTOCOMMIT)) | turn_bit_on;
+ break;
}
return 0;
}
=== modified file 'sql/mysqld.h'
--- a/sql/mysqld.h 2010-08-30 14:07:40 +0000
+++ b/sql/mysqld.h 2010-11-05 13:16:27 +0000
@@ -391,7 +391,8 @@ enum options_mysqld
OPT_UPDATE_LOG,
OPT_WANT_CORE,
OPT_ENGINE_CONDITION_PUSHDOWN,
- OPT_LOG_ERROR
+ OPT_LOG_ERROR,
+ OPT_AUTOCOMMIT
};
=== modified file 'sql/rpl_handler.cc'
--- a/sql/rpl_handler.cc 2010-07-15 19:29:25 +0000
+++ b/sql/rpl_handler.cc 2010-11-04 05:29:16 +0000
@@ -105,12 +105,20 @@ int delegates_init()
transaction_delegate= new (place_trans_mem) Trans_delegate;
if (!transaction_delegate->is_inited())
+ {
+ sql_print_error("Initialization of transaction delegates failed. "
+ "Please report a bug.");
return 1;
+ }
binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate;
if (!binlog_storage_delegate->is_inited())
+ {
+ sql_print_error("Initialization binlog storage delegates failed. "
+ "Please report a bug.");
return 1;
+ }
#ifdef HAVE_REPLICATION
void *place_transmit_mem= transmit_mem.data;
@@ -119,16 +127,29 @@ int delegates_init()
binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate;
if (!binlog_transmit_delegate->is_inited())
+ {
+ sql_print_error("Initialization of binlog transmit delegates failed. "
+ "Please report a bug.");
return 1;
+ }
binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate;
if (!binlog_relay_io_delegate->is_inited())
+ {
+ sql_print_error("Initialization binlog relay IO delegates failed. "
+ "Please report a bug.");
return 1;
+ }
#endif
if (pthread_key_create(&RPL_TRANS_BINLOG_INFO, NULL))
+ {
+ sql_print_error("Error while creating pthread specific data key for replication. "
+ "Please report a bug.");
return 1;
+ }
+
return 0;
}
=== modified file 'sql/sql_acl.cc'
--- a/sql/sql_acl.cc 2010-10-25 15:11:58 +0000
+++ b/sql/sql_acl.cc 2010-11-02 15:45:26 +0000
@@ -268,11 +268,13 @@ class ACL_PROXY_USER :public ACL_ACCESS
bool with_grant;
typedef enum {
- MYSQL_PROXY_PRIV_HOST,
- MYSQL_PROXY_PRIV_USER,
- MYSQL_PROXY_PRIV_PROXIED_HOST,
- MYSQL_PROXY_PRIV_PROXIED_USER,
- MYSQL_PROXY_PRIV_WITH_GRANT } old_acl_proxy_users;
+ MYSQL_PROXIES_PRIV_HOST,
+ MYSQL_PROXIES_PRIV_USER,
+ MYSQL_PROXIES_PRIV_PROXIED_HOST,
+ MYSQL_PROXIES_PRIV_PROXIED_USER,
+ MYSQL_PROXIES_PRIV_WITH_GRANT,
+ MYSQL_PROXIES_PRIV_GRANTOR,
+ MYSQL_PROXIES_PRIV_TIMESTAMP } old_acl_proxy_users;
public:
ACL_PROXY_USER () {};
@@ -308,11 +310,11 @@ public:
void init(TABLE *table, MEM_ROOT *mem)
{
- init (get_field(mem, table->field[MYSQL_PROXY_PRIV_HOST]),
- get_field(mem, table->field[MYSQL_PROXY_PRIV_USER]),
- get_field(mem, table->field[MYSQL_PROXY_PRIV_PROXIED_HOST]),
- get_field(mem, table->field[MYSQL_PROXY_PRIV_PROXIED_USER]),
- table->field[MYSQL_PROXY_PRIV_WITH_GRANT]->val_int() != 0);
+ init (get_field(mem, table->field[MYSQL_PROXIES_PRIV_HOST]),
+ get_field(mem, table->field[MYSQL_PROXIES_PRIV_USER]),
+ get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_HOST]),
+ get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_USER]),
+ table->field[MYSQL_PROXIES_PRIV_WITH_GRANT]->val_int() != 0);
}
bool get_with_grant() { return with_grant; }
@@ -337,7 +339,7 @@ public:
(hostname_requires_resolving(host.hostname) ||
hostname_requires_resolving(proxied_host.hostname)))
{
- sql_print_warning("'proxy_priv' entry '%s@%s %s@%s' "
+ sql_print_warning("'proxes_priv' entry '%s@%s %s@%s' "
"ignored in --skip-name-resolve mode.",
proxied_user ? proxied_user : "",
proxied_host.hostname ? proxied_host.hostname : "",
@@ -452,19 +454,19 @@ public:
user->str ? user->str : "<NULL>",
proxied_host->str ? proxied_host->str : "<NULL>",
proxied_user->str ? proxied_user->str : "<NULL>"));
- if (table->field[MYSQL_PROXY_PRIV_HOST]->store(host->str,
+ if (table->field[MYSQL_PROXIES_PRIV_HOST]->store(host->str,
host->length,
system_charset_info))
DBUG_RETURN(TRUE);
- if (table->field[MYSQL_PROXY_PRIV_USER]->store(user->str,
+ if (table->field[MYSQL_PROXIES_PRIV_USER]->store(user->str,
user->length,
system_charset_info))
DBUG_RETURN(TRUE);
- if (table->field[MYSQL_PROXY_PRIV_PROXIED_HOST]->store(proxied_host->str,
+ if (table->field[MYSQL_PROXIES_PRIV_PROXIED_HOST]->store(proxied_host->str,
proxied_host->length,
system_charset_info))
DBUG_RETURN(TRUE);
- if (table->field[MYSQL_PROXY_PRIV_PROXIED_USER]->store(proxied_user->str,
+ if (table->field[MYSQL_PROXIES_PRIV_PROXIED_USER]->store(proxied_user->str,
proxied_user->length,
system_charset_info))
DBUG_RETURN(TRUE);
@@ -472,20 +474,25 @@ public:
DBUG_RETURN(FALSE);
}
- static int store_data_record(TABLE *table,
- const LEX_STRING *host,
+ static int store_data_record(TABLE *table,
+ const LEX_STRING *host,
const LEX_STRING *user,
- const LEX_STRING *proxied_host,
+ const LEX_STRING *proxied_host,
const LEX_STRING *proxied_user,
- bool with_grant)
+ bool with_grant,
+ const char *grantor)
{
- DBUG_ENTER ("ACL_PROXY_USER::store_pk");
- if (store_pk (table, host, user, proxied_host, proxied_user))
+ DBUG_ENTER("ACL_PROXY_USER::store_pk");
+ if (store_pk(table, host, user, proxied_host, proxied_user))
DBUG_RETURN(TRUE);
- DBUG_PRINT ("info", ("with_grant=%s", with_grant ? "TRUE" : "FALSE"));
- if (table->field[MYSQL_PROXY_PRIV_WITH_GRANT]->store(with_grant ? 1 : 0,
+ DBUG_PRINT("info", ("with_grant=%s", with_grant ? "TRUE" : "FALSE"));
+ if (table->field[MYSQL_PROXIES_PRIV_WITH_GRANT]->store(with_grant ? 1 : 0,
TRUE))
DBUG_RETURN(TRUE);
+ if (table->field[MYSQL_PROXIES_PRIV_GRANTOR]->store(grantor,
+ strlen(grantor),
+ system_charset_info))
+ DBUG_RETURN(TRUE);
DBUG_RETURN(FALSE);
}
@@ -1113,8 +1120,8 @@ my_bool acl_reload(THD *thd)
tables[2].init_one_table(C_STRING_WITH_LEN("mysql"),
C_STRING_WITH_LEN("db"), "db", TL_READ);
tables[3].init_one_table(C_STRING_WITH_LEN("mysql"),
- C_STRING_WITH_LEN("proxy_priv"),
- "proxy_priv", TL_READ);
+ C_STRING_WITH_LEN("proxies_priv"),
+ "proxies_priv", TL_READ);
tables[0].next_local= tables[0].next_global= tables + 1;
tables[1].next_local= tables[1].next_global= tables + 2;
tables[2].next_local= tables[2].next_global= tables + 3;
@@ -2608,7 +2615,7 @@ acl_insert_proxy_user(ACL_PROXY_USER *ne
static int
-replace_proxy_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
+replace_proxies_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
const LEX_USER *proxied_user, bool with_grant_arg,
bool revoke_grant)
{
@@ -2616,8 +2623,9 @@ replace_proxy_priv_table(THD *thd, TABLE
int error;
uchar user_key[MAX_KEY_LENGTH];
ACL_PROXY_USER new_grant;
+ char grantor[USER_HOST_BUFF_SIZE];
- DBUG_ENTER("replace_proxy_priv_table");
+ DBUG_ENTER("replace_proxies_priv_table");
if (!initialized)
{
@@ -2639,6 +2647,8 @@ replace_proxy_priv_table(THD *thd, TABLE
key_copy(user_key, table->record[0], table->key_info,
table->key_info->key_length);
+ get_grantor(thd, grantor);
+
table->file->ha_index_init(0, 1);
if (table->file->index_read_map(table->record[0], user_key,
HA_WHOLE_KEY,
@@ -2655,7 +2665,8 @@ replace_proxy_priv_table(THD *thd, TABLE
ACL_PROXY_USER::store_data_record(table, &user->host, &user->user,
&proxied_user->host,
&proxied_user->user,
- with_grant_arg);
+ with_grant_arg,
+ grantor);
}
else
{
@@ -2712,7 +2723,7 @@ table_error:
table->file->print_error(error, MYF(0)); /* purecov: inspected */
abort:
- DBUG_PRINT("info", ("aborting replace_proxy_priv_table"));
+ DBUG_PRINT("info", ("aborting replace_proxies_priv_table"));
table->file->ha_index_end();
DBUG_RETURN(-1);
}
@@ -3962,14 +3973,14 @@ bool mysql_grant(THD *thd, const char *d
proxied_user= str_list++;
}
- /* open the mysql.user and mysql.db or mysql.proxy_priv tables */
+ /* open the mysql.user and mysql.db or mysql.proxies_priv tables */
tables[0].init_one_table(C_STRING_WITH_LEN("mysql"),
C_STRING_WITH_LEN("user"), "user", TL_WRITE);
if (is_proxy)
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
- C_STRING_WITH_LEN("proxy_priv"),
- "proxy_priv",
+ C_STRING_WITH_LEN("proxies_priv"),
+ "proxies_priv",
TL_WRITE);
else
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
@@ -4063,7 +4074,7 @@ bool mysql_grant(THD *thd, const char *d
}
else if (is_proxy)
{
- if (replace_proxy_priv_table (thd, tables[1].table, Str, proxied_user,
+ if (replace_proxies_priv_table (thd, tables[1].table, Str, proxied_user,
rights & GRANT_ACL ? TRUE : FALSE,
revoke_grant))
result= -1;
@@ -5690,8 +5701,8 @@ int open_grant_tables(THD *thd, TABLE_LI
C_STRING_WITH_LEN("procs_priv"),
"procs_priv", TL_WRITE);
(tables+5)->init_one_table(C_STRING_WITH_LEN("mysql"),
- C_STRING_WITH_LEN("proxy_priv"),
- "proxy_priv", TL_WRITE);
+ C_STRING_WITH_LEN("proxies_priv"),
+ "proxies_priv", TL_WRITE);
tables->next_local= tables->next_global= tables + 1;
(tables+1)->next_local= (tables+1)->next_global= tables + 2;
(tables+2)->next_local= (tables+2)->next_global= tables + 3;
@@ -6283,7 +6294,7 @@ static int handle_grant_data(TABLE_LIST
}
}
- /* Handle proxy_priv table. */
+ /* Handle proxies_priv table. */
if ((found= handle_grant_table(tables, 5, drop, user_from, user_to)) < 0)
{
/* Handle of table failed, don't touch the in-memory array. */
@@ -6291,7 +6302,7 @@ static int handle_grant_data(TABLE_LIST
}
else
{
- /* Handle proxy_priv array. */
+ /* Handle proxies_priv array. */
if ((handle_grant_struct(5, drop, user_from, user_to) && !result) ||
found)
result= 1; /* At least one record/element found. */
=== modified file 'sql/sql_partition.cc'
--- a/sql/sql_partition.cc 2010-10-27 07:32:26 +0000
+++ b/sql/sql_partition.cc 2010-11-05 13:16:27 +0000
@@ -1997,7 +1997,7 @@ static int add_part_field_list(File fptr
String field_string("", 0, system_charset_info);
THD *thd= current_thd;
ulonglong save_options= thd->variables.option_bits;
- thd->variables.option_bits= 0;
+ thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE;
append_identifier(thd, &field_string, field_str,
strlen(field_str));
thd->variables.option_bits= save_options;
@@ -2016,8 +2016,7 @@ static int add_name_string(File fptr, co
String name_string("", 0, system_charset_info);
THD *thd= current_thd;
ulonglong save_options= thd->variables.option_bits;
-
- thd->variables.option_bits= 0;
+ thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE;
append_identifier(thd, &name_string, name,
strlen(name));
thd->variables.option_bits= save_options;
=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc 2010-10-27 07:32:26 +0000
+++ b/sql/sql_show.cc 2010-11-02 14:02:16 +0000
@@ -480,12 +480,6 @@ find_files(THD *thd, List<LEX_STRING> *f
else if (wild_compare(uname, wild, 0))
continue;
}
- if (!(file_name=
- thd->make_lex_string(file_name, uname, file_name_len, TRUE)))
- {
- my_dirend(dirp);
- DBUG_RETURN(FIND_FILES_OOM);
- }
}
else
{
=== modified file 'sql/sql_yacc.yy'
--- a/sql/sql_yacc.yy 2010-10-13 06:27:03 +0000
+++ b/sql/sql_yacc.yy 2010-11-03 14:51:52 +0000
@@ -12497,6 +12497,7 @@ keyword_sp:
| FILE_SYM {}
| FIRST_SYM {}
| FIXED_SYM {}
+ | GENERAL {}
| GEOMETRY_SYM {}
| GEOMETRYCOLLECTION {}
| GET_FORMAT {}
@@ -12506,6 +12507,7 @@ keyword_sp:
| HOSTS_SYM {}
| HOUR_SYM {}
| IDENTIFIED_SYM {}
+ | IGNORE_SERVER_IDS_SYM {}
| INVOKER_SYM {}
| IMPORT {}
| INDEXES {}
@@ -12528,6 +12530,7 @@ keyword_sp:
| LOGS_SYM {}
| MAX_ROWS {}
| MASTER_SYM {}
+ | MASTER_HEARTBEAT_PERIOD_SYM {}
| MASTER_HOST_SYM {}
| MASTER_PORT_SYM {}
| MASTER_LOG_FILE_SYM {}
@@ -12633,6 +12636,7 @@ keyword_sp:
| SIMPLE_SYM {}
| SHARE_SYM {}
| SHUTDOWN {}
+ | SLOW {}
| SNAPSHOT_SYM {}
| SOUNDS_SYM {}
| SOURCE_SYM {}
=== modified file 'storage/innobase/os/os0sync.c'
--- a/storage/innobase/os/os0sync.c 2010-10-28 17:12:23 +0000
+++ b/storage/innobase/os/os0sync.c 2010-11-01 13:12:59 +0000
@@ -656,7 +656,7 @@ os_event_wait_time_low(
os_event_reset(). */
{
- ibool timed_out;
+ ibool timed_out = FALSE;
ib_int64_t old_signal_count;
#ifdef __WIN__
=== modified file 'support-files/mysql.spec.sh'
--- a/support-files/mysql.spec.sh 2010-10-06 13:23:46 +0000
+++ b/support-files/mysql.spec.sh 2010-11-02 18:54:58 +0000
@@ -977,6 +977,9 @@ echo "====="
%attr(755, root, root) %{_libdir}/mysql/plugin/auth.so
%attr(755, root, root) %{_libdir}/mysql/plugin/auth_socket.so
%attr(755, root, root) %{_libdir}/mysql/plugin/auth_test_plugin.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_client.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_interface.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_server.so
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/adt_null.so
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libdaemon_example.so
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mypluglib.so
@@ -985,6 +988,9 @@ echo "====="
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth.so
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_socket.so
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_test_plugin.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_client.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_interface.so
+%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_server.so
%if %{WITH_TCMALLOC}
%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
=== modified file 'win/README'
--- a/win/README 2009-03-06 18:25:38 +0000
+++ b/win/README 2010-11-04 10:11:43 +0000
@@ -10,7 +10,8 @@ or ealier.
The Windows build system uses a tool named CMake to generate build files for
a variety of project systems. This tool is combined with a set of jscript
-files to enable building of MySQL for Windows directly out of a bk clone.
+files to enable building of MySQL for Windows directly out of a bzr clone.
+For relevant information, please refer to http://forge.mysql.com/wiki/CMake
The steps required are below.
Step 1:
@@ -41,56 +42,67 @@ before you start the build)
Step 4
------
-Clone your bk tree to any location you like.
+One of the nice CMake features is "out-of-source" build support, which
+means not building in the source directory, but in dedicated build
+directory. This keeps the source directory clean and allows for more than
+single build tree for the same source tree (e.g debug and release, 32 and
+64 bit etc). We'll create subdirectory "bld" in the source directory for
+this purpose. Clone your bzr tree to any location you like.
Step 5
------
-From the root of your installation directory, execute the command:
+From the root of your installation directory use cmake . -L to see the
+various configuration parameters.
-win\configure <options>
-
-The options right now are:
-
- WITH_INNOBASE_STORAGE_ENGINE Enable particular storage engines
- WITH_PARTITION_STORAGE_ENGINE
- WITH_ARCHIVE_STORAGE_ENGINE
- WITH_BLACKHOLE_STORAGE_ENGINE
- WITH_EXAMPLE_STORAGE_ENGINE
- WITH_FEDERATED_STORAGE_ENGINE
- __NT__ Enable named pipe support
- WITHOUT_ATOMICS Do not use atomic instructions
- MYSQL_SERVER_SUFFIX=<suffix> Server suffix, default none
- COMPILATION_COMMENT=<comment> Server comment, default "Source distribution"
- MYSQL_TCP_PORT=<port> Server port, default 3306
- CYBOZU Default character set is UTF8
- EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
- default will be used. (Note - This option should only be
- used by MySQL AB.)
- WITH_EMBEDDED_SERVER Configure solution to produce libmysqld.dll
- and the static mysqlserver.lib
-
So the command line could look like:
-win\configure WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
+cmake .. -G "target" -DWITH_INNOBASE_STORAGE_ENGINE=1
+
+The recommended way of configuring would be to use -DBUILD_CONFIG=mysql_release
+to build binaries exactly the same as the official MySQL releases.
Step 6
------
-From the root of your installation directory/bk clone, execute one of
-the batch files to generate the type of project files you desire.
-
-For Visual Studio 8 (or Visual C++ 2005 express edition), do win\build-vs8.
-For Visual Studio 7.1, do win\build-vs71.
-
-We will support building with nmake in the near future.
-
+From the root of your installation directory/bzr clone, you can
+use cmake to compile the sources. Use cmake --help when necessary.
+Before you start building the sources, please remove the old build area
+created from an earlier run and start afresh.
+
+C:\> del bld
+C:\> md bld
+C:\> cd bld
+C:\> cmake .. -G "target name" -DBUILD_CONFIG=mysql_release
+
+
+For Example:
+To generate the Win64 project files using Visual Studio 9, you would run
+cmake .. -G "Visual Studio 9 2008 Win64"
+
+Other target names supported using CMake 2.6 patch 4 are:
+
+ Visual Studio 7 "Visual Studio 7 .NET 2003"
+ Visual Studio 8 "Visual Studio 8 2005"
+ Visual Studio 8 (64 bit) "Visual Studio 8 2005 Win64"
+ Visual Studio 9 "Visual Studio 9 2008"
+ Visual Studio 9 (64 bit) "Visual Studio 9 2008 Win64"
+
+For generating project files using Visual Studio 10, you need CMake 2.8
+or higher and corresponding target names are
+ Visual Studio 10 "Visual Studio 10"
+ Visual Studio 10 (64 bit) "Visual Studio 10 Win64"
+
Step 7
------
-From the root of your bk clone, start your build.
+From the root of your bzr clone, start your build.
For Visual Studio, execute mysql.sln. This will start the IDE
and you can click the build solution menu option.
+Alternatively, you could start the build from command line as follows
+
+devenv mysql.sln /build relwithdebinfo
+
Current issues
--------------
1. After changing configuration (eg. adding or removing a storage engine), it
=== removed file 'win/build-nmake-x64.bat'
--- a/win/build-nmake-x64.bat 2007-09-05 21:30:38 +0000
+++ b/win/build-nmake-x64.bat 1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-if exist cmakecache.txt del cmakecache.txt
-copy win\nmake_x64_cache.txt cmakecache.txt
-cmake -G "NMake Makefiles"
-copy cmakecache.txt win\nmake_x64_cache.txt
=== removed file 'win/build-nmake.bat'
--- a/win/build-nmake.bat 2007-09-05 21:30:38 +0000
+++ b/win/build-nmake.bat 1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-if exist cmakecache.txt del cmakecache.txt
-copy win\nmake_cache.txt cmakecache.txt
-cmake -G "NMake Makefiles"
-copy cmakecache.txt win\nmake_cache.txt
=== removed file 'win/build-vs71.bat'
--- a/win/build-vs71.bat 2007-03-20 14:42:34 +0000
+++ b/win/build-vs71.bat 1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-if exist cmakecache.txt del cmakecache.txt
-copy win\vs71cache.txt cmakecache.txt
-cmake -G "Visual Studio 7 .NET 2003"
-copy cmakecache.txt win\vs71cache.txt
-
=== removed file 'win/build-vs8.bat'
--- a/win/build-vs8.bat 2007-03-20 14:42:34 +0000
+++ b/win/build-vs8.bat 1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-if exist cmakecache.txt del cmakecache.txt
-copy win\vs8cache.txt cmakecache.txt
-cmake -G "Visual Studio 8 2005"
-copy cmakecache.txt win\vs8cache.txt
=== removed file 'win/build-vs8_x64.bat'
--- a/win/build-vs8_x64.bat 2006-12-31 00:02:27 +0000
+++ b/win/build-vs8_x64.bat 1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-if exist cmakecache.txt del cmakecache.txt
-copy win\vs8cache.txt cmakecache.txt
-cmake -G "Visual Studio 8 2005 Win64"
-copy cmakecache.txt win\vs8cache.txt
=== removed file 'win/build-vs9.bat'
--- a/win/build-vs9.bat 2008-08-21 17:11:17 +0000
+++ b/win/build-vs9.bat 1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-cmake -G "Visual Studio 9 2008"
-
=== removed file 'win/build-vs9_x64.bat'
--- a/win/build-vs9_x64.bat 2008-08-21 17:11:17 +0000
+++ b/win/build-vs9_x64.bat 1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-@echo off
-
-REM Copyright (C) 2006 MySQL AB
-REM
-REM This program is free software; you can redistribute it and/or modify
-REM it under the terms of the GNU General Public License as published by
-REM the Free Software Foundation; version 2 of the License.
-REM
-REM This program is distributed in the hope that it will be useful,
-REM but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License
-REM along with this program; if not, write to the Free Software
-REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-cmake -G "Visual Studio 9 2008 Win64"
-
No bundle (reason: revision is a merge).
| Thread |
|---|
| • bzr commit into mysql-5.5-runtime branch (jon.hauglid:3177) | Jon Olav Hauglid | 5 Nov |