Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
This commit is contained in:
commit
355ff93fbc
@ -9,15 +9,19 @@
|
|||||||
*.core
|
*.core
|
||||||
*.d
|
*.d
|
||||||
*.da
|
*.da
|
||||||
|
*.dll
|
||||||
*.exe
|
*.exe
|
||||||
|
*.exp
|
||||||
*.gcda
|
*.gcda
|
||||||
*.gcno
|
*.gcno
|
||||||
*.gcov
|
*.gcov
|
||||||
*.idb
|
*.idb
|
||||||
|
*.ilk
|
||||||
*.la
|
*.la
|
||||||
*.lai
|
*.lai
|
||||||
*.lib
|
*.lib
|
||||||
*.lo
|
*.lo
|
||||||
|
*.manifest
|
||||||
*.map
|
*.map
|
||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
@ -148,6 +152,7 @@ Makefile
|
|||||||
Makefile.in
|
Makefile.in
|
||||||
Makefile.in'
|
Makefile.in'
|
||||||
PENDING/*
|
PENDING/*
|
||||||
|
scripts/scripts
|
||||||
TAGS
|
TAGS
|
||||||
VC++Files/client/mysql_amd64.dsp
|
VC++Files/client/mysql_amd64.dsp
|
||||||
ac_available_languages_fragment
|
ac_available_languages_fragment
|
||||||
@ -1981,6 +1986,7 @@ sql-bench/test-transactions
|
|||||||
sql-bench/test-wisconsin
|
sql-bench/test-wisconsin
|
||||||
sql/*.cpp
|
sql/*.cpp
|
||||||
sql/*.ds?
|
sql/*.ds?
|
||||||
|
sql/*.def
|
||||||
sql/*.vcproj
|
sql/*.vcproj
|
||||||
sql/.deps/client.Po
|
sql/.deps/client.Po
|
||||||
sql/.deps/derror.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
|
||||||
sql/.libs/udf_example.so.0.0.0
|
sql/.libs/udf_example.so.0.0.0
|
||||||
sql/client.c
|
sql/client.c
|
||||||
|
sql/cmake_dummy.cc
|
||||||
sql/Doxyfile
|
sql/Doxyfile
|
||||||
sql/f.c
|
sql/f.c
|
||||||
sql/gen_lex_hash
|
sql/gen_lex_hash
|
||||||
@ -3046,6 +3053,7 @@ vio/viotest.cpp
|
|||||||
win/configure.data
|
win/configure.data
|
||||||
win/vs71cache.txt
|
win/vs71cache.txt
|
||||||
win/vs8cache.txt
|
win/vs8cache.txt
|
||||||
|
win/nmake_cache.txt
|
||||||
ylwrap
|
ylwrap
|
||||||
zlib/*.ds?
|
zlib/*.ds?
|
||||||
zlib/*.vcproj
|
zlib/*.vcproj
|
||||||
|
@ -115,18 +115,27 @@ ENDIF()
|
|||||||
# Control aspects of the development environment which are
|
# Control aspects of the development environment which are
|
||||||
# specific to MySQL maintainers and developers.
|
# specific to MySQL maintainers and developers.
|
||||||
#
|
#
|
||||||
|
INCLUDE (CheckCCompilerFlag)
|
||||||
OPTION(MYSQL_MAINTAINER_MODE "MySQL maintainer-specific development environment" OFF)
|
OPTION(MYSQL_MAINTAINER_MODE "MySQL maintainer-specific development environment" OFF)
|
||||||
# Whether the maintainer mode should be enabled.
|
# Whether the maintainer mode should be enabled.
|
||||||
IF(MYSQL_MAINTAINER_MODE)
|
IF(MYSQL_MAINTAINER_MODE)
|
||||||
IF(CMAKE_COMPILER_IS_GNUCC)
|
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
|
SET(MY_MAINTAINER_C_WARNINGS
|
||||||
"-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
|
"-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror")
|
||||||
CACHE STRING "C warning options used in maintainer builds.")
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
SET(MY_MAINTAINER_CXX_WARNINGS "${MY_MAINTAINER_C_WARNINGS} -Wno-unused-parameter"
|
SET(MY_MAINTAINER_CXX_WARNINGS "${MY_MAINTAINER_C_WARNINGS} -Wno-unused-parameter"
|
||||||
CACHE STRING "C++ warning options used in maintainer builds.")
|
CACHE STRING "C++ warning options used in maintainer builds.")
|
||||||
ENDIF()
|
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.
|
# Do not make warnings in checks into errors.
|
||||||
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX)
|
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX)
|
||||||
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-error")
|
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-error")
|
||||||
|
@ -42,6 +42,9 @@ MACRO(GET_MYSQL_VERSION)
|
|||||||
IF(NOT VERSION_STRING)
|
IF(NOT VERSION_STRING)
|
||||||
FILE(STRINGS configure.in str REGEX "AC_INIT\\(")
|
FILE(STRINGS configure.in str REGEX "AC_INIT\\(")
|
||||||
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+[-][a-zAZ0-9]+" VERSION_STRING "${str}")
|
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()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -19,6 +19,7 @@ AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS], [
|
|||||||
AS_IF([test "$GCC" = "yes"], [
|
AS_IF([test "$GCC" = "yes"], [
|
||||||
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
|
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
|
||||||
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
|
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
|
||||||
|
C_WARNINGS="${C_WARNINGS} -Wdeclaration-after-statement"
|
||||||
])
|
])
|
||||||
|
|
||||||
# Test whether the warning options work.
|
# Test whether the warning options work.
|
||||||
|
@ -27,7 +27,7 @@ dnl
|
|||||||
dnl When changing the major version number please also check the switch
|
dnl When changing the major version number please also check the switch
|
||||||
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
||||||
dnl to update version.c in ndb.
|
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_CONFIG_SRCDIR([sql/mysqld.cc])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
@ -5317,8 +5317,7 @@ sub gdb_arguments {
|
|||||||
"break mysql_parse\n" .
|
"break mysql_parse\n" .
|
||||||
"commands 1\n" .
|
"commands 1\n" .
|
||||||
"disable 1\n" .
|
"disable 1\n" .
|
||||||
"end\n" .
|
"end\n");
|
||||||
"run");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $opt_manual_gdb )
|
if ( $opt_manual_gdb )
|
||||||
|
@ -21,7 +21,7 @@ ndb_binlog_index
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
|
@ -15,7 +15,7 @@ ndb_binlog_index
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
@ -49,7 +49,7 @@ ndb_binlog_index
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
@ -91,7 +91,7 @@ ndb_binlog_index
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
|
@ -134,3 +134,15 @@ INSERT INTO t1 VALUES ('abc\0\0');
|
|||||||
INSERT INTO t1 VALUES ('abc\0\0');
|
INSERT INTO t1 VALUES ('abc\0\0');
|
||||||
ERROR 23000: Duplicate entry 'abc\x00\x00' for key 'PRIMARY'
|
ERROR 23000: Duplicate entry 'abc\x00\x00' for key 'PRIMARY'
|
||||||
DROP TABLE t1;
|
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
|
||||||
|
#
|
||||||
|
@ -88,7 +88,7 @@ host
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
|
@ -45,3 +45,227 @@ p1
|
|||||||
max=1
|
max=1
|
||||||
drop procedure p1;
|
drop procedure p1;
|
||||||
drop table t1;
|
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;
|
||||||
|
@ -27,7 +27,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.renamed_general_log OK
|
mysql.renamed_general_log OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
|
@ -15,7 +15,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -44,7 +44,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -73,7 +73,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -104,7 +104,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -139,7 +139,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -177,7 +177,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
|
@ -17,7 +17,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log OK
|
mysql.slow_log OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
|
@ -18,7 +18,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
mysql.slow_log
|
||||||
note : The storage engine for the table doesn't support analyze
|
note : The storage engine for the table doesn't support analyze
|
||||||
@ -46,7 +46,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
mysql.slow_log
|
||||||
note : The storage engine for the table doesn't support optimize
|
note : The storage engine for the table doesn't support optimize
|
||||||
@ -72,7 +72,7 @@ mysql.ndb_binlog_index OK
|
|||||||
mysql.plugin OK
|
mysql.plugin OK
|
||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxy_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
mysql.slow_log
|
||||||
note : The storage engine for the table doesn't support analyze
|
note : The storage engine for the table doesn't support analyze
|
||||||
@ -98,7 +98,7 @@ mysql.ndb_binlog_index Table is already up to date
|
|||||||
mysql.plugin Table is already up to date
|
mysql.plugin Table is already up to date
|
||||||
mysql.proc Table is already up to date
|
mysql.proc Table is already up to date
|
||||||
mysql.procs_priv 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.servers Table is already up to date
|
||||||
mysql.slow_log
|
mysql.slow_log
|
||||||
note : The storage engine for the table doesn't support optimize
|
note : The storage engine for the table doesn't support optimize
|
||||||
|
@ -19,6 +19,7 @@ The following options may be given as the first argument:
|
|||||||
--auto-increment-offset[=#]
|
--auto-increment-offset[=#]
|
||||||
Offset added to Auto-increment columns. Used when
|
Offset added to Auto-increment columns. Used when
|
||||||
auto-increment-increment != 1
|
auto-increment-increment != 1
|
||||||
|
--autocommit Set default value for autocommit (0 or 1)
|
||||||
--automatic-sp-privileges
|
--automatic-sp-privileges
|
||||||
Creating and dropping stored procedures alters ACLs
|
Creating and dropping stored procedures alters ACLs
|
||||||
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
||||||
|
@ -19,6 +19,7 @@ The following options may be given as the first argument:
|
|||||||
--auto-increment-offset[=#]
|
--auto-increment-offset[=#]
|
||||||
Offset added to Auto-increment columns. Used when
|
Offset added to Auto-increment columns. Used when
|
||||||
auto-increment-increment != 1
|
auto-increment-increment != 1
|
||||||
|
--autocommit Set default value for autocommit (0 or 1)
|
||||||
--automatic-sp-privileges
|
--automatic-sp-privileges
|
||||||
Creating and dropping stored procedures alters ACLs
|
Creating and dropping stored procedures alters ACLs
|
||||||
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
||||||
|
@ -11,6 +11,26 @@ test_plugin_server plug_dest
|
|||||||
## test plugin auth
|
## test plugin auth
|
||||||
ERROR 28000: Access denied for user 'plug'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'plug'@'localhost' (using password: YES)
|
||||||
GRANT PROXY ON plug_dest TO plug;
|
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();
|
select USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
plug@localhost plug_dest@%
|
plug@localhost plug_dest@%
|
||||||
@ -146,8 +166,8 @@ Grants for test_drop@localhost
|
|||||||
GRANT USAGE ON *.* TO 'test_drop'@'localhost'
|
GRANT USAGE ON *.* TO 'test_drop'@'localhost'
|
||||||
GRANT PROXY ON 'future_user'@'%' TO 'test_drop'@'localhost'
|
GRANT PROXY ON 'future_user'@'%' TO 'test_drop'@'localhost'
|
||||||
DROP USER 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';
|
||||||
Host User Proxied_Host Proxied_User With_Grant
|
Host User Proxied_host Proxied_user With_grant Grantor Timestamp
|
||||||
DROP USER proxy_admin;
|
DROP USER proxy_admin;
|
||||||
DROP USER grant_plug,grant_plug_dest,grant_plug_dest2;
|
DROP USER grant_plug,grant_plug_dest,grant_plug_dest2;
|
||||||
## END GRANT PROXY tests
|
## END GRANT PROXY tests
|
||||||
|
@ -14,7 +14,7 @@ ndb_binlog_index
|
|||||||
plugin
|
plugin
|
||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxy_priv
|
proxies_priv
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
tables_priv
|
tables_priv
|
||||||
|
@ -134,11 +134,13 @@ def mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_general_
|
|||||||
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 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 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 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 proxies_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL 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 proxies_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) 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 proxies_priv Proxied_host 3 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 proxies_priv Proxied_user 4 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 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 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 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
|
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 NULL NULL NULL timestamp
|
|||||||
3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
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')
|
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
|
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 proxies_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 proxies_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 proxies_priv Proxied_host char 60 180 utf8 utf8_bin char(60)
|
||||||
3.0000 mysql proxy_priv Proxied_User 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 proxy_priv With_Grant tinyint NULL NULL NULL NULL tinyint(1)
|
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 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 Host char 64 192 utf8 utf8_general_ci char(64)
|
||||||
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
||||||
|
@ -106,10 +106,10 @@ def mysql PRIMARY def mysql procs_priv Db
|
|||||||
def mysql PRIMARY def mysql procs_priv User
|
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_name
|
||||||
def mysql PRIMARY def mysql procs_priv Routine_type
|
def mysql PRIMARY def mysql procs_priv Routine_type
|
||||||
def mysql PRIMARY def mysql proxy_priv Host
|
def mysql PRIMARY def mysql proxies_priv Host
|
||||||
def mysql PRIMARY def mysql proxy_priv User
|
def mysql PRIMARY def mysql proxies_priv User
|
||||||
def mysql PRIMARY def mysql proxy_priv Proxied_Host
|
def mysql PRIMARY def mysql proxies_priv Proxied_host
|
||||||
def mysql PRIMARY def mysql proxy_priv Proxied_User
|
def mysql PRIMARY def mysql proxies_priv Proxied_user
|
||||||
def mysql PRIMARY def mysql servers Server_name
|
def mysql PRIMARY def mysql servers Server_name
|
||||||
def mysql PRIMARY def mysql tables_priv Host
|
def mysql PRIMARY def mysql tables_priv Host
|
||||||
def mysql PRIMARY def mysql tables_priv Db
|
def mysql PRIMARY def mysql tables_priv Db
|
||||||
|
@ -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 PRIMARY
|
def mysql procs_priv mysql PRIMARY
|
||||||
def mysql procs_priv mysql Grantor
|
def mysql procs_priv mysql Grantor
|
||||||
def mysql proxy_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
def mysql proxy_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
def mysql proxy_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
def mysql proxy_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
|
def mysql proxies_priv mysql Grantor
|
||||||
def mysql servers mysql PRIMARY
|
def mysql servers mysql PRIMARY
|
||||||
def mysql tables_priv mysql PRIMARY
|
def mysql tables_priv mysql PRIMARY
|
||||||
def mysql tables_priv mysql PRIMARY
|
def mysql tables_priv mysql PRIMARY
|
||||||
|
@ -40,10 +40,11 @@ def mysql procs_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE
|
|||||||
def mysql procs_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
|
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 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 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 proxies_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
||||||
def mysql proxy_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
||||||
def mysql proxy_priv 0 mysql PRIMARY 3 Proxied_Host A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
||||||
def mysql proxy_priv 0 mysql PRIMARY 4 Proxied_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 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 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
||||||
|
@ -73,7 +73,7 @@ def mysql PRIMARY mysql ndb_binlog_index
|
|||||||
def mysql PRIMARY mysql plugin
|
def mysql PRIMARY mysql plugin
|
||||||
def mysql PRIMARY mysql proc
|
def mysql PRIMARY mysql proc
|
||||||
def mysql PRIMARY mysql procs_priv
|
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 servers
|
||||||
def mysql PRIMARY mysql tables_priv
|
def mysql PRIMARY mysql tables_priv
|
||||||
def mysql PRIMARY mysql time_zone
|
def mysql PRIMARY mysql time_zone
|
||||||
|
@ -23,7 +23,7 @@ def mysql PRIMARY mysql ndb_binlog_index PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql plugin PRIMARY KEY
|
def mysql PRIMARY mysql plugin PRIMARY KEY
|
||||||
def mysql PRIMARY mysql proc PRIMARY KEY
|
def mysql PRIMARY mysql proc PRIMARY KEY
|
||||||
def mysql PRIMARY mysql procs_priv 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 servers PRIMARY KEY
|
||||||
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql time_zone PRIMARY KEY
|
def mysql PRIMARY mysql time_zone PRIMARY KEY
|
||||||
|
@ -336,7 +336,7 @@ user_comment Procedure privileges
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME proxy_priv
|
TABLE_NAME proxies_priv
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
|
29
mysql-test/suite/sys_vars/inc/autocommit_func2.inc
Normal file
29
mysql-test/suite/sys_vars/inc/autocommit_func2.inc
Normal file
@ -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;
|
46
mysql-test/suite/sys_vars/r/autocommit_func2.result
Normal file
46
mysql-test/suite/sys_vars/r/autocommit_func2.result
Normal file
@ -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;
|
42
mysql-test/suite/sys_vars/r/autocommit_func3.result
Normal file
42
mysql-test/suite/sys_vars/r/autocommit_func3.result
Normal file
@ -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;
|
1
mysql-test/suite/sys_vars/t/autocommit_func2-master.opt
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func2-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--autocommit=1
|
1
mysql-test/suite/sys_vars/t/autocommit_func2.test
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func2.test
Normal file
@ -0,0 +1 @@
|
|||||||
|
--source suite/sys_vars/inc/autocommit_func2.inc
|
1
mysql-test/suite/sys_vars/t/autocommit_func3-master.opt
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func3-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--autocommit=0
|
1
mysql-test/suite/sys_vars/t/autocommit_func3.test
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func3.test
Normal file
@ -0,0 +1 @@
|
|||||||
|
--source suite/sys_vars/inc/autocommit_func2.inc
|
@ -155,3 +155,19 @@ INSERT INTO t1 VALUES ('abc\0\0');
|
|||||||
--error ER_DUP_ENTRY
|
--error ER_DUP_ENTRY
|
||||||
INSERT INTO t1 VALUES ('abc\0\0');
|
INSERT INTO t1 VALUES ('abc\0\0');
|
||||||
DROP TABLE t1;
|
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 #
|
||||||
|
@ -62,5 +62,103 @@ call p1();
|
|||||||
drop procedure p1;
|
drop procedure p1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
# End of 5.0 tests
|
# 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;
|
||||||
|
@ -16,6 +16,11 @@ connect(plug_con,localhost,plug,plug_dest);
|
|||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
GRANT PROXY ON plug_dest TO plug;
|
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);
|
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;
|
GRANT PROXY ON future_user TO test_drop@localhost;
|
||||||
SHOW GRANTS FOR test_drop@localhost;
|
SHOW GRANTS FOR test_drop@localhost;
|
||||||
DROP USER 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;
|
DROP USER proxy_admin;
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL,
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# 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
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ INSERT INTO servers VALUES ('test','localhost','test','root','', 0,'','mysql','r
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# 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
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL,
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# 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
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -478,7 +478,7 @@ PREPARE stmt FROM @str;
|
|||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DROP PREPARE 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
|
-- Remember for later if proxies_priv table already existed
|
||||||
set @had_proxy_priv_table= @@warning_count != 0;
|
set @had_proxies_priv_table= @@warning_count != 0;
|
||||||
|
@ -30,8 +30,8 @@ INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE LOW
|
|||||||
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
|
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
|
||||||
DROP TABLE tmp_user;
|
DROP TABLE tmp_user;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_proxy_priv LIKE proxy_priv;
|
CREATE TEMPORARY TABLE tmp_proxies_priv LIKE proxies_priv;
|
||||||
INSERT INTO tmp_proxy_priv VALUES ('localhost', 'root', '', '', TRUE);
|
INSERT INTO tmp_proxies_priv VALUES ('localhost', 'root', '', '', TRUE, '', now());
|
||||||
REPLACE INTO tmp_proxy_priv SELECT @current_hostname, 'root', '', '', TRUE FROM DUAL WHERE LOWER (@current_hostname) != 'localhost';
|
REPLACE INTO tmp_proxies_priv SELECT @current_hostname, 'root', '', '', TRUE, '', now() FROM DUAL WHERE LOWER (@current_hostname) != 'localhost';
|
||||||
INSERT INTO proxy_priv SELECT * FROM tmp_proxy_priv WHERE @had_proxy_priv_table=0;
|
INSERT INTO proxies_priv SELECT * FROM tmp_proxies_priv WHERE @had_proxies_priv_table=0;
|
||||||
DROP TABLE tmp_proxy_priv;
|
DROP TABLE tmp_proxies_priv;
|
||||||
|
@ -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 ADD plugin char(60) DEFAULT '' NOT NULL, ADD authentication_string TEXT NOT NULL;
|
||||||
ALTER TABLE user MODIFY plugin char(60) DEFAULT '' 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
|
# Activate the new, possible modified privilege tables
|
||||||
# This should not be needed, but gives us some extra testing that the above
|
# This should not be needed, but gives us some extra testing that the above
|
||||||
|
11
sql/item.cc
11
sql/item.cc
@ -1853,11 +1853,12 @@ bool agg_item_set_converter(DTCollation &coll, const char *fname,
|
|||||||
*arg= conv;
|
*arg= conv;
|
||||||
else
|
else
|
||||||
thd->change_item_tree(arg, conv);
|
thd->change_item_tree(arg, conv);
|
||||||
/*
|
|
||||||
We do not check conv->fixed, because Item_func_conv_charset which can
|
if (conv->fix_fields(thd, arg))
|
||||||
be return by safe_charset_converter can't be fixed at creation
|
{
|
||||||
*/
|
res= TRUE;
|
||||||
conv->fix_fields(thd, arg);
|
break; // we cannot return here, we need to restore "arena".
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (arena)
|
if (arena)
|
||||||
thd->restore_active_arena(arena, &backup);
|
thd->restore_active_arena(arena, &backup);
|
||||||
|
@ -3778,12 +3778,12 @@ static int init_server_components()
|
|||||||
unireg_abort(1);
|
unireg_abort(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initialize delegates for extension observers */
|
/*
|
||||||
|
initialize delegates for extension observers, errors have already
|
||||||
|
been reported in the function
|
||||||
|
*/
|
||||||
if (delegates_init())
|
if (delegates_init())
|
||||||
{
|
|
||||||
sql_print_error("Initialize extension delegates failed");
|
|
||||||
unireg_abort(1);
|
unireg_abort(1);
|
||||||
}
|
|
||||||
|
|
||||||
/* need to configure logging before initializing storage engines */
|
/* need to configure logging before initializing storage engines */
|
||||||
if (opt_log_slave_updates && !opt_bin_log)
|
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 "
|
{"ansi", 'a', "Use ANSI SQL syntax instead of MySQL syntax. This mode "
|
||||||
"will also set transaction isolation level 'serializable'.", 0, 0, 0,
|
"will also set transaction isolation level 'serializable'.", 0, 0, 0,
|
||||||
GET_NO_ARG, NO_ARG, 0, 0, 0, 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.",
|
{"bind-address", OPT_BIND_ADDRESS, "IP address to bind to.",
|
||||||
&my_bind_addr_str, &my_bind_addr_str, 0, GET_STR,
|
&my_bind_addr_str, &my_bind_addr_str, 0, GET_STR,
|
||||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
@ -7114,6 +7120,13 @@ mysqld_get_one_option(int optid,
|
|||||||
if (argument == NULL) /* no argument */
|
if (argument == NULL) /* no argument */
|
||||||
log_error_file_ptr= const_cast<char*>("");
|
log_error_file_ptr= const_cast<char*>("");
|
||||||
break;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -391,7 +391,8 @@ enum options_mysqld
|
|||||||
OPT_UPDATE_LOG,
|
OPT_UPDATE_LOG,
|
||||||
OPT_WANT_CORE,
|
OPT_WANT_CORE,
|
||||||
OPT_ENGINE_CONDITION_PUSHDOWN,
|
OPT_ENGINE_CONDITION_PUSHDOWN,
|
||||||
OPT_LOG_ERROR
|
OPT_LOG_ERROR,
|
||||||
|
OPT_AUTOCOMMIT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,12 +105,20 @@ int delegates_init()
|
|||||||
transaction_delegate= new (place_trans_mem) Trans_delegate;
|
transaction_delegate= new (place_trans_mem) Trans_delegate;
|
||||||
|
|
||||||
if (!transaction_delegate->is_inited())
|
if (!transaction_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization of transaction delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate;
|
binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate;
|
||||||
|
|
||||||
if (!binlog_storage_delegate->is_inited())
|
if (!binlog_storage_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization binlog storage delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
void *place_transmit_mem= transmit_mem.data;
|
void *place_transmit_mem= transmit_mem.data;
|
||||||
@ -119,16 +127,29 @@ int delegates_init()
|
|||||||
binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate;
|
binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate;
|
||||||
|
|
||||||
if (!binlog_transmit_delegate->is_inited())
|
if (!binlog_transmit_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization of binlog transmit delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate;
|
binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate;
|
||||||
|
|
||||||
if (!binlog_relay_io_delegate->is_inited())
|
if (!binlog_relay_io_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization binlog relay IO delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pthread_key_create(&RPL_TRANS_BINLOG_INFO, NULL))
|
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 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,11 +268,13 @@ class ACL_PROXY_USER :public ACL_ACCESS
|
|||||||
bool with_grant;
|
bool with_grant;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MYSQL_PROXY_PRIV_HOST,
|
MYSQL_PROXIES_PRIV_HOST,
|
||||||
MYSQL_PROXY_PRIV_USER,
|
MYSQL_PROXIES_PRIV_USER,
|
||||||
MYSQL_PROXY_PRIV_PROXIED_HOST,
|
MYSQL_PROXIES_PRIV_PROXIED_HOST,
|
||||||
MYSQL_PROXY_PRIV_PROXIED_USER,
|
MYSQL_PROXIES_PRIV_PROXIED_USER,
|
||||||
MYSQL_PROXY_PRIV_WITH_GRANT } old_acl_proxy_users;
|
MYSQL_PROXIES_PRIV_WITH_GRANT,
|
||||||
|
MYSQL_PROXIES_PRIV_GRANTOR,
|
||||||
|
MYSQL_PROXIES_PRIV_TIMESTAMP } old_acl_proxy_users;
|
||||||
public:
|
public:
|
||||||
ACL_PROXY_USER () {};
|
ACL_PROXY_USER () {};
|
||||||
|
|
||||||
@ -308,11 +310,11 @@ public:
|
|||||||
|
|
||||||
void init(TABLE *table, MEM_ROOT *mem)
|
void init(TABLE *table, MEM_ROOT *mem)
|
||||||
{
|
{
|
||||||
init (get_field(mem, table->field[MYSQL_PROXY_PRIV_HOST]),
|
init (get_field(mem, table->field[MYSQL_PROXIES_PRIV_HOST]),
|
||||||
get_field(mem, table->field[MYSQL_PROXY_PRIV_USER]),
|
get_field(mem, table->field[MYSQL_PROXIES_PRIV_USER]),
|
||||||
get_field(mem, table->field[MYSQL_PROXY_PRIV_PROXIED_HOST]),
|
get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_HOST]),
|
||||||
get_field(mem, table->field[MYSQL_PROXY_PRIV_PROXIED_USER]),
|
get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_USER]),
|
||||||
table->field[MYSQL_PROXY_PRIV_WITH_GRANT]->val_int() != 0);
|
table->field[MYSQL_PROXIES_PRIV_WITH_GRANT]->val_int() != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get_with_grant() { return with_grant; }
|
bool get_with_grant() { return with_grant; }
|
||||||
@ -337,7 +339,7 @@ public:
|
|||||||
(hostname_requires_resolving(host.hostname) ||
|
(hostname_requires_resolving(host.hostname) ||
|
||||||
hostname_requires_resolving(proxied_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.",
|
"ignored in --skip-name-resolve mode.",
|
||||||
proxied_user ? proxied_user : "",
|
proxied_user ? proxied_user : "",
|
||||||
proxied_host.hostname ? proxied_host.hostname : "",
|
proxied_host.hostname ? proxied_host.hostname : "",
|
||||||
@ -452,19 +454,19 @@ public:
|
|||||||
user->str ? user->str : "<NULL>",
|
user->str ? user->str : "<NULL>",
|
||||||
proxied_host->str ? proxied_host->str : "<NULL>",
|
proxied_host->str ? proxied_host->str : "<NULL>",
|
||||||
proxied_user->str ? proxied_user->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,
|
host->length,
|
||||||
system_charset_info))
|
system_charset_info))
|
||||||
DBUG_RETURN(TRUE);
|
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,
|
user->length,
|
||||||
system_charset_info))
|
system_charset_info))
|
||||||
DBUG_RETURN(TRUE);
|
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,
|
proxied_host->length,
|
||||||
system_charset_info))
|
system_charset_info))
|
||||||
DBUG_RETURN(TRUE);
|
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,
|
proxied_user->length,
|
||||||
system_charset_info))
|
system_charset_info))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
@ -472,20 +474,25 @@ public:
|
|||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int store_data_record(TABLE *table,
|
static int store_data_record(TABLE *table,
|
||||||
const LEX_STRING *host,
|
const LEX_STRING *host,
|
||||||
const LEX_STRING *user,
|
const LEX_STRING *user,
|
||||||
const LEX_STRING *proxied_host,
|
const LEX_STRING *proxied_host,
|
||||||
const LEX_STRING *proxied_user,
|
const LEX_STRING *proxied_user,
|
||||||
bool with_grant)
|
bool with_grant,
|
||||||
|
const char *grantor)
|
||||||
{
|
{
|
||||||
DBUG_ENTER ("ACL_PROXY_USER::store_pk");
|
DBUG_ENTER("ACL_PROXY_USER::store_pk");
|
||||||
if (store_pk (table, host, user, proxied_host, proxied_user))
|
if (store_pk(table, host, user, proxied_host, proxied_user))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
DBUG_PRINT ("info", ("with_grant=%s", with_grant ? "TRUE" : "FALSE"));
|
DBUG_PRINT("info", ("with_grant=%s", with_grant ? "TRUE" : "FALSE"));
|
||||||
if (table->field[MYSQL_PROXY_PRIV_WITH_GRANT]->store(with_grant ? 1 : 0,
|
if (table->field[MYSQL_PROXIES_PRIV_WITH_GRANT]->store(with_grant ? 1 : 0,
|
||||||
TRUE))
|
TRUE))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
|
if (table->field[MYSQL_PROXIES_PRIV_GRANTOR]->store(grantor,
|
||||||
|
strlen(grantor),
|
||||||
|
system_charset_info))
|
||||||
|
DBUG_RETURN(TRUE);
|
||||||
|
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
}
|
}
|
||||||
@ -1113,8 +1120,8 @@ my_bool acl_reload(THD *thd)
|
|||||||
tables[2].init_one_table(C_STRING_WITH_LEN("mysql"),
|
tables[2].init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
C_STRING_WITH_LEN("db"), "db", TL_READ);
|
C_STRING_WITH_LEN("db"), "db", TL_READ);
|
||||||
tables[3].init_one_table(C_STRING_WITH_LEN("mysql"),
|
tables[3].init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
C_STRING_WITH_LEN("proxy_priv"),
|
C_STRING_WITH_LEN("proxies_priv"),
|
||||||
"proxy_priv", TL_READ);
|
"proxies_priv", TL_READ);
|
||||||
tables[0].next_local= tables[0].next_global= tables + 1;
|
tables[0].next_local= tables[0].next_global= tables + 1;
|
||||||
tables[1].next_local= tables[1].next_global= tables + 2;
|
tables[1].next_local= tables[1].next_global= tables + 2;
|
||||||
tables[2].next_local= tables[2].next_global= tables + 3;
|
tables[2].next_local= tables[2].next_global= tables + 3;
|
||||||
@ -2608,7 +2615,7 @@ acl_insert_proxy_user(ACL_PROXY_USER *new_value)
|
|||||||
|
|
||||||
|
|
||||||
static int
|
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,
|
const LEX_USER *proxied_user, bool with_grant_arg,
|
||||||
bool revoke_grant)
|
bool revoke_grant)
|
||||||
{
|
{
|
||||||
@ -2616,8 +2623,9 @@ replace_proxy_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
|
|||||||
int error;
|
int error;
|
||||||
uchar user_key[MAX_KEY_LENGTH];
|
uchar user_key[MAX_KEY_LENGTH];
|
||||||
ACL_PROXY_USER new_grant;
|
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)
|
if (!initialized)
|
||||||
{
|
{
|
||||||
@ -2639,6 +2647,8 @@ replace_proxy_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
|
|||||||
key_copy(user_key, table->record[0], table->key_info,
|
key_copy(user_key, table->record[0], table->key_info,
|
||||||
table->key_info->key_length);
|
table->key_info->key_length);
|
||||||
|
|
||||||
|
get_grantor(thd, grantor);
|
||||||
|
|
||||||
table->file->ha_index_init(0, 1);
|
table->file->ha_index_init(0, 1);
|
||||||
if (table->file->index_read_map(table->record[0], user_key,
|
if (table->file->index_read_map(table->record[0], user_key,
|
||||||
HA_WHOLE_KEY,
|
HA_WHOLE_KEY,
|
||||||
@ -2655,7 +2665,8 @@ replace_proxy_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
|
|||||||
ACL_PROXY_USER::store_data_record(table, &user->host, &user->user,
|
ACL_PROXY_USER::store_data_record(table, &user->host, &user->user,
|
||||||
&proxied_user->host,
|
&proxied_user->host,
|
||||||
&proxied_user->user,
|
&proxied_user->user,
|
||||||
with_grant_arg);
|
with_grant_arg,
|
||||||
|
grantor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2712,7 +2723,7 @@ table_error:
|
|||||||
table->file->print_error(error, MYF(0)); /* purecov: inspected */
|
table->file->print_error(error, MYF(0)); /* purecov: inspected */
|
||||||
|
|
||||||
abort:
|
abort:
|
||||||
DBUG_PRINT("info", ("aborting replace_proxy_priv_table"));
|
DBUG_PRINT("info", ("aborting replace_proxies_priv_table"));
|
||||||
table->file->ha_index_end();
|
table->file->ha_index_end();
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
}
|
}
|
||||||
@ -3962,14 +3973,14 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
|
|||||||
proxied_user= str_list++;
|
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"),
|
tables[0].init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
C_STRING_WITH_LEN("user"), "user", TL_WRITE);
|
C_STRING_WITH_LEN("user"), "user", TL_WRITE);
|
||||||
if (is_proxy)
|
if (is_proxy)
|
||||||
|
|
||||||
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
|
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
C_STRING_WITH_LEN("proxy_priv"),
|
C_STRING_WITH_LEN("proxies_priv"),
|
||||||
"proxy_priv",
|
"proxies_priv",
|
||||||
TL_WRITE);
|
TL_WRITE);
|
||||||
else
|
else
|
||||||
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
|
tables[1].init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
@ -4063,7 +4074,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
|
|||||||
}
|
}
|
||||||
else if (is_proxy)
|
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,
|
rights & GRANT_ACL ? TRUE : FALSE,
|
||||||
revoke_grant))
|
revoke_grant))
|
||||||
result= -1;
|
result= -1;
|
||||||
@ -5690,8 +5701,8 @@ int open_grant_tables(THD *thd, TABLE_LIST *tables)
|
|||||||
C_STRING_WITH_LEN("procs_priv"),
|
C_STRING_WITH_LEN("procs_priv"),
|
||||||
"procs_priv", TL_WRITE);
|
"procs_priv", TL_WRITE);
|
||||||
(tables+5)->init_one_table(C_STRING_WITH_LEN("mysql"),
|
(tables+5)->init_one_table(C_STRING_WITH_LEN("mysql"),
|
||||||
C_STRING_WITH_LEN("proxy_priv"),
|
C_STRING_WITH_LEN("proxies_priv"),
|
||||||
"proxy_priv", TL_WRITE);
|
"proxies_priv", TL_WRITE);
|
||||||
tables->next_local= tables->next_global= tables + 1;
|
tables->next_local= tables->next_global= tables + 1;
|
||||||
(tables+1)->next_local= (tables+1)->next_global= tables + 2;
|
(tables+1)->next_local= (tables+1)->next_global= tables + 2;
|
||||||
(tables+2)->next_local= (tables+2)->next_global= tables + 3;
|
(tables+2)->next_local= (tables+2)->next_global= tables + 3;
|
||||||
@ -6283,7 +6294,7 @@ static int handle_grant_data(TABLE_LIST *tables, bool drop,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle proxy_priv table. */
|
/* Handle proxies_priv table. */
|
||||||
if ((found= handle_grant_table(tables, 5, drop, user_from, user_to)) < 0)
|
if ((found= handle_grant_table(tables, 5, drop, user_from, user_to)) < 0)
|
||||||
{
|
{
|
||||||
/* Handle of table failed, don't touch the in-memory array. */
|
/* Handle of table failed, don't touch the in-memory array. */
|
||||||
@ -6291,7 +6302,7 @@ static int handle_grant_data(TABLE_LIST *tables, bool drop,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Handle proxy_priv array. */
|
/* Handle proxies_priv array. */
|
||||||
if ((handle_grant_struct(5, drop, user_from, user_to) && !result) ||
|
if ((handle_grant_struct(5, drop, user_from, user_to) && !result) ||
|
||||||
found)
|
found)
|
||||||
result= 1; /* At least one record/element found. */
|
result= 1; /* At least one record/element found. */
|
||||||
|
@ -1997,7 +1997,7 @@ static int add_part_field_list(File fptr, List<char> field_list)
|
|||||||
String field_string("", 0, system_charset_info);
|
String field_string("", 0, system_charset_info);
|
||||||
THD *thd= current_thd;
|
THD *thd= current_thd;
|
||||||
ulonglong save_options= thd->variables.option_bits;
|
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,
|
append_identifier(thd, &field_string, field_str,
|
||||||
strlen(field_str));
|
strlen(field_str));
|
||||||
thd->variables.option_bits= save_options;
|
thd->variables.option_bits= save_options;
|
||||||
@ -2016,8 +2016,7 @@ static int add_name_string(File fptr, const char *name)
|
|||||||
String name_string("", 0, system_charset_info);
|
String name_string("", 0, system_charset_info);
|
||||||
THD *thd= current_thd;
|
THD *thd= current_thd;
|
||||||
ulonglong save_options= thd->variables.option_bits;
|
ulonglong save_options= thd->variables.option_bits;
|
||||||
|
thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE;
|
||||||
thd->variables.option_bits= 0;
|
|
||||||
append_identifier(thd, &name_string, name,
|
append_identifier(thd, &name_string, name,
|
||||||
strlen(name));
|
strlen(name));
|
||||||
thd->variables.option_bits= save_options;
|
thd->variables.option_bits= save_options;
|
||||||
|
@ -480,12 +480,6 @@ find_files(THD *thd, List<LEX_STRING> *files, const char *db,
|
|||||||
else if (wild_compare(uname, wild, 0))
|
else if (wild_compare(uname, wild, 0))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!(file_name=
|
|
||||||
thd->make_lex_string(file_name, uname, file_name_len, TRUE)))
|
|
||||||
{
|
|
||||||
my_dirend(dirp);
|
|
||||||
DBUG_RETURN(FIND_FILES_OOM);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -12497,6 +12497,7 @@ keyword_sp:
|
|||||||
| FILE_SYM {}
|
| FILE_SYM {}
|
||||||
| FIRST_SYM {}
|
| FIRST_SYM {}
|
||||||
| FIXED_SYM {}
|
| FIXED_SYM {}
|
||||||
|
| GENERAL {}
|
||||||
| GEOMETRY_SYM {}
|
| GEOMETRY_SYM {}
|
||||||
| GEOMETRYCOLLECTION {}
|
| GEOMETRYCOLLECTION {}
|
||||||
| GET_FORMAT {}
|
| GET_FORMAT {}
|
||||||
@ -12506,6 +12507,7 @@ keyword_sp:
|
|||||||
| HOSTS_SYM {}
|
| HOSTS_SYM {}
|
||||||
| HOUR_SYM {}
|
| HOUR_SYM {}
|
||||||
| IDENTIFIED_SYM {}
|
| IDENTIFIED_SYM {}
|
||||||
|
| IGNORE_SERVER_IDS_SYM {}
|
||||||
| INVOKER_SYM {}
|
| INVOKER_SYM {}
|
||||||
| IMPORT {}
|
| IMPORT {}
|
||||||
| INDEXES {}
|
| INDEXES {}
|
||||||
@ -12528,6 +12530,7 @@ keyword_sp:
|
|||||||
| LOGS_SYM {}
|
| LOGS_SYM {}
|
||||||
| MAX_ROWS {}
|
| MAX_ROWS {}
|
||||||
| MASTER_SYM {}
|
| MASTER_SYM {}
|
||||||
|
| MASTER_HEARTBEAT_PERIOD_SYM {}
|
||||||
| MASTER_HOST_SYM {}
|
| MASTER_HOST_SYM {}
|
||||||
| MASTER_PORT_SYM {}
|
| MASTER_PORT_SYM {}
|
||||||
| MASTER_LOG_FILE_SYM {}
|
| MASTER_LOG_FILE_SYM {}
|
||||||
@ -12633,6 +12636,7 @@ keyword_sp:
|
|||||||
| SIMPLE_SYM {}
|
| SIMPLE_SYM {}
|
||||||
| SHARE_SYM {}
|
| SHARE_SYM {}
|
||||||
| SHUTDOWN {}
|
| SHUTDOWN {}
|
||||||
|
| SLOW {}
|
||||||
| SNAPSHOT_SYM {}
|
| SNAPSHOT_SYM {}
|
||||||
| SOUNDS_SYM {}
|
| SOUNDS_SYM {}
|
||||||
| SOURCE_SYM {}
|
| SOURCE_SYM {}
|
||||||
|
@ -656,7 +656,7 @@ os_event_wait_time_low(
|
|||||||
os_event_reset(). */
|
os_event_reset(). */
|
||||||
|
|
||||||
{
|
{
|
||||||
ibool timed_out;
|
ibool timed_out = FALSE;
|
||||||
ib_int64_t old_signal_count;
|
ib_int64_t old_signal_count;
|
||||||
|
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
|
@ -977,6 +977,9 @@ echo "=====" >> $STATUS_HISTORY
|
|||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/auth.so
|
%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_socket.so
|
||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/auth_test_plugin.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/adt_null.so
|
||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libdaemon_example.so
|
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libdaemon_example.so
|
||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mypluglib.so
|
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mypluglib.so
|
||||||
@ -985,6 +988,9 @@ echo "=====" >> $STATUS_HISTORY
|
|||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth.so
|
%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_socket.so
|
||||||
%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_test_plugin.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}
|
%if %{WITH_TCMALLOC}
|
||||||
%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
|
%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
|
||||||
|
76
win/README
76
win/README
@ -10,7 +10,8 @@ or ealier.
|
|||||||
|
|
||||||
The Windows build system uses a tool named CMake to generate build files for
|
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
|
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.
|
The steps required are below.
|
||||||
|
|
||||||
Step 1:
|
Step 1:
|
||||||
@ -41,56 +42,67 @@ before you start the build)
|
|||||||
|
|
||||||
Step 4
|
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
|
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:
|
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
|
Step 6
|
||||||
------
|
------
|
||||||
|
|
||||||
From the root of your installation directory/bk clone, execute one of
|
From the root of your installation directory/bzr clone, you can
|
||||||
the batch files to generate the type of project files you desire.
|
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.
|
||||||
|
|
||||||
For Visual Studio 8 (or Visual C++ 2005 express edition), do win\build-vs8.
|
C:\> del bld
|
||||||
For Visual Studio 7.1, do win\build-vs71.
|
C:\> md bld
|
||||||
|
C:\> cd bld
|
||||||
|
C:\> cmake .. -G "target name" -DBUILD_CONFIG=mysql_release
|
||||||
|
|
||||||
We will support building with nmake in the near future.
|
|
||||||
|
|
||||||
|
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
|
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
|
For Visual Studio, execute mysql.sln. This will start the IDE
|
||||||
and you can click the build solution menu option.
|
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
|
Current issues
|
||||||
--------------
|
--------------
|
||||||
1. After changing configuration (eg. adding or removing a storage engine), it
|
1. After changing configuration (eg. adding or removing a storage engine), it
|
||||||
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
|
||||||
|
|
@ -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"
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user