mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Manual merge from mysql-5.1-bugteam.
Conflicts: - mysql-test/collections/default.experimental - mysql-test/suite/rpl/r/rpl_binlog_grant.result - mysql-test/suite/rpl/r/rpl_sp.result - mysql-test/suite/rpl/t/rpl_binlog_grant.test - mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
This commit is contained in:
commit
85c54dddc7
62 changed files with 3219 additions and 507 deletions
|
@ -37,7 +37,7 @@
|
|||
#define WARN_DEPRECATED(Ver,Old,New) \
|
||||
do { \
|
||||
printf("Warning: The option '%s' is deprecated and will be removed " \
|
||||
"in MySQL %s. Please use %s instead.\n", (Old), (Ver), (New)); \
|
||||
"in a future release. Please use %s instead.\n", (Old), (New)); \
|
||||
} while(0);
|
||||
|
||||
enum options_client
|
||||
|
@ -57,7 +57,7 @@ enum options_client
|
|||
OPT_PROMPT, OPT_IGN_LINES,OPT_TRANSACTION,OPT_MYSQL_PROTOCOL,
|
||||
OPT_SHARED_MEMORY_BASE_NAME, OPT_FRM, OPT_SKIP_OPTIMIZATION,
|
||||
OPT_COMPATIBLE, OPT_RECONNECT, OPT_DELIMITER, OPT_SECURE_AUTH,
|
||||
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS, OPT_SERVER_ARG,
|
||||
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_SERVER_ARG,
|
||||
OPT_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
|
||||
OPT_SIGINT_IGNORE, OPT_HEXBLOB, OPT_ORDER_BY_PRIMARY, OPT_COUNT,
|
||||
#ifdef HAVE_NDBCLUSTER_DB
|
||||
|
@ -91,5 +91,6 @@ enum options_client
|
|||
OPT_WRITE_BINLOG, OPT_DUMP_DATE,
|
||||
OPT_INIT_COMMAND,
|
||||
OPT_FIRST_SLAVE,
|
||||
OPT_ALL,
|
||||
OPT_MAX_CLIENT_OPTION
|
||||
};
|
||||
|
|
|
@ -1632,7 +1632,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
init_tee(argument);
|
||||
break;
|
||||
case OPT_NOTEE:
|
||||
printf("WARNING: option deprecated; use --disable-tee instead.\n");
|
||||
WARN_DEPRECATED(VER_CELOSIA, "--no-tee", "--disable-tee");
|
||||
if (opt_outfile)
|
||||
end_tee();
|
||||
break;
|
||||
|
|
|
@ -179,7 +179,7 @@ HASH ignore_table;
|
|||
|
||||
static struct my_option my_long_options[] =
|
||||
{
|
||||
{"all", 'a', "Deprecated. Use --create-options instead.",
|
||||
{"all", OPT_ALL, "Deprecated. Use --create-options instead.",
|
||||
(uchar**) &create_options, (uchar**) &create_options, 0, GET_BOOL, NO_ARG, 1,
|
||||
0, 0, 0, 0, 0},
|
||||
{"all-databases", 'A',
|
||||
|
@ -230,7 +230,7 @@ static struct my_option my_long_options[] =
|
|||
{"compress", 'C', "Use compression in server/client protocol.",
|
||||
(uchar**) &opt_compress, (uchar**) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
|
||||
0, 0, 0},
|
||||
{"create-options", OPT_CREATE_OPTIONS,
|
||||
{"create-options", 'a',
|
||||
"Include all MySQL specific create options.",
|
||||
(uchar**) &create_options, (uchar**) &create_options, 0, GET_BOOL, NO_ARG, 1,
|
||||
0, 0, 0, 0, 0},
|
||||
|
@ -268,7 +268,7 @@ static struct my_option my_long_options[] =
|
|||
(uchar**) &opt_events, (uchar**) &opt_events, 0, GET_BOOL,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"extended-insert", 'e',
|
||||
"Allows utilization of the new, much faster INSERT syntax.",
|
||||
"Use multiple-row INSERT syntax that include several VALUES lists.",
|
||||
(uchar**) &extended_insert, (uchar**) &extended_insert, 0, GET_BOOL, NO_ARG,
|
||||
1, 0, 0, 0, 0, 0},
|
||||
{"fields-terminated-by", OPT_FTB,
|
||||
|
@ -762,6 +762,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
case 'O':
|
||||
WARN_DEPRECATED(VER_CELOSIA, "--set-variable", "--variable-name=value");
|
||||
break;
|
||||
case (int) OPT_ALL:
|
||||
WARN_DEPRECATED(VER_CELOSIA, "--all", "--create-options");
|
||||
break;
|
||||
case (int) OPT_FIRST_SLAVE:
|
||||
WARN_DEPRECATED(VER_CELOSIA, "--first-slave", "--lock-all-tables");
|
||||
break;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
(defined(__alpha__) && defined(__GNUC__))
|
||||
#define HAVE_STACKTRACE 1
|
||||
#endif
|
||||
#elif defined(__WIN__) || defined(__sun)
|
||||
#elif defined(__WIN__) || defined(HAVE_PRINTSTACK)
|
||||
#define HAVE_STACKTRACE 1
|
||||
#endif
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@ main.plugin # Bug#47146 Linking problem with exampl
|
|||
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
|
||||
rpl.rpl_get_master_version_and_clock* # Bug#49191 2009-12-01 Daogang rpl_get_master_version_and_clock failed on PB2: COM_REGISTER_SLAVE failed
|
||||
rpl.rpl_heartbeat_basic # BUG#43828 2009-10-22 luis fails sporadically
|
||||
rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails sporadically
|
||||
rpl.rpl_innodb_bug28430* # Bug#46029
|
||||
|
|
127
mysql-test/extra/rpl_tests/rpl_current_user.test
Normal file
127
mysql-test/extra/rpl_tests/rpl_current_user.test
Normal file
|
@ -0,0 +1,127 @@
|
|||
--let $count=1
|
||||
connection master;
|
||||
|
||||
if (`SELECT '$diff_table' = ''`)
|
||||
{
|
||||
let $diff_table= mysql.user;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo TEST STATEMENT: '$statement'
|
||||
--echo --------------------------------------------------------------------------
|
||||
|
||||
if (`SELECT '$diff_columns' = ''`)
|
||||
{
|
||||
eval CREATE VIEW test.bug48321_v1 AS SELECT user FROM $diff_table
|
||||
WHERE user LIKE 'bug48321%';
|
||||
}
|
||||
|
||||
if (`SELECT '$diff_columns' <> ''`)
|
||||
{
|
||||
eval CREATE VIEW test.bug48321_v1 AS SELECT user, $diff_columns
|
||||
FROM $diff_table WHERE user LIKE 'bug48321%';
|
||||
}
|
||||
|
||||
while (`SELECT $count < 6`)
|
||||
{
|
||||
--echo
|
||||
--echo TEST STATEMENT: '$statement'
|
||||
--echo CASE $count:
|
||||
--echo -------
|
||||
|
||||
let $user2= 'bug48321_2'@'localhost';
|
||||
let $user3= 'bug48321_3'@'localhost';
|
||||
|
||||
let $user1= CURRENT_USER();
|
||||
if (`SELECT '$action'='RENAME'`)
|
||||
{
|
||||
let $user1= $user1 TO 'bug48321_4'@'localhost';
|
||||
let $user2= $user2 TO 'bug48321_5'@'localhost';
|
||||
let $user3= $user3 TO 'bug48321_6'@'localhost';
|
||||
}
|
||||
|
||||
if (`SELECT '$action'='GRANT'`)
|
||||
{
|
||||
let $user1= $user1 IDENTIFIED BY 'user1';
|
||||
let $user3= $user3 IDENTIFIED BY '';
|
||||
}
|
||||
|
||||
if (`SELECT $count=1`)
|
||||
{
|
||||
--echo # Only CURRENT_USER() in the user list of the test statement.
|
||||
let $users_list= $user1;
|
||||
}
|
||||
|
||||
if (`SELECT $count=2`)
|
||||
{
|
||||
--echo # Two users are in the test statement, CURRENT_USER is the first one.
|
||||
let $users_list= $user1, $user2;
|
||||
}
|
||||
|
||||
if (`SELECT $count=3`)
|
||||
{
|
||||
--echo # Two users are in the test statement, CURRENT_USER is the last one.
|
||||
let $users_list= $user2, $user1;
|
||||
}
|
||||
|
||||
if (`SELECT $count=4`)
|
||||
{
|
||||
--echo # Three users are in the test statement, CURRENT_USER is the second one.
|
||||
let $users_list= $user2, $user1, $user3;
|
||||
}
|
||||
|
||||
if (`SELECT $count=5`)
|
||||
{
|
||||
--echo # CURRENT_USER is not in the test statement.
|
||||
let $users_list= $user2, $user3;
|
||||
}
|
||||
|
||||
--echo users_list= $users_list
|
||||
--echo
|
||||
--echo # Connect to master with user1, so user1 always is the current user,
|
||||
--echo # when test statement is runing.
|
||||
eval GRANT ALL PRIVILEGES ON *.* TO 'bug48321_1'@'localhost'
|
||||
WITH GRANT OPTION;
|
||||
eval CREATE USER 'bug48321_2'@'localhost', 'bug48321_3'@'localhost'
|
||||
IDENTIFIED BY 'user3';
|
||||
|
||||
if (`SELECT '$action'='REVOKE'`)
|
||||
{
|
||||
--echo
|
||||
--echo # Grant some privileges to users at first when testing
|
||||
--echo # 'REVOKE ...' statement.
|
||||
eval GRANT ALL PRIVILEGES ON *.* TO 'bug48321_2'@'localhost',
|
||||
'bug48321_3'@'localhost' WITH GRANT OPTION;
|
||||
eval GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO 'bug48321_1'@'localhost',
|
||||
'bug48321_2'@'localhost', 'bug48321_3'@'localhost';
|
||||
}
|
||||
|
||||
connect (conn1, 127.0.0.1, 'bug48321_1'@'localhost',,);
|
||||
connection conn1;
|
||||
--echo
|
||||
let $temp= `SELECT "$statement"`;
|
||||
eval $temp;
|
||||
--echo
|
||||
|
||||
disconnect conn1;
|
||||
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
|
||||
connection master;
|
||||
let $diff_table_1= master:test.bug48321_v1;
|
||||
let $diff_table_2= slave:test.bug48321_v1;
|
||||
source include/diff_tables.inc;
|
||||
--echo
|
||||
|
||||
--echo # Delete all bug48321% users
|
||||
connection master;
|
||||
DELETE FROM mysql.user WHERE user LIKE 'bug48321%';
|
||||
DELETE FROM mysql.procs_priv WHERE user LIKE 'bug48321%';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
inc $count;
|
||||
}
|
||||
DROP VIEW test.bug48321_v1;
|
86
mysql-test/extra/rpl_tests/rpl_set_null.test
Normal file
86
mysql-test/extra/rpl_tests/rpl_set_null.test
Normal file
|
@ -0,0 +1,86 @@
|
|||
# Both of the following tests check that comparison of binlog BI
|
||||
# against SE record will not fail due to remains from previous values
|
||||
# in the SE record (before a given field was set to null).
|
||||
#
|
||||
# In MIXED mode:
|
||||
# - Insert and update are executed as statements
|
||||
# - Delete is executed as a row event
|
||||
# - Assertion: checks that comparison will not fail because the update
|
||||
# statement will clear the record contents for the nulled
|
||||
# field. If data was not cleared, some engines may keep
|
||||
# the value and return it later as garbage - despite the
|
||||
# fact that field is null. This may cause slave to
|
||||
# falsely fail in the comparison (memcmp would fail
|
||||
# because of "garbage" in record data).
|
||||
#
|
||||
# In ROW mode:
|
||||
# - Insert, update and delete are executed as row events.
|
||||
# - Assertion: checks that comparison will not fail because the update
|
||||
# rows event will clear the record contents before
|
||||
# feeding the new value to the SE. This protects against
|
||||
# SEs that do not clear record contents when storing
|
||||
# nulled fields. If the engine did not clear the data it
|
||||
# would cause slave to falsely fail in the comparison
|
||||
# (memcmp would fail because of "garbage" in record
|
||||
# data). This scenario is pretty much the same described
|
||||
# above in MIXED mode, but checks different execution
|
||||
# path in the slave.
|
||||
|
||||
# BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on
|
||||
# delete cant find record
|
||||
|
||||
-- source include/master-slave-reset.inc
|
||||
|
||||
-- connection master
|
||||
-- eval CREATE TABLE t1 (c1 BIT, c2 INT) Engine=$engine
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
# triggers switch to row mode when on mixed
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DROP TABLE t1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- source include/master-slave-reset.inc
|
||||
|
||||
-- connection master
|
||||
|
||||
# BUG#49482: RBR: Replication may break on deletes when MyISAM tables
|
||||
# + char field are used
|
||||
|
||||
-- eval CREATE TABLE t1 (c1 CHAR) Engine=$engine
|
||||
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w';
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
# triggers switch to row mode when on mixed
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DROP TABLE t1;
|
||||
-- sync_slave_with_master
|
|
@ -1102,14 +1102,16 @@ sub command_line_setup () {
|
|||
|
||||
if ( ! $opt_testcase_timeout )
|
||||
{
|
||||
$opt_testcase_timeout= $default_testcase_timeout;
|
||||
$opt_testcase_timeout=
|
||||
$ENV{MTR_TESTCASE_TIMEOUT} || $default_testcase_timeout;
|
||||
$opt_testcase_timeout*= 10 if $opt_valgrind;
|
||||
$opt_testcase_timeout*= 10 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
||||
if ( ! $opt_suite_timeout )
|
||||
{
|
||||
$opt_suite_timeout= $default_suite_timeout;
|
||||
$opt_suite_timeout=
|
||||
$ENV{MTR_SUITE_TIMEOUT} || $default_suite_timeout;
|
||||
$opt_suite_timeout*= 6 if $opt_valgrind;
|
||||
$opt_suite_timeout*= 6 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
|
|
@ -198,10 +198,10 @@ my $opt_mark_progress;
|
|||
|
||||
my $opt_sleep;
|
||||
|
||||
my $opt_testcase_timeout= 15; # minutes
|
||||
my $opt_suite_timeout = 300; # minutes
|
||||
my $opt_shutdown_timeout= 10; # seconds
|
||||
my $opt_start_timeout = 180; # seconds
|
||||
my $opt_testcase_timeout= $ENV{MTR_TESTCASE_TIMEOUT} || 15; # minutes
|
||||
my $opt_suite_timeout = $ENV{MTR_SUITE_TIMEOUT} || 300; # minutes
|
||||
my $opt_shutdown_timeout= $ENV{MTR_SHUTDOWN_TIMEOUT} || 10; # seconds
|
||||
my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds
|
||||
|
||||
sub testcase_timeout { return $opt_testcase_timeout * 60; };
|
||||
sub suite_timeout { return $opt_suite_timeout * 60; };
|
||||
|
|
|
@ -337,3 +337,16 @@ END |
|
|||
DELETE IGNORE FROM t1;
|
||||
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #49552 : sql_buffer_result cause crash + not found records
|
||||
# in multitable delete/subquery
|
||||
#
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
SET SESSION SQL_BUFFER_RESULT=1;
|
||||
DELETE t1 FROM (SELECT SUM(a) a FROM t1) x,t1;
|
||||
SET SESSION SQL_BUFFER_RESULT=DEFAULT;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -93,7 +93,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
Warning: The option '--position' is deprecated and will be removed in a future release. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
@ -194,7 +194,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
Warning: The option '--position' is deprecated and will be removed in a future release. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
@ -235,7 +235,7 @@ DELIMITER ;
|
|||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
Warning: The option '--position' is deprecated and will be removed in a future release. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
|
|
@ -3,8 +3,8 @@ create table t1(f1 int);
|
|||
insert into t1 values (5);
|
||||
grant select on test.* to ssl_user1@localhost require SSL;
|
||||
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
|
||||
flush privileges;
|
||||
connect(localhost,ssl_user5,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
|
|
|
@ -4526,6 +4526,69 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
Warnings:
|
||||
Note 1003 select '2001-01-01 00:00:00' AS `a`,'2001-01-01 00:00:00' AS `a`,'2001-01-01 00:00:00' AS `a` from dual where 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #49897: crash in ptr_compare when char(0) NOT NULL
|
||||
# column is used for ORDER BY
|
||||
#
|
||||
SET @old_sort_buffer_size= @@session.sort_buffer_size;
|
||||
SET @@sort_buffer_size= 40000;
|
||||
CREATE TABLE t1(a CHAR(0) NOT NULL);
|
||||
INSERT INTO t1 VALUES (0), (0), (0);
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 24492
|
||||
SELECT a FROM t1 ORDER BY a;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int);
|
||||
INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1);
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 24492
|
||||
SELECT a FROM t1 ORDER BY a LIMIT 5;
|
||||
a
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY a, b LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 24492
|
||||
SELECT * FROM t1 ORDER BY a, b LIMIT 5;
|
||||
a b c
|
||||
0
|
||||
2
|
||||
1
|
||||
0
|
||||
2
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY a, b, c LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 24492 Using filesort
|
||||
SELECT * FROM t1 ORDER BY a, b, c LIMIT 5;
|
||||
a b c
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY c, a LIMIT 5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 24492 Using filesort
|
||||
SELECT * FROM t1 ORDER BY c, a LIMIT 5;
|
||||
a b c
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
SET @@sort_buffer_size= @old_sort_buffer_size;
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
create table t1(a INT, KEY (a));
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
|
||||
|
|
BIN
mysql-test/std_data/bug47142_master-bin.000001
Normal file
BIN
mysql-test/std_data/bug47142_master-bin.000001
Normal file
Binary file not shown.
|
@ -1,17 +1,17 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICrTCCAhagAwIBAgIJAJXpePU0UOTVMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
|
||||
MIICrTCCAhagAwIBAgIJAMI7xZKjhrDbMA0GCSqGSIb3DQEBBAUAMEQxCzAJBgNV
|
||||
BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
|
||||
VQQKEwhNeVNRTCBBQjAeFw0wOTAxMjgxMDQ5NDZaFw0xNDAxMjcxMDQ5NDZaMEQx
|
||||
VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkxMTQ3MTBaFw0xNTAxMjgxMTQ3MTBaMEQx
|
||||
CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
|
||||
MREwDwYDVQQKEwhNeVNRTCBBQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||
4XQHAe5R1+TXC8noZtWf+d5E0v1C59FWpn9SWEUCBjE5UiIwuJvi4Y+7xWGOXLAI
|
||||
/JzJx5gNXLBiTsE/zh0uX9fKlajLhxB0GN+QU0ZlpQ1BeYipEcNXeI/7cT499f6v
|
||||
XWabnTflivdCgHSWUOQ20/Lzs6kP6/e6OoZd/DPSjPECAwEAAaOBpjCBozAdBgNV
|
||||
HQ4EFgQU8uLqVWWkmuKsnZf1RWz294wRrd8wdAYDVR0jBG0wa4AU8uLqVWWkmuKs
|
||||
nZf1RWz294wRrd+hSKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxh
|
||||
MRAwDgYDVQQHEwdVcHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAJXpePU0UOTV
|
||||
MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMMTE5sDN+Z0ZlV7KvH3g
|
||||
6+aKvql8dTpRT3hYukeQlWua0nq74WPGVw0c4e/M/vbiMwmJcCYpB9pd4+dHqzSw
|
||||
aPyoenjY6UF8n7B4quWy3SIUk2LSHeJLW+kzJn2afN9gvipFhdVh/uU2TIyLGOur
|
||||
Z/vmJX2W7hF1uqPnbfa8Lrw=
|
||||
wQYsOEfrN4ESP3FjsI8cghE+tZVuyK2gck61lwieVxjgFMtBd65mI5a1y9pmlOI1
|
||||
yM4SB2Ppqcuw7/e1CdV1y7lvHrGNt5yqEHbN4QX1gvsN8TQauP/2WILturk4R4Hq
|
||||
rKg0ZySu7f1Xhl0ed9a48LpaEHD17IcxWEGMMJwAxF0CAwEAAaOBpjCBozAMBgNV
|
||||
HRMEBTADAQH/MB0GA1UdDgQWBBSvktYQ0ahLnyxyVKqty+WpBbBrDTB0BgNVHSME
|
||||
bTBrgBSvktYQ0ahLnyxyVKqty+WpBbBrDaFIpEYwRDELMAkGA1UEBhMCU0UxEDAO
|
||||
BgNVBAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FM
|
||||
IEFCggkAwjvFkqOGsNswDQYJKoZIhvcNAQEEBQADgYEAdKN1PjwMHAKG2Ww1145g
|
||||
JQGBnKxSFOUaoSvkBi/4ntTM+ysnViWh7WvxyWjR9zU9arfr7aqsDeQxm0XDOqzj
|
||||
AQ/cQIla2/Li8tXyfc06bisH/IHRaSc2zWqioTKbEwMdVOdrvq4a8V8ic3xYyIWn
|
||||
7F4WeS07J8LKardSvM0+hOA=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,55 +1,46 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 3 (0x3)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Version: 1 (0x0)
|
||||
Serial Number: 1048577 (0x100001)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Validity
|
||||
Not Before: Jan 28 11:04:39 2009 GMT
|
||||
Not After : Jan 28 11:04:39 2010 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com
|
||||
Not Before: Jan 29 11:50:22 2010 GMT
|
||||
Not After : Jan 28 11:50:22 2015 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (512 bit)
|
||||
Modulus (512 bit):
|
||||
00:e1:52:30:2c:d9:be:64:28:91:5d:7a:fd:d9:e9:
|
||||
14:35:7a:d2:94:4e:91:46:e0:db:9f:6b:79:f4:4c:
|
||||
ac:6e:07:61:34:86:74:62:a7:a8:44:af:fa:87:87:
|
||||
a8:7d:42:61:ff:ab:50:d4:7b:bf:75:fa:d5:d5:b3:
|
||||
74:fb:56:1e:37
|
||||
Public-Key: (1024 bit)
|
||||
Modulus:
|
||||
00:cc:9a:37:49:13:66:dc:cf:e3:0b:13:a1:23:ed:
|
||||
78:db:4e:bd:11:f6:8c:0d:76:f9:a3:32:56:9a:f8:
|
||||
a1:21:6a:55:4e:4d:3f:e6:67:9d:26:99:b2:cd:a4:
|
||||
9a:d2:2b:59:5c:d7:8a:d3:60:68:f8:18:bd:c5:be:
|
||||
15:e1:2a:3c:a3:d4:61:cb:f5:11:94:17:81:81:f7:
|
||||
87:8c:f6:6a:d2:ee:d8:e6:77:f6:62:66:4d:2e:16:
|
||||
8d:08:81:4a:c9:c6:4b:31:e5:b9:c7:8a:84:96:48:
|
||||
a7:47:8c:0d:26:90:56:4e:e6:a5:6e:8c:b3:f2:9f:
|
||||
fc:3d:78:9b:49:6e:86:83:77
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
58:30:B5:9B:2C:05:94:06:BA:3D:3C:F0:B2:CD:1D:67:65:E3:7F:85
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F2:E2:EA:55:65:A4:9A:E2:AC:9D:97:F5:45:6C:F6:F7:8C:11:AD:DF
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:95:E9:78:F5:34:50:E4:D5
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
05:19:e3:13:14:fc:c5:28:bf:69:f8:00:b3:25:cb:bd:ca:9f:
|
||||
2f:4c:b3:a8:04:11:f0:74:27:bd:82:2c:b4:49:9b:a7:59:f0:
|
||||
f7:87:d1:e0:ba:99:a2:fe:4b:1d:10:6f:e4:a2:b3:cd:7f:8b:
|
||||
68:31:46:ee:cd:9e:e2:47:e1:4c:fa:74:d1:e2:8b:cc:a0:4b:
|
||||
a8:24:d1:a4:c3:6b:2a:c6:28:cd:41:e0:06:48:e6:cf:f2:3c:
|
||||
ca:37:95:d7:29:64:6b:91:91:83:e7:ac:c8:0b:87:bc:da:a6:
|
||||
aa:f1:44:43:c8:74:7b:15:26:91:2e:03:c4:71:50:6c:f8:68:
|
||||
dc:8c
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
5e:1f:a3:53:5f:24:13:1c:f8:28:32:b0:7f:69:69:f3:0e:c0:
|
||||
34:87:10:03:7d:da:15:8b:bd:19:b8:1a:56:31:e7:85:49:81:
|
||||
c9:7f:45:20:74:3e:89:c0:e0:26:84:51:cc:04:16:ce:69:99:
|
||||
01:e1:26:99:b3:e3:f5:bd:ec:5f:a0:84:e4:38:da:75:78:7b:
|
||||
89:9c:d2:cd:60:95:20:ba:8e:e3:7c:e6:df:76:3a:7c:89:77:
|
||||
02:94:86:11:3a:c4:61:7d:6f:71:83:21:8a:17:fb:17:e2:ee:
|
||||
02:6b:61:c1:b4:52:63:d7:d8:46:b2:c5:9c:6f:38:91:8a:35:
|
||||
32:0b
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICfzCCAeigAwIBAgIBAzANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
|
||||
UUwgQUIwHhcNMDkwMTI4MTEwNDM5WhcNMTAwMTI4MTEwNDM5WjBlMQswCQYDVQQG
|
||||
EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIxMTAvBgkq
|
||||
hkiG9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wXDAN
|
||||
BgkqhkiG9w0BAQEFAANLADBIAkEA4VIwLNm+ZCiRXXr92ekUNXrSlE6RRuDbn2t5
|
||||
9EysbgdhNIZ0YqeoRK/6h4eofUJh/6tQ1Hu/dfrV1bN0+1YeNwIDAQABo4GjMIGg
|
||||
MAkGA1UdEwQCMAAwHQYDVR0OBBYEFFgwtZssBZQGuj088LLNHWdl43+FMHQGA1Ud
|
||||
IwRtMGuAFPLi6lVlpJrirJ2X9UVs9veMEa3foUikRjBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
|
||||
UUwgQUKCCQCV6Xj1NFDk1TANBgkqhkiG9w0BAQUFAAOBgQAFGeMTFPzFKL9p+ACz
|
||||
Jcu9yp8vTLOoBBHwdCe9giy0SZunWfD3h9Hgupmi/ksdEG/korPNf4toMUbuzZ7i
|
||||
R+FM+nTR4ovMoEuoJNGkw2sqxijNQeAGSObP8jzKN5XXKWRrkZGD56zIC4e82qaq
|
||||
8URDyHR7FSaRLgPEcVBs+GjcjA==
|
||||
MIIB5zCCAVACAxAAATANBgkqhkiG9w0BAQQFADBEMQswCQYDVQQGEwJTRTEQMA4G
|
||||
A1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwg
|
||||
QUIwHhcNMTAwMTI5MTE1MDIyWhcNMTUwMTI4MTE1MDIyWjAyMQswCQYDVQQGEwJT
|
||||
RTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIwgZ8wDQYJKoZI
|
||||
hvcNAQEBBQADgY0AMIGJAoGBAMyaN0kTZtzP4wsToSPteNtOvRH2jA12+aMyVpr4
|
||||
oSFqVU5NP+ZnnSaZss2kmtIrWVzXitNgaPgYvcW+FeEqPKPUYcv1EZQXgYH3h4z2
|
||||
atLu2OZ39mJmTS4WjQiBSsnGSzHluceKhJZIp0eMDSaQVk7mpW6Ms/Kf/D14m0lu
|
||||
hoN3AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAXh+jU18kExz4KDKwf2lp8w7ANIcQ
|
||||
A33aFYu9GbgaVjHnhUmByX9FIHQ+icDgJoRRzAQWzmmZAeEmmbPj9b3sX6CE5Dja
|
||||
dXh7iZzSzWCVILqO43zm33Y6fIl3ApSGETrEYX1vcYMhihf7F+LuAmthwbRSY9fY
|
||||
RrLFnG84kYo1Mgs=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIBOQIBAAJBAOFSMCzZvmQokV16/dnpFDV60pROkUbg259refRMrG4HYTSGdGKn
|
||||
qESv+oeHqH1CYf+rUNR7v3X61dWzdPtWHjcCAwEAAQJAXYooM8ZlcuEgj+VKU1ee
|
||||
qyEFIMqJJxqcMk+E/nWCM96WxCP3zHNSrqNfSpI3ld7QzMwhdRz+gFLxT2gGNpIw
|
||||
MQIhAPxzM/lDihe67X3ADYtDl9ZjA8Pm430x9sXlcxI17tCZAiEA5H1SyFl4mUee
|
||||
9VnfSC2XGW7lwz72ZygfVX+b7tLWF08CIEh40gzW5MfXM+KLxdea+fXjyursV5ZT
|
||||
R6KcMiKiNQLRAiAcmHqlzFzFgisotai2Fc6VRkXHG7gmzOSvBJt1VjmpDQIge6jf
|
||||
2N7whTdvC4ferB+zUlgWQdyvx1c3T4gnt6PYdaY=
|
||||
MIICXQIBAAKBgQDMmjdJE2bcz+MLE6Ej7XjbTr0R9owNdvmjMlaa+KEhalVOTT/m
|
||||
Z50mmbLNpJrSK1lc14rTYGj4GL3FvhXhKjyj1GHL9RGUF4GB94eM9mrS7tjmd/Zi
|
||||
Zk0uFo0IgUrJxksx5bnHioSWSKdHjA0mkFZO5qVujLPyn/w9eJtJboaDdwIDAQAB
|
||||
AoGASqk/4We2En+93y3jkIO4pXafIe3w/3zZ7caRue1ehx4RUQh5d+95djuB9u7J
|
||||
HEZ7TpjM7QNyao5EueL6gvbxt0LXFvqAMni7yM9tt/HUYtHHPqYiRtUny9bKYFTm
|
||||
l8szCCMal/wD9GZU9ByHDNHm7tHUMyMhARNTYSgx+SERFmECQQD/6jJocC4SXf6f
|
||||
T3LqimWR02lbJ7qCoDgRglsUXh0zjrG+IIiAyE+QOCCx1GMe3Uw6bsIuYwdHT6as
|
||||
WcdPs04xAkEAzKulvEvLVvN5zfa/DTYRTV7jh6aDleOxjsD5oN/oJXoACnPzVuUL
|
||||
qQQMNtuAXm6Q1QItrRxpQsSKbY0UQka6JwJBAOSgoNoG5lIIYTKIMvzwGV+XBLeo
|
||||
HYsXgh+6Wo4uql3mLErUG78ZtWL9kc/tE4R+ZdyKGLaCR/1gXmH5bwN4B/ECQEBb
|
||||
uUH8k3REG4kojesZlVc+/00ojzgS4UKCa/yqa9VdB6ZBz8MDQydinnShkTwgiGpy
|
||||
xOoqhO753o2UT0qH8wECQQC99IEJWUnwvExVMkLaZH5NjAFJkb22sjkmuT11tAgU
|
||||
RQgOMoDOm6driojnOnDWOkx1r1Gy9NgMLooduja4v6cx
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -1,55 +1,41 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Version: 1 (0x0)
|
||||
Serial Number: 1048578 (0x100002)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Validity
|
||||
Not Before: Jan 28 10:55:13 2009 GMT
|
||||
Not After : Jan 28 10:55:13 2010 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=localhost/emailAddress=abstract.mysql.developer@mysql.com
|
||||
Not Before: Jan 29 11:56:49 2010 GMT
|
||||
Not After : Jan 28 11:56:49 2015 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=localhost
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (512 bit)
|
||||
Modulus (512 bit):
|
||||
00:b6:8f:e5:b7:b4:86:83:13:8a:f9:bf:63:cb:64:
|
||||
2d:b9:51:d1:de:ab:7b:45:1f:aa:b5:66:73:13:f9:
|
||||
a6:07:d5:ba:7c:fa:92:bd:37:e2:ad:87:db:3e:b6:
|
||||
6a:12:64:f8:ee:17:e3:15:06:2f:a8:82:68:bf:57:
|
||||
8d:c3:04:98:27
|
||||
Public-Key: (512 bit)
|
||||
Modulus:
|
||||
00:cd:e4:87:51:9d:72:11:a0:d1:fa:f3:92:8b:13:
|
||||
1c:eb:f7:e2:9a:2f:72:a8:d6:65:48:d1:69:af:1b:
|
||||
c0:4c:13:e5:60:60:51:41:e9:ab:a6:bc:13:bb:0c:
|
||||
5e:32:7c:d9:6c:9e:cd:05:24:84:78:db:80:91:2e:
|
||||
d8:88:2b:c2:ed
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
D9:9A:B8:5F:22:EA:04:10:C8:25:7D:82:57:E6:2E:FD:19:29:E7:DA
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F2:E2:EA:55:65:A4:9A:E2:AC:9D:97:F5:45:6C:F6:F7:8C:11:AD:DF
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:95:E9:78:F5:34:50:E4:D5
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
54:07:2d:21:0b:a5:af:3b:58:23:32:5e:56:7f:ab:58:63:48:
|
||||
91:aa:38:90:89:16:f9:cc:bf:a4:0e:78:2b:9f:c5:1b:58:a6:
|
||||
e6:08:8f:2e:ae:97:03:21:9b:f1:cd:c0:26:8f:1d:d7:28:27:
|
||||
a0:8e:81:09:1b:1c:0f:c9:a5:41:3a:2d:44:3f:9c:fa:87:ff:
|
||||
c8:4c:2b:44:f7:1b:c1:3e:4f:01:7f:e9:26:cc:9f:1c:06:b5:
|
||||
0b:27:d1:10:90:be:93:0c:9c:e7:b0:d1:ea:27:99:4e:06:14:
|
||||
0c:7a:e9:c1:52:c5:33:68:bc:61:0d:db:81:3b:57:48:57:bf:
|
||||
42:9a
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
73:ce:9c:6e:39:46:b4:14:be:da:3f:f3:1b:ba:90:bc:23:43:
|
||||
d7:82:2a:70:4e:a6:d9:5a:65:5c:b7:df:71:df:75:77:c5:80:
|
||||
a4:af:fa:d2:59:e2:fd:c9:9c:f0:98:95:8e:69:a9:8c:7c:d8:
|
||||
6f:48:d2:e3:36:e0:cd:ff:3f:d1:a5:e6:ab:75:09:c4:50:10:
|
||||
c4:96:dd:bf:3b:de:32:46:da:ca:4a:f1:d6:52:8a:33:2f:ab:
|
||||
f5:2e:70:3f:d4:9c:be:00:c8:03:f9:39:8a:df:5b:70:3c:40:
|
||||
ef:03:be:7c:3d:1d:32:32:f3:51:81:e2:83:30:6e:3d:38:9b:
|
||||
fb:3c
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICkzCCAfygAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
|
||||
UUwgQUIwHhcNMDkwMTI4MTA1NTEzWhcNMTAwMTI4MTA1NTEzWjB5MQswCQYDVQQG
|
||||
EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIxEjAQBgNV
|
||||
BAMTCWxvY2FsaG9zdDExMC8GCSqGSIb3DQEJARYiYWJzdHJhY3QubXlzcWwuZGV2
|
||||
ZWxvcGVyQG15c3FsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC2j+W3tIaD
|
||||
E4r5v2PLZC25UdHeq3tFH6q1ZnMT+aYH1bp8+pK9N+Kth9s+tmoSZPjuF+MVBi+o
|
||||
gmi/V43DBJgnAgMBAAGjgaMwgaAwCQYDVR0TBAIwADAdBgNVHQ4EFgQU2Zq4XyLq
|
||||
BBDIJX2CV+Yu/Rkp59owdAYDVR0jBG0wa4AU8uLqVWWkmuKsnZf1RWz294wRrd+h
|
||||
SKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdV
|
||||
cHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAJXpePU0UOTVMA0GCSqGSIb3DQEB
|
||||
BQUAA4GBAFQHLSELpa87WCMyXlZ/q1hjSJGqOJCJFvnMv6QOeCufxRtYpuYIjy6u
|
||||
lwMhm/HNwCaPHdcoJ6COgQkbHA/JpUE6LUQ/nPqH/8hMK0T3G8E+TwF/6SbMnxwG
|
||||
tQsn0RCQvpMMnOew0eonmU4GFAx66cFSxTNovGEN24E7V0hXv0Ka
|
||||
MIIBtzCCASACAxAAAjANBgkqhkiG9w0BAQQFADBEMQswCQYDVQQGEwJTRTEQMA4G
|
||||
A1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwg
|
||||
QUIwHhcNMTAwMTI5MTE1NjQ5WhcNMTUwMTI4MTE1NjQ5WjBGMQswCQYDVQQGEwJT
|
||||
RTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIxEjAQBgNVBAMT
|
||||
CWxvY2FsaG9zdDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDN5IdRnXIRoNH685KL
|
||||
Exzr9+KaL3Ko1mVI0WmvG8BME+VgYFFB6aumvBO7DF4yfNlsns0FJIR424CRLtiI
|
||||
K8LtAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAc86cbjlGtBS+2j/zG7qQvCND14Iq
|
||||
cE6m2VplXLffcd91d8WApK/60lni/cmc8JiVjmmpjHzYb0jS4zbgzf8/0aXmq3UJ
|
||||
xFAQxJbdvzveMkbaykrx1lKKMy+r9S5wP9ScvgDIA/k5it9bcDxA7wO+fD0dMjLz
|
||||
UYHigzBuPTib+zw=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIBOQIBAAJBALaP5be0hoMTivm/Y8tkLblR0d6re0UfqrVmcxP5pgfVunz6kr03
|
||||
4q2H2z62ahJk+O4X4xUGL6iCaL9XjcMEmCcCAwEAAQJASA5VwgNb0CKHiPm0ntOk
|
||||
hG+54SRX3DmafEy6gRjZIl/bZ/asSLhXUZ+CeohyrQh7BZgYWvykd8pRISL9eKsU
|
||||
GQIhAOXkUrOtP/EtjyqNluEqZdG+RZi/7p61JS3Ce13Myu+LAiEAy0uMlV34AJpM
|
||||
b40FPKqlHxw8DD/Dt1iKhNVAg8+LDVUCIFjv7fbJDbW2VG63/Cj8CAwOukoP5rbL
|
||||
iaicVrHBKrllAiB9+MiaXeopZXNrxDS0jQFYr8Q9yt1aJVFgUkxx4Q9HKQIgZPs0
|
||||
KlF3NNNWw78INaAEkyf0IEssnLMsuoCWw0DIOak=
|
||||
MIIBOwIBAAJBAM3kh1GdchGg0frzkosTHOv34povcqjWZUjRaa8bwEwT5WBgUUHp
|
||||
q6a8E7sMXjJ82WyezQUkhHjbgJEu2Igrwu0CAwEAAQJBAJuwhFbF3NzRpBbEmnqJ
|
||||
4GPa1UJMQMLFJF+04tqj/HxJcAIVhOJhGmmtYNw1yjz/ZsPnfJCMz4eFOtdjvGtf
|
||||
peECIQDmFFg2WLvYo+2m9w9V7z4ZIkg7ixYkI/ObUUctfZkPOQIhAOUWnrvjFrAX
|
||||
bIvYT/YR50+3ZDLEc51XxNgJnWqWYl1VAiEAnTOFWgyivFC1DgF8PvDp8u5TgCt2
|
||||
A1d1GMgd490O+TECIC/WMl0/hTxOF9930vKqOGf//o9PUGkZq8QE9fcM4gtlAiAE
|
||||
iOcFpnLjtWj57jrhuw214ucnB5rklkQQe+AtcARNkg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -1,138 +1,125 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 4 (0x4)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Version: 1 (0x0)
|
||||
Serial Number: 1048579 (0x100003)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Validity
|
||||
Not Before: Jan 28 11:12:27 2009 GMT
|
||||
Not After : Jan 28 11:12:27 2010 GMT
|
||||
Not Before: Jan 29 12:01:53 2010 GMT
|
||||
Not After : Jan 28 12:01:53 2015 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=server
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (8192 bit)
|
||||
Modulus (8192 bit):
|
||||
00:c0:8f:22:03:24:59:67:46:14:d6:8f:60:09:58:
|
||||
06:07:45:f1:78:71:55:f1:ea:b9:30:8a:cd:c3:3c:
|
||||
b9:bf:65:6e:18:ed:a0:b8:c9:19:56:6f:c4:90:19:
|
||||
c8:65:09:db:ff:bf:82:a1:08:ad:01:4f:5a:a3:d4:
|
||||
3d:78:7e:4b:4a:01:a4:7d:e8:7b:05:3e:7d:d8:b9:
|
||||
55:58:60:d6:1c:ce:e8:32:62:2c:19:60:f3:ed:05:
|
||||
99:6d:c9:77:07:2e:11:6d:0b:9a:c7:68:38:46:e8:
|
||||
fa:31:80:df:e8:79:f0:f1:fd:a9:94:c3:fa:0d:f5:
|
||||
78:ac:49:7e:d5:17:fd:e1:ee:44:f3:c7:0e:30:32:
|
||||
5d:a9:19:25:e4:bb:21:1d:fe:3c:84:48:40:f5:58:
|
||||
f4:bf:13:8c:85:68:bb:ec:f5:dd:c6:38:d1:b0:77:
|
||||
1f:a6:8e:4f:8d:e2:6f:49:74:f5:3f:90:65:8e:99:
|
||||
1e:59:9c:1c:b5:26:24:c4:b1:de:1e:fb:96:65:c4:
|
||||
31:14:1a:53:b8:5e:62:8a:c7:04:f7:b4:36:a4:af:
|
||||
07:c8:27:06:ed:dd:e6:f4:8c:62:f1:65:40:d0:9f:
|
||||
9f:a9:14:c8:8e:8b:74:d6:67:5a:d0:c9:4d:35:a1:
|
||||
d5:7b:39:3a:42:9f:e4:d0:f4:c6:0f:2e:42:30:4b:
|
||||
56:b2:3d:6d:8e:2d:58:c5:69:99:35:49:95:95:99:
|
||||
b6:87:29:2b:32:d1:50:08:cd:25:14:48:6d:10:99:
|
||||
85:61:3c:41:26:21:55:cc:1f:cf:ad:b0:2f:b9:89:
|
||||
d8:4e:a0:18:ff:75:1d:b6:97:7c:c5:fa:8b:dc:93:
|
||||
17:86:0a:64:d4:09:35:d5:83:34:6d:5c:6d:c6:8c:
|
||||
cd:b9:ec:c2:93:c6:c1:b7:cc:04:6f:22:e0:07:bf:
|
||||
e0:d9:9b:2f:d5:a0:50:cc:f9:f0:95:83:8f:f4:30:
|
||||
83:72:94:d7:b5:4b:da:cc:9f:54:3b:8d:78:77:0b:
|
||||
24:6c:0f:c2:96:61:96:2f:b8:5f:b5:7a:ab:7a:5b:
|
||||
97:7a:a9:ad:40:8b:f2:d6:c6:8d:81:d9:94:61:8f:
|
||||
9d:03:c5:b9:10:03:68:83:bf:04:81:cc:ac:bd:34:
|
||||
89:e8:d4:8d:43:20:e2:b6:a4:11:3d:15:2a:82:0c:
|
||||
d6:3a:6a:8c:62:d4:93:bc:c3:80:bf:1b:b4:2b:0a:
|
||||
7a:34:f0:cd:1e:82:3f:25:0f:d1:04:a8:0a:05:19:
|
||||
b0:d6:16:83:39:af:0b:45:7d:cb:14:7e:4d:aa:aa:
|
||||
c2:39:a8:46:38:ab:bd:ab:2a:bd:34:43:7f:da:25:
|
||||
de:2b:fb:69:3b:fe:3b:87:fd:98:94:76:4a:bf:04:
|
||||
a3:31:e3:3a:ff:6f:04:fa:fa:24:e4:2a:89:e9:0e:
|
||||
bf:44:4c:72:85:82:3c:89:4a:03:63:01:41:92:53:
|
||||
d0:82:60:6e:d8:ff:8c:a2:b4:1a:3b:20:6d:ae:74:
|
||||
92:30:4e:48:e3:51:a6:cb:73:97:06:13:03:32:23:
|
||||
9b:7d:a2:c7:3a:a9:af:97:8c:51:ed:fe:fa:b4:b4:
|
||||
1a:a3:87:fc:cf:8c:8e:e6:80:15:03:fd:fe:7d:bd:
|
||||
b1:76:f1:5f:b3:09:2b:4c:4d:a7:7c:b5:72:b1:d6:
|
||||
db:38:c0:67:a4:54:bc:87:09:a5:39:ba:1a:7e:3f:
|
||||
74:60:ad:3d:4b:be:94:53:f3:64:16:c7:33:35:ec:
|
||||
41:00:95:b6:de:99:62:a2:7a:28:9a:45:4d:fa:cd:
|
||||
a6:77:f6:de:58:72:50:c8:7d:69:38:db:07:04:84:
|
||||
d8:4d:39:f7:50:13:43:ae:2d:af:45:a4:2a:39:56:
|
||||
3c:b8:b7:d8:26:a4:36:c9:23:aa:aa:b8:49:0b:21:
|
||||
ba:9e:7a:2b:7f:4d:29:9f:0e:00:1e:b4:5e:a6:fa:
|
||||
49:fe:8d:e5:74:57:d8:ba:d9:92:2c:d2:ac:84:1d:
|
||||
f2:a6:a4:44:1c:bf:88:41:32:7e:d1:c3:2f:6e:bc:
|
||||
0f:5d:19:a6:8f:74:2b:67:ba:dd:a9:db:68:b5:ce:
|
||||
9d:25:48:df:54:08:d0:1d:4f:2e:5b:24:bc:05:0f:
|
||||
fb:58:46:fa:02:ca:53:93:29:cf:10:27:c2:a0:18:
|
||||
d0:f5:d4:b9:3c:5e:df:8e:6c:f5:7c:b9:b4:54:cc:
|
||||
39:16:5d:3c:da:96:b3:c3:6c:d4:70:5d:d3:30:a7:
|
||||
a6:bd:6f:dd:41:bc:a8:de:42:60:59:9a:85:25:0d:
|
||||
2a:45:c3:05:b4:6e:7a:4a:4d:ca:8c:0a:e5:6c:34:
|
||||
bc:20:9b:6d:4a:ca:ca:b6:a6:3a:a0:db:c3:0e:20:
|
||||
1a:12:1b:77:dd:cb:1d:7f:c3:0d:0d:e7:c1:fd:96:
|
||||
d2:c7:68:80:99:a0:d9:8a:33:21:a3:8b:a2:5a:a7:
|
||||
7e:27:06:02:7f:ed:60:11:37:34:54:17:7f:4d:90:
|
||||
14:1e:69:37:0d:ba:f0:2b:f0:a3:2d:62:79:c8:76:
|
||||
a8:ea:c8:e7:3b:1f:c6:4f:c2:0c:d7:ac:f0:77:53:
|
||||
5d:f0:50:b4:df:9b:03:ca:4d:41:e1:18:b2:25:30:
|
||||
86:1d:63:e5:67:b1:53:cd:6b:4e:83:1a:b9:5e:2d:
|
||||
05:15:6b:d4:8e:b1:97:fc:31:03:57:cb:bf:27:7f:
|
||||
cd:5f:27:7e:66:e7:3c:17:09:b6:11:2a:4f:33:cd:
|
||||
eb:1a:d3:6f:d5:15:8b:8b:ce:68:6b:7e:9a:95:e5:
|
||||
74:7f:17:57:d9
|
||||
Public-Key: (8192 bit)
|
||||
Modulus:
|
||||
00:ca:aa:1d:c4:11:ec:91:f0:c7:ff:5f:90:92:fc:
|
||||
40:0c:5e:b7:3d:00:c5:20:d5:0f:89:31:07:d7:41:
|
||||
4c:8b:60:80:aa:38:14:de:93:6b:9c:74:88:41:68:
|
||||
b5:02:41:01:2d:86:a2:7a:95:53:5e:7b:67:2f:6c:
|
||||
1e:29:51:f9:44:fd:4a:80:be:b2:23:a1:3e:1b:38:
|
||||
cf:88:c4:71:ee:f8:6b:41:c5:2d:c0:c3:52:ac:59:
|
||||
7d:81:34:19:95:32:b8:9a:51:b6:41:36:d4:c4:a1:
|
||||
ae:84:e6:38:b9:e8:bf:96:be:19:7a:6b:77:4d:e0:
|
||||
de:e6:b3:b6:6b:bc:3d:dd:68:bc:4b:c4:eb:f5:36:
|
||||
93:ed:56:a2:15:50:8a:10:e8:d6:22:ed:6c:b1:cd:
|
||||
c3:18:c9:f6:0a:e1:de:61:65:62:d6:14:41:8c:b5:
|
||||
fb:14:68:c1:cf:12:5d:41:21:9d:57:11:43:7d:bb:
|
||||
43:2c:21:bb:c3:44:7d:a8:cf:1f:c3:71:75:b5:47:
|
||||
c2:7d:ce:38:3c:73:64:9e:15:d8:a7:27:cf:bd:40:
|
||||
c8:45:08:e3:c8:39:a8:0b:8e:c2:5b:7b:f1:47:91:
|
||||
12:91:cc:e1:00:e0:94:5b:bd:32:e4:0c:8d:c3:be:
|
||||
cc:76:32:52:12:69:b0:18:e0:b0:c2:76:34:5a:5f:
|
||||
79:d9:f6:81:9d:02:0a:61:69:1c:33:ce:49:fa:76:
|
||||
03:1e:07:5b:27:0b:bf:34:9e:34:96:b8:03:9b:50:
|
||||
3a:6a:2f:17:7a:14:cf:65:63:00:37:52:a8:73:ce:
|
||||
4b:14:40:f4:d2:9a:56:54:33:b8:77:2e:42:5b:8f:
|
||||
ec:1f:18:f4:ad:ab:8a:4a:8d:6d:70:25:f3:58:e7:
|
||||
cb:66:51:14:7d:16:f4:eb:6d:56:76:76:51:6e:d6:
|
||||
1d:da:d3:8d:c0:64:5a:67:4e:af:e2:bf:33:d1:b8:
|
||||
f6:2a:fc:57:87:a7:35:5e:80:c9:ac:fc:87:c9:71:
|
||||
17:91:bf:b7:4d:a3:ed:3c:1b:27:f4:66:a0:f9:46:
|
||||
03:27:cc:ea:80:f6:4b:40:f6:41:94:cd:bd:0a:b3:
|
||||
ef:26:be:de:6f:69:ae:0f:3f:1c:55:63:33:90:9b:
|
||||
ed:ca:5a:12:4d:de:4b:06:c2:a2:92:b0:42:3d:31:
|
||||
af:a4:15:12:15:f8:8a:e9:88:8d:cf:fd:85:66:50:
|
||||
6f:11:f1:9f:48:f3:b5:ba:9d:86:68:24:a2:5d:a8:
|
||||
7c:54:42:fa:d8:b5:c5:f2:dd:0e:0f:d0:68:e4:54:
|
||||
7e:c5:b9:a0:9b:65:2d:77:f4:8f:b9:30:0a:d5:86:
|
||||
5c:ed:c9:7c:d1:da:9d:0d:63:50:ee:e5:1e:92:63:
|
||||
cc:a2:0c:e8:4a:96:02:4d:dc:8f:df:7c:8f:08:18:
|
||||
a8:30:88:d7:af:89:ad:fc:57:4b:10:f9:f1:cb:48:
|
||||
e8:b6:3b:c8:3f:fc:c2:d3:d1:4a:10:3c:1b:6b:64:
|
||||
dc:e5:65:1e:5b:b2:da:b1:e2:24:97:8f:ee:c0:4b:
|
||||
8e:18:83:7c:17:a6:3c:45:b3:60:06:23:f2:2f:18:
|
||||
13:9e:17:8a:c6:72:79:8c:4d:04:f3:9d:ea:e0:25:
|
||||
d3:33:8c:1e:11:47:63:1f:a5:45:3f:bd:85:b3:fe:
|
||||
a5:68:ee:48:b7:0c:a4:c9:7f:72:d0:75:66:9b:6a:
|
||||
f9:a0:50:f3:a8:59:6d:a3:dd:38:4f:70:2b:bb:ff:
|
||||
92:2e:71:ab:ef:e9:00:ed:0d:d1:b4:6f:f0:8e:b2:
|
||||
09:fb:4d:61:0d:d9:10:d5:54:11:cd:03:94:84:fd:
|
||||
a8:68:e4:45:6e:1e:6a:1e:2f:85:a1:6d:f5:b6:c0:
|
||||
f1:ee:f7:36:e9:fe:c2:f7:ad:cc:13:46:5b:88:42:
|
||||
f0:2d:1f:b5:0e:7e:b5:2b:e4:8d:ab:b9:87:30:6a:
|
||||
3d:12:f4:ad:f3:1c:ac:cc:1a:48:29:2a:96:7b:80:
|
||||
00:0b:6e:59:87:bf:a3:ca:70:99:1b:1c:fd:72:3d:
|
||||
b2:d3:94:4a:cf:55:75:be:1f:40:ec:55:35:48:2d:
|
||||
55:f0:00:da:3c:b0:60:ba:11:32:66:54:0b:be:06:
|
||||
a4:5e:b7:c9:59:bb:4d:f4:92:06:26:48:6e:c2:12:
|
||||
d4:7c:f0:20:b8:a2:e1:bc:6a:b6:19:0e:37:47:55:
|
||||
c9:f2:49:0d:96:75:a2:84:64:bf:34:fc:be:b2:41:
|
||||
e4:f5:88:eb:e1:b7:26:a5:e5:41:c2:20:0c:f6:e2:
|
||||
a8:a5:e7:76:54:a5:fb:4b:80:05:7d:18:85:7a:ba:
|
||||
bc:b7:ad:c0:2f:60:85:cc:15:12:1c:2f:0a:9e:f3:
|
||||
7c:40:cf:f4:3e:23:d2:95:ca:d0:06:58:52:f0:84:
|
||||
d8:0f:3d:eb:ff:12:68:94:79:8f:be:40:29:5f:98:
|
||||
c8:90:6c:05:2f:99:8c:2a:63:78:1f:23:b1:29:c5:
|
||||
e7:49:c9:b2:92:0f:53:0b:d5:71:28:17:c2:19:bf:
|
||||
60:bf:7c:87:a8:ab:c1:f4:0a:c1:b8:d2:68:ee:c1:
|
||||
ce:a7:13:13:17:6d:24:5d:a2:37:a6:d7:7d:48:8b:
|
||||
2b:74:2d:40:2e:ca:19:d5:b6:3e:6c:42:71:fa:cf:
|
||||
85:87:f9:de:80:73:8b:89:f4:70:f0:d8:d7:ff:40:
|
||||
41:9c:c7:15:6d:9b:6e:4c:b5:52:02:99:79:32:73:
|
||||
ca:26:a0:ac:31:6f:c4:b0:f5:da:bb:c2:1f:e0:9f:
|
||||
44:ba:25:f7:9f
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
58:12:24:59:A7:3C:29:15:89:5A:C2:12:DB:E7:A5:42:10:21:B7:BA
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F2:E2:EA:55:65:A4:9A:E2:AC:9D:97:F5:45:6C:F6:F7:8C:11:AD:DF
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:95:E9:78:F5:34:50:E4:D5
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
cd:cb:5c:83:35:ea:cb:cb:c3:a8:c3:95:e2:e6:6f:4d:d8:e4:
|
||||
ee:41:dd:3f:35:82:ac:2f:fd:63:89:4f:3a:19:d7:81:75:b3:
|
||||
a3:fc:36:b2:12:d5:c6:56:bc:13:60:37:33:6e:a0:d8:ae:7c:
|
||||
88:f9:4b:ee:7b:1f:c8:f0:56:19:07:4d:bb:45:52:1c:78:81:
|
||||
07:7c:13:86:b8:86:70:85:e4:71:25:58:78:d1:be:de:22:82:
|
||||
6d:1a:4b:06:ac:f0:e8:50:87:c7:69:64:c2:61:43:cd:96:06:
|
||||
a6:7e:09:a9:02:01:2a:a2:40:f3:cd:10:80:48:d0:34:55:40:
|
||||
b9:ce
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
08:75:dc:b9:3f:aa:b6:7e:81:7a:39:d1:ee:ed:44:b6:ce:1b:
|
||||
37:c4:4c:19:d0:66:e6:eb:b5:4f:2a:ef:95:58:64:21:55:01:
|
||||
12:30:ac:8a:95:d1:06:de:29:46:a4:f1:7d:7f:b0:1e:d2:4e:
|
||||
fb:f6:fa:9a:74:be:85:62:db:0b:82:90:58:62:c5:5f:f1:80:
|
||||
02:9f:c5:fb:f3:6b:b0:b4:3b:04:b1:e5:53:c2:d0:00:a1:1a:
|
||||
9d:65:60:6f:73:98:67:e0:9c:c8:12:94:79:59:bf:43:7b:f5:
|
||||
77:c8:8f:df:b1:cd:11:1c:01:19:99:c2:22:42:f7:41:ae:b4:
|
||||
b8:1a
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
sc0RHAEZmcIiQvdBrrS4Gg==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,99 +1,99 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -25,7 +25,7 @@ master-bin.000001 # Query # # use `d1`; create table t (s1 int) engine=innodb
|
|||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `d1`; insert into t values (1)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # use `d1`; grant select on t to x@y
|
||||
master-bin.000001 # Query # # use `d1`; grant select on t to 'x'@'y'
|
||||
start transaction;
|
||||
insert into t values (2);
|
||||
revoke select on t from x@y;
|
||||
|
@ -45,10 +45,10 @@ master-bin.000001 # Query # # use `d1`; create table t (s1 int) engine=innodb
|
|||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `d1`; insert into t values (1)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # use `d1`; grant select on t to x@y
|
||||
master-bin.000001 # Query # # use `d1`; grant select on t to 'x'@'y'
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `d1`; insert into t values (2)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # use `d1`; revoke select on t from x@y
|
||||
master-bin.000001 # Query # # use `d1`; revoke select on t from 'x'@'y'
|
||||
drop user x@y;
|
||||
drop database d1;
|
||||
|
|
|
@ -251,3 +251,45 @@ DROP EVENT event44331_1;
|
|||
DROP EVENT event44331_2;
|
||||
DROP EVENT event44331_3;
|
||||
DROP EVENT event44331_4;
|
||||
DROP VIEW IF EXISTS events_view;
|
||||
DROP EVENT IF EXISTS event48321_1;
|
||||
DROP EVENT IF EXISTS event48321_2;
|
||||
DROP EVENT IF EXISTS event48321_3;
|
||||
DROP EVENT IF EXISTS event48321_4;
|
||||
CREATE VIEW events_view AS
|
||||
SELECT EVENT_SCHEMA, EVENT_NAME, DEFINER FROM INFORMATION_SCHEMA.EVENTS
|
||||
WHERE EVENT_NAME LIKE 'event48321%';
|
||||
CREATE DEFINER=CURRENT_USER() /*!50000 EVENT event48321_1 */
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
CREATE DEFINER=CURRENT_USER() EVENT event48321_2
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
CREATE /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
Comparing tables master:test.events_view and slave:test.events_view
|
||||
ALTER DEFINER=CURRENT_USER() EVENT event48321_1 RENAME TO event48321_4;
|
||||
ALTER DEFINER=CURRENT_USER() EVENT event48321_2
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
ALTER /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
Comparing tables master:test.events_view and slave:test.events_view
|
||||
ALTER /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG; ALTER EVENT event48321_2 ENABLE |
|
||||
Comparing tables master:test.events_view and slave:test.events_view
|
||||
ALTER EVENT event48321_3 ENABLE;
|
||||
Comparing tables master:test.events_view and slave:test.events_view
|
||||
DROP EVENT event48321_4;
|
||||
DROP EVENT event48321_2;
|
||||
DROP EVENT event48321_3;
|
||||
DROP VIEW events_view;
|
||||
|
|
|
@ -4,10 +4,9 @@ reset master;
|
|||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
call mtr.add_suppression("Get master clock failed with error: ");
|
||||
call mtr.add_suppression("Get master SERVER_ID failed with error: ");
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again");
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*");
|
||||
call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*");
|
||||
call mtr.add_suppression("Slave I/O thread .* register on master");
|
||||
SELECT IS_FREE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP");
|
||||
IS_FREE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP")
|
||||
1
|
||||
|
|
|
@ -750,7 +750,7 @@ test_rpl e2 root@localhost SYSTEM RECURRING NULL 1 # # NULL ENABLED 1 latin1 lat
|
|||
USE test_rpl;
|
||||
SHOW EVENTS;
|
||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||
test_rpl e2 @ SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
test_rpl e2 root@localhost SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
==========MASTER==========
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
|
@ -1079,7 +1079,7 @@ master-bin.000001 # Query 1 # BEGIN
|
|||
master-bin.000001 # Query 1 # use `test_rpl`; INSERT INTO t1 VALUES(1, 'test1')
|
||||
master-bin.000001 # Xid 1 # #
|
||||
master-bin.000001 # Query 1 # use `test_rpl`; CREATE DEFINER=`root`@`localhost` EVENT e1 ON SCHEDULE EVERY '1' SECOND COMMENT 'e_second_comment' DO DELETE FROM t1
|
||||
master-bin.000001 # Query 1 # use `test_rpl`; ALTER EVENT e1 RENAME TO e2
|
||||
master-bin.000001 # Query 1 # use `test_rpl`; ALTER DEFINER=`root`@`localhost` EVENT e1 RENAME TO e2
|
||||
master-bin.000001 # Query 1 # use `test_rpl`; DROP EVENT e2
|
||||
master-bin.000001 # Query 1 # BEGIN
|
||||
master-bin.000001 # Query 1 # use `test_rpl`; DELETE FROM t1
|
||||
|
|
|
@ -152,7 +152,7 @@ c1 c3 c4 c5
|
|||
5 2006-02-22 00:00:00 Tested in Texas 11
|
||||
|
||||
--- Test 2 position test --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
Warning: The option '--position' is deprecated and will be removed in a future release. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
@ -315,7 +315,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Test 7 reading stdin w/position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
Warning: The option '--position' is deprecated and will be removed in a future release. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
|
35
mysql-test/suite/rpl/r/rpl_set_null_innodb.result
Normal file
35
mysql-test/suite/rpl/r/rpl_set_null_innodb.result
Normal file
|
@ -0,0 +1,35 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=InnoDB;
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 CHAR) Engine=InnoDB;
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
w
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w';
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
35
mysql-test/suite/rpl/r/rpl_set_null_myisam.result
Normal file
35
mysql-test/suite/rpl/r/rpl_set_null_myisam.result
Normal file
|
@ -0,0 +1,35 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=MyISAM;
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 CHAR) Engine=MyISAM;
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
w
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w';
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
|
@ -433,9 +433,9 @@ master-bin.000001 # Query # # use `mysqltest1`; create table t2 like t1
|
|||
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `foo3`()
|
||||
DETERMINISTIC
|
||||
insert into t1 values (15)
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant CREATE ROUTINE, EXECUTE on mysqltest1.* to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant SELECT on mysqltest1.t1 to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
master-bin.000001 # Query # # use `mysqltest1`; grant SELECT, INSERT on mysqltest1.t2 to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` PROCEDURE `foo4`()
|
||||
DETERMINISTIC
|
||||
begin
|
||||
|
@ -510,7 +510,7 @@ select * from t1
|
|||
master-bin.000001 # Query # # use `mysqltest1`; drop procedure foo
|
||||
master-bin.000001 # Query # # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query # # drop database mysqltest1
|
||||
master-bin.000001 # Query # # drop user "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query # # DROP USER 'zedjzlcsjhd'@'127.0.0.1'
|
||||
master-bin.000001 # Query # # use `test`; drop function if exists f1
|
||||
master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
|
||||
READS SQL DATA
|
||||
|
@ -675,13 +675,13 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `foo3`()
|
|||
insert into t1 values (15)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1
|
||||
grant CREATE ROUTINE, EXECUTE on mysqltest1.* to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1
|
||||
grant SELECT on mysqltest1.t1 to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1
|
||||
grant SELECT, INSERT on mysqltest1.t2 to 'zedjzlcsjhd'@'127.0.0.1'
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` PROCEDURE `foo4`()
|
||||
|
@ -842,7 +842,7 @@ SET TIMESTAMP=t/*!*/;
|
|||
drop database mysqltest1
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
drop user "zedjzlcsjhd"@127.0.0.1
|
||||
DROP USER 'zedjzlcsjhd'@'127.0.0.1'
|
||||
/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
|
|
|
@ -248,3 +248,23 @@ one
|
|||
1
|
||||
drop table t1;
|
||||
start slave;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
drop table if exists t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
flush logs;
|
||||
stop slave;
|
||||
reset slave;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=294 /* to stop right before DROP */;
|
||||
show tables /* t1 must exist */;
|
||||
Tables_in_test
|
||||
t1
|
||||
drop table t1;
|
||||
stop slave;
|
||||
reset slave;
|
||||
reset master;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -25,7 +25,7 @@ grant select on t to x@y;
|
|||
#
|
||||
rollback;
|
||||
show grants for x@y;
|
||||
source include/show_binlog_events.inc;
|
||||
--source include/show_binlog_events.inc
|
||||
start transaction;
|
||||
insert into t values (2);
|
||||
revoke select on t from x@y;
|
||||
|
@ -35,7 +35,7 @@ revoke select on t from x@y;
|
|||
commit;
|
||||
select * from t;
|
||||
show grants for x@y;
|
||||
source include/show_binlog_events.inc;
|
||||
--source include/show_binlog_events.inc
|
||||
drop user x@y;
|
||||
drop database d1;
|
||||
--sync_slave_with_master
|
||||
|
|
|
@ -105,3 +105,85 @@ DROP EVENT event44331_2;
|
|||
DROP EVENT event44331_3;
|
||||
DROP EVENT event44331_4;
|
||||
sync_slave_with_master;
|
||||
|
||||
#
|
||||
# BUG#48321
|
||||
# This test verifies if the definer is consistent between master and slave,
|
||||
# when the event is created or altered with the DEFINER clause that the
|
||||
# DEFINER is set to CURRENT_USER()
|
||||
#
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP VIEW IF EXISTS events_view;
|
||||
DROP EVENT IF EXISTS event48321_1;
|
||||
DROP EVENT IF EXISTS event48321_2;
|
||||
DROP EVENT IF EXISTS event48321_3;
|
||||
DROP EVENT IF EXISTS event48321_4;
|
||||
--enable_warnings
|
||||
|
||||
CREATE VIEW events_view AS
|
||||
SELECT EVENT_SCHEMA, EVENT_NAME, DEFINER FROM INFORMATION_SCHEMA.EVENTS
|
||||
WHERE EVENT_NAME LIKE 'event48321%';
|
||||
let $diff_table_1= master:test.events_view;
|
||||
let $diff_table_2= slave:test.events_view;
|
||||
|
||||
CREATE DEFINER=CURRENT_USER() /*!50000 EVENT event48321_1 */
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
|
||||
CREATE DEFINER=CURRENT_USER() EVENT event48321_2
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
|
||||
CREATE /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/diff_tables.inc
|
||||
|
||||
connection master;
|
||||
ALTER DEFINER=CURRENT_USER() EVENT event48321_1 RENAME TO event48321_4;
|
||||
|
||||
ALTER DEFINER=CURRENT_USER() EVENT event48321_2
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
|
||||
ALTER /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG;
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/diff_tables.inc
|
||||
|
||||
# Two statements in on query
|
||||
connection master;
|
||||
DELIMITER |;
|
||||
ALTER /*!50000 DEFINER=CURRENT_USER() */ EVENT event48321_3
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP
|
||||
ON COMPLETION PRESERVE DISABLE
|
||||
DO SELECT 48321 as BUG; ALTER EVENT event48321_2 ENABLE |
|
||||
DELIMITER ;|
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/diff_tables.inc
|
||||
|
||||
#No Event boday
|
||||
connection master;
|
||||
ALTER EVENT event48321_3 ENABLE;
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/diff_tables.inc
|
||||
|
||||
connection master;
|
||||
DROP EVENT event48321_4;
|
||||
DROP EVENT event48321_2;
|
||||
DROP EVENT event48321_3;
|
||||
DROP VIEW events_view;
|
||||
--source include/master-slave-end.inc
|
||||
|
||||
|
|
|
@ -17,14 +17,13 @@
|
|||
source include/master-slave.inc;
|
||||
source include/have_debug.inc;
|
||||
|
||||
connection slave;
|
||||
call mtr.add_suppression("Slave I/O: .* failed with error: Lost connection to MySQL server at 'reading initial communication packet'");
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again");
|
||||
call mtr.add_suppression("Get master clock failed with error: ");
|
||||
call mtr.add_suppression("Get master SERVER_ID failed with error: ");
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*");
|
||||
call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*");
|
||||
call mtr.add_suppression("Slave I/O thread .* register on master");
|
||||
|
||||
#Test case 1: Try to get the value of the UNIX_TIMESTAMP from master under network disconnection
|
||||
connection slave;
|
||||
let $debug_saved= `select @@global.debug`;
|
||||
|
||||
let $debug_lock= "debug_lock.before_get_UNIX_TIMESTAMP";
|
||||
|
|
6
mysql-test/suite/rpl/t/rpl_set_null_innodb.test
Normal file
6
mysql-test/suite/rpl/t/rpl_set_null_innodb.test
Normal file
|
@ -0,0 +1,6 @@
|
|||
-- source include/have_binlog_format_mixed_or_row.inc
|
||||
-- source include/master-slave.inc
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
-- let $engine= InnoDB
|
||||
-- source extra/rpl_tests/rpl_set_null.test
|
5
mysql-test/suite/rpl/t/rpl_set_null_myisam.test
Normal file
5
mysql-test/suite/rpl/t/rpl_set_null_myisam.test
Normal file
|
@ -0,0 +1,5 @@
|
|||
-- source include/have_binlog_format_mixed_or_row.inc
|
||||
-- source include/master-slave.inc
|
||||
|
||||
-- let $engine= MyISAM
|
||||
-- source extra/rpl_tests/rpl_set_null.test
|
|
@ -161,4 +161,39 @@ connection slave;
|
|||
start slave;
|
||||
sync_with_master;
|
||||
|
||||
# Bug #47142 "slave start until" stops 1 event too late in 4.1 to 5.0 replication
|
||||
#
|
||||
# testing fixes that refine the start position of prior-5.0 master's event
|
||||
# and by that provide correct execution of
|
||||
# START SLAVE UNTIL ... master_log_pos= x;
|
||||
# Keep the test at the end of the file because it manipulates with binlog files
|
||||
# to substitute the genuine one with a prepared on 4.1 server.
|
||||
#
|
||||
|
||||
--source include/master-slave-reset.inc
|
||||
|
||||
connection master;
|
||||
drop table if exists t1; # there is create table t1 in bug47142_master-bin.000001
|
||||
flush logs;
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
--remove_file $MYSQLD_DATADIR/master-bin.000001
|
||||
--copy_file $MYSQL_TEST_DIR/std_data/bug47142_master-bin.000001 $MYSQLD_DATADIR/master-bin.000001
|
||||
|
||||
connection slave;
|
||||
stop slave;
|
||||
reset slave;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=294 /* to stop right before DROP */;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
|
||||
show tables /* t1 must exist */;
|
||||
|
||||
# clean-up of Bug #47142 testing
|
||||
|
||||
drop table t1; # drop on slave only, master does not have t1.
|
||||
stop slave;
|
||||
reset slave;
|
||||
|
||||
connection master;
|
||||
reset master;
|
||||
|
||||
# End of tests
|
||||
|
|
|
@ -54,8 +54,85 @@ drop user 'not_exist_user1'@'fakehost', 'not_exist_user2'@'fakehost';
|
|||
sync_slave_with_master;
|
||||
select Host,User from mysql.user where Host='fakehost';
|
||||
|
||||
#
|
||||
# show the binlog events on the master
|
||||
#
|
||||
connection master;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
#
|
||||
# BUG#48321
|
||||
#
|
||||
let $action= RENAME;
|
||||
let $statement= RENAME USER \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
let $action= DROP;
|
||||
let $statement= DROP USER \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS f1;
|
||||
--enable_warnings
|
||||
CREATE PROCEDURE p1() SELECT 1;
|
||||
#REVOKE ALL PRIVILEGES
|
||||
let $action= REVOKE;
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Grant_priv;
|
||||
let $statement= REVOKE ALL PRIVILEGES, GRANT OPTION FROM \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#REVOKE ALL PRIVILEGES with comment
|
||||
let $action= REVOKE;
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Grant_priv;
|
||||
let $statement= REVOKE ALL PRIVILEGES, GRANT OPTION FROM \$users_list /*With comment*/;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#REVOKE ALL PRIVILEGES with comment
|
||||
let $action= REVOKE;
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Grant_priv;
|
||||
let $statement= REVOKE ALL PRIVILEGES, GRANT OPTION FROM /*With comment*/ \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv;
|
||||
#REVOKE ON TABLE
|
||||
let $statement= REVOKE SELECT, UPDATE, CREATE, DROP ON TABLE *.* FROM \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#REVOKE ON CREATE ROUTINE
|
||||
let $diff_columns= Create_routine_priv;
|
||||
let $statement= REVOKE CREATE ROUTINE ON *.* FROM \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#REVOKE ON ROUTINE
|
||||
let $diff_table= mysql.procs_priv;
|
||||
let $diff_columns= Routine_name, Proc_priv;
|
||||
let $statement= REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
let $diff_table= mysql.user;
|
||||
#GRANT ALL PRIVILEGES
|
||||
let $action= GRANT;
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Grant_priv, Password;
|
||||
let $statement= GRANT ALL PRIVILEGES ON *.* TO \$users_list WITH GRANT OPTION;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#GRANT ALL PRIVILEGES with comment
|
||||
let $action= GRANT;
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Grant_priv, Password;
|
||||
let $statement= GRANT ALL PRIVILEGES ON *.* TO \$users_list /* With Comment */ WITH GRANT OPTION;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#GRANT ON TABLE
|
||||
let $diff_columns= Select_priv, Update_priv, Create_priv, Drop_priv, Password;
|
||||
let $statement= GRANT SELECT, UPDATE, CREATE, DROP ON TABLE *.* TO \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#GRANT ON CREATE ROUTINE
|
||||
let $diff_columns= Create_routine_priv;
|
||||
let $statement= GRANT CREATE ROUTINE ON *.* TO \$users_list;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
||||
#GRANT ON ROUTINE
|
||||
let $diff_table= mysql.procs_priv;
|
||||
let $diff_columns= Routine_name, Proc_priv;
|
||||
let $statement= GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO \$users_list;
|
||||
|
||||
DROP PROCEDURE p1;
|
||||
source extra/rpl_tests/rpl_current_user.test;
|
||||
|
|
35
mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result
Normal file
35
mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result
Normal file
|
@ -0,0 +1,35 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 BIT, c2 INT) Engine=NDB;
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 CHAR) Engine=NDB;
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
w
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w';
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
6
mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test
Normal file
6
mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test
Normal file
|
@ -0,0 +1,6 @@
|
|||
-- source include/have_ndb.inc
|
||||
-- source include/have_binlog_format_mixed_or_row.inc
|
||||
-- source include/ndb_master-slave.inc
|
||||
|
||||
-- let $engine= NDB
|
||||
-- source extra/rpl_tests/rpl_set_null.test
|
|
@ -357,4 +357,21 @@ END |
|
|||
--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
|
||||
DELETE IGNORE FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug #49552 : sql_buffer_result cause crash + not found records
|
||||
--echo # in multitable delete/subquery
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
SET SESSION SQL_BUFFER_RESULT=1;
|
||||
DELETE t1 FROM (SELECT SUM(a) a FROM t1) x,t1;
|
||||
|
||||
SET SESSION SQL_BUFFER_RESULT=DEFAULT;
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
|
@ -15,8 +15,8 @@ insert into t1 values (5);
|
|||
|
||||
grant select on test.* to ssl_user1@localhost require SSL;
|
||||
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
|
||||
flush privileges;
|
||||
|
||||
|
|
|
@ -3836,6 +3836,46 @@ EXPLAIN EXTENDED SELECT x.a, y.a, z.a FROM t1 x
|
|||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug #49897: crash in ptr_compare when char(0) NOT NULL
|
||||
--echo # column is used for ORDER BY
|
||||
--echo #
|
||||
SET @old_sort_buffer_size= @@session.sort_buffer_size;
|
||||
SET @@sort_buffer_size= 40000;
|
||||
|
||||
CREATE TABLE t1(a CHAR(0) NOT NULL);
|
||||
--disable_warnings
|
||||
INSERT INTO t1 VALUES (0), (0), (0);
|
||||
--enable_warnings
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12;
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a;
|
||||
--disable_result_log
|
||||
SELECT a FROM t1 ORDER BY a;
|
||||
--enable_result_log
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int);
|
||||
--disable_warnings
|
||||
INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1);
|
||||
--enable_warnings
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12;
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a LIMIT 5;
|
||||
SELECT a FROM t1 ORDER BY a LIMIT 5;
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY a, b LIMIT 5;
|
||||
SELECT * FROM t1 ORDER BY a, b LIMIT 5;
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY a, b, c LIMIT 5;
|
||||
SELECT * FROM t1 ORDER BY a, b, c LIMIT 5;
|
||||
EXPLAIN SELECT * FROM t1 ORDER BY c, a LIMIT 5;
|
||||
SELECT * FROM t1 ORDER BY c, a LIMIT 5;
|
||||
|
||||
SET @@sort_buffer_size= @old_sort_buffer_size;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -341,31 +341,48 @@ common_1_lev_code:
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
Create a new query string for removing executable comments
|
||||
for avoiding leak and keeping consistency of the execution
|
||||
on master and slave.
|
||||
|
||||
/*
|
||||
Binlog '{CREATE|ALTER} EVENT' statements.
|
||||
Definer part is always rewritten, for definer can be CURRENT_USER() function.
|
||||
|
||||
@param[in] thd Thread handler
|
||||
@param[in] buf Query string
|
||||
@param[in] create CREATE or ALTER statement
|
||||
|
||||
@return
|
||||
0 ok
|
||||
1 error
|
||||
FASE ok
|
||||
TRUE error
|
||||
*/
|
||||
static int
|
||||
create_query_string(THD *thd, String *buf)
|
||||
static bool event_write_bin_log(THD *thd, bool create)
|
||||
{
|
||||
/* Append the "CREATE" part of the query */
|
||||
if (buf->append(STRING_WITH_LEN("CREATE ")))
|
||||
return 1;
|
||||
/* Append definer */
|
||||
append_definer(thd, buf, &(thd->lex->definer->user), &(thd->lex->definer->host));
|
||||
String log_query;
|
||||
if (create)
|
||||
{
|
||||
/* Append the "CREATE" part of the query */
|
||||
if (log_query.append(STRING_WITH_LEN("CREATE ")))
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Append the "ALETR " part of the query */
|
||||
if (log_query.append(STRING_WITH_LEN("ALTER ")))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Append definer
|
||||
If the definer is not set or set to CURRENT_USER, the value of CURRENT_USER
|
||||
will be written into the binary log as the definer for the SQL thread.
|
||||
*/
|
||||
append_definer(thd, &log_query, &(thd->lex->definer->user),
|
||||
&(thd->lex->definer->host));
|
||||
|
||||
/* Append the left part of thd->query after "DEFINER" part */
|
||||
if (buf->append(thd->lex->stmt_definition_begin))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
if (log_query.append(thd->lex->stmt_definition_begin,
|
||||
thd->lex->stmt_definition_end -
|
||||
thd->lex->stmt_definition_begin))
|
||||
return TRUE;
|
||||
|
||||
return write_bin_log(thd, TRUE, log_query.c_ptr_safe(), log_query.length())
|
||||
!= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -380,8 +397,7 @@ create_query_string(THD *thd, String *buf)
|
|||
@sa Events::drop_event for the notes about locking, pre-locking
|
||||
and Events DDL.
|
||||
|
||||
@retval FALSE OK
|
||||
@retval TRUE Error (reported)
|
||||
@retval FALSE OK @retval TRUE Error (reported)
|
||||
*/
|
||||
|
||||
bool
|
||||
|
@ -465,22 +481,7 @@ Events::create_event(THD *thd, Event_parse_data *parse_data,
|
|||
binlog the create event unless it's been successfully dropped
|
||||
*/
|
||||
if (!dropped)
|
||||
{
|
||||
/* Binlog the create event. */
|
||||
DBUG_ASSERT(thd->query() && thd->query_length());
|
||||
String log_query;
|
||||
if (create_query_string(thd, &log_query))
|
||||
{
|
||||
sql_print_error("Event Error: An error occurred while creating query string, "
|
||||
"before writing it into binary log.");
|
||||
/* Restore the state of binlog format */
|
||||
thd->current_stmt_binlog_row_based= save_binlog_row_based;
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
/* If the definer is not set or set to CURRENT_USER, the value of CURRENT_USER
|
||||
will be written into the binary log as the definer for the SQL thread. */
|
||||
ret= write_bin_log(thd, TRUE, log_query.c_ptr(), log_query.length());
|
||||
}
|
||||
ret= event_write_bin_log(thd, TRUE);
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_event_metadata);
|
||||
/* Restore the state of binlog format */
|
||||
|
@ -602,9 +603,7 @@ Events::update_event(THD *thd, Event_parse_data *parse_data,
|
|||
if (event_queue)
|
||||
event_queue->update_event(thd, parse_data->dbname, parse_data->name,
|
||||
new_element);
|
||||
/* Binlog the alter event. */
|
||||
DBUG_ASSERT(thd->query() && thd->query_length());
|
||||
ret= write_bin_log(thd, TRUE, thd->query(), thd->query_length());
|
||||
ret= event_write_bin_log(thd, FALSE);
|
||||
}
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_event_metadata);
|
||||
|
|
|
@ -1929,7 +1929,12 @@ public:
|
|||
uint32 max_display_length() { return field_length; }
|
||||
uint size_of() const { return sizeof(*this); }
|
||||
Item_result result_type () const { return INT_RESULT; }
|
||||
int reset(void) { bzero(ptr, bytes_in_rec); return 0; }
|
||||
int reset(void) {
|
||||
bzero(ptr, bytes_in_rec);
|
||||
if (bit_ptr && (bit_len > 0)) // reset odd bits among null bits
|
||||
clr_rec_bits(bit_ptr, bit_ofs, bit_len);
|
||||
return 0;
|
||||
}
|
||||
int store(const char *to, uint length, CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr, bool unsigned_val);
|
||||
|
|
|
@ -145,6 +145,8 @@ ha_rows filesort(THD *thd, TABLE *table, SORT_FIELD *sortorder, uint s_length,
|
|||
error= 1;
|
||||
bzero((char*) ¶m,sizeof(param));
|
||||
param.sort_length= sortlength(thd, sortorder, s_length, &multi_byte_charset);
|
||||
/* filesort cannot handle zero-length records. */
|
||||
DBUG_ASSERT(param.sort_length);
|
||||
param.ref_length= table->file->ref_length;
|
||||
param.addon_field= 0;
|
||||
param.addon_length= 0;
|
||||
|
|
|
@ -42,6 +42,20 @@ C_MODE_END
|
|||
String my_empty_string("",default_charset_info);
|
||||
|
||||
|
||||
/*
|
||||
Convert an array of bytes to a hexadecimal representation.
|
||||
|
||||
Used to generate a hexadecimal representation of a message digest.
|
||||
*/
|
||||
static void array_to_hex(char *to, const char *str, uint len)
|
||||
{
|
||||
const char *str_end= str + len;
|
||||
for (; str != str_end; ++str)
|
||||
{
|
||||
*to++= _dig_vec_lower[((uchar) *str) >> 4];
|
||||
*to++= _dig_vec_lower[((uchar) *str) & 0x0F];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool Item_str_func::fix_fields(THD *thd, Item **ref)
|
||||
|
@ -114,12 +128,7 @@ String *Item_func_md5::val_str(String *str)
|
|||
null_value=1;
|
||||
return 0;
|
||||
}
|
||||
sprintf((char *) str->ptr(),
|
||||
"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
|
||||
digest[0], digest[1], digest[2], digest[3],
|
||||
digest[4], digest[5], digest[6], digest[7],
|
||||
digest[8], digest[9], digest[10], digest[11],
|
||||
digest[12], digest[13], digest[14], digest[15]);
|
||||
array_to_hex((char *) str->ptr(), (const char*) digest, 16);
|
||||
str->length((uint) 32);
|
||||
return str;
|
||||
}
|
||||
|
@ -160,15 +169,7 @@ String *Item_func_sha::val_str(String *str)
|
|||
if (!( str->alloc(SHA1_HASH_SIZE*2) ||
|
||||
(mysql_sha1_result(&context,digest))))
|
||||
{
|
||||
sprintf((char *) str->ptr(),
|
||||
"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\
|
||||
%02x%02x%02x%02x%02x%02x%02x%02x",
|
||||
digest[0], digest[1], digest[2], digest[3],
|
||||
digest[4], digest[5], digest[6], digest[7],
|
||||
digest[8], digest[9], digest[10], digest[11],
|
||||
digest[12], digest[13], digest[14], digest[15],
|
||||
digest[16], digest[17], digest[18], digest[19]);
|
||||
|
||||
array_to_hex((char *) str->ptr(), (const char*) digest, SHA1_HASH_SIZE);
|
||||
str->length((uint) SHA1_HASH_SIZE*2);
|
||||
null_value=0;
|
||||
return str;
|
||||
|
@ -1764,19 +1765,19 @@ String *Item_func_encode::val_str(String *str)
|
|||
|
||||
null_value= 0;
|
||||
res= copy_if_not_alloced(str, res, res->length());
|
||||
transform(res);
|
||||
crypto_transform(res);
|
||||
sql_crypt.reinit();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void Item_func_encode::transform(String *res)
|
||||
void Item_func_encode::crypto_transform(String *res)
|
||||
{
|
||||
sql_crypt.encode((char*) res->ptr(),res->length());
|
||||
res->set_charset(&my_charset_bin);
|
||||
}
|
||||
|
||||
void Item_func_decode::transform(String *res)
|
||||
void Item_func_decode::crypto_transform(String *res)
|
||||
{
|
||||
sql_crypt.decode((char*) res->ptr(),res->length());
|
||||
}
|
||||
|
|
|
@ -366,7 +366,7 @@ public:
|
|||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "encode"; }
|
||||
protected:
|
||||
virtual void transform(String *);
|
||||
virtual void crypto_transform(String *);
|
||||
private:
|
||||
/** Provide a seed for the PRNG sequence. */
|
||||
bool seed();
|
||||
|
@ -379,7 +379,7 @@ public:
|
|||
Item_func_decode(Item *a, Item *seed): Item_func_encode(a, seed) {}
|
||||
const char *func_name() const { return "decode"; }
|
||||
protected:
|
||||
void transform(String *);
|
||||
void crypto_transform(String *);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2296,10 +2296,22 @@ bool Query_log_event::write(IO_CACHE* file)
|
|||
int8store(start, table_map_for_update);
|
||||
start+= 8;
|
||||
}
|
||||
if (master_data_written != 0)
|
||||
{
|
||||
/*
|
||||
Q_MASTER_DATA_WRITTEN_CODE only exists in relay logs where the master
|
||||
has binlog_version<4 and the slave has binlog_version=4. See comment
|
||||
for master_data_written in log_event.h for details.
|
||||
*/
|
||||
*start++= Q_MASTER_DATA_WRITTEN_CODE;
|
||||
int4store(start, master_data_written);
|
||||
start+= 4;
|
||||
}
|
||||
|
||||
/*
|
||||
NOTE: When adding new status vars, please don't forget to update
|
||||
the MAX_SIZE_LOG_EVENT_STATUS in log_event.h and update function
|
||||
code_name in this file.
|
||||
the MAX_SIZE_LOG_EVENT_STATUS in log_event.h and update the function
|
||||
code_name() in this file.
|
||||
|
||||
Here there could be code like
|
||||
if (command-line-option-which-says-"log_this_variable" && inited)
|
||||
|
@ -2375,7 +2387,8 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
|
|||
auto_increment_offset(thd_arg->variables.auto_increment_offset),
|
||||
lc_time_names_number(thd_arg->variables.lc_time_names->number),
|
||||
charset_database_number(0),
|
||||
table_map_for_update((ulonglong)thd_arg->table_map_for_update)
|
||||
table_map_for_update((ulonglong)thd_arg->table_map_for_update),
|
||||
master_data_written(0)
|
||||
{
|
||||
time_t end_time;
|
||||
|
||||
|
@ -2515,6 +2528,7 @@ code_name(int code)
|
|||
case Q_LC_TIME_NAMES_CODE: return "Q_LC_TIME_NAMES_CODE";
|
||||
case Q_CHARSET_DATABASE_CODE: return "Q_CHARSET_DATABASE_CODE";
|
||||
case Q_TABLE_MAP_FOR_UPDATE_CODE: return "Q_TABLE_MAP_FOR_UPDATE_CODE";
|
||||
case Q_MASTER_DATA_WRITTEN_CODE: return "Q_MASTER_DATA_WRITTEN_CODE";
|
||||
}
|
||||
sprintf(buf, "CODE#%d", code);
|
||||
return buf;
|
||||
|
@ -2552,7 +2566,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
|
|||
flags2_inited(0), sql_mode_inited(0), charset_inited(0),
|
||||
auto_increment_increment(1), auto_increment_offset(1),
|
||||
time_zone_len(0), lc_time_names_number(0), charset_database_number(0),
|
||||
table_map_for_update(0)
|
||||
table_map_for_update(0), master_data_written(0)
|
||||
{
|
||||
ulong data_len;
|
||||
uint32 tmp;
|
||||
|
@ -2608,6 +2622,18 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
|
|||
DBUG_PRINT("info", ("Query_log_event has status_vars_len: %u",
|
||||
(uint) status_vars_len));
|
||||
tmp-= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
server version < 5.0 / binlog_version < 4 master's event is
|
||||
relay-logged with storing the original size of the event in
|
||||
Q_MASTER_DATA_WRITTEN_CODE status variable.
|
||||
The size is to be restored at reading Q_MASTER_DATA_WRITTEN_CODE-marked
|
||||
event from the relay log.
|
||||
*/
|
||||
DBUG_ASSERT(description_event->binlog_version < 4);
|
||||
master_data_written= data_written;
|
||||
}
|
||||
/*
|
||||
We have parsed everything we know in the post header for QUERY_EVENT,
|
||||
|
@ -2699,6 +2725,11 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
|
|||
table_map_for_update= uint8korr(pos);
|
||||
pos+= 8;
|
||||
break;
|
||||
case Q_MASTER_DATA_WRITTEN_CODE:
|
||||
CHECK_SPACE(pos, end, 4);
|
||||
data_written= master_data_written= uint4korr(pos);
|
||||
pos+= 4;
|
||||
break;
|
||||
default:
|
||||
/* That's why you must write status vars in growing order of code */
|
||||
DBUG_PRINT("info",("Query_log_event has unknown status vars (first has\
|
||||
|
|
|
@ -264,7 +264,8 @@ struct sql_ex_info
|
|||
1 + 1 + 255 /* type, length, time_zone */ + \
|
||||
1 + 2 /* type, lc_time_names_number */ + \
|
||||
1 + 2 /* type, charset_database_number */ + \
|
||||
1 + 8 /* type, table_map_for_update */)
|
||||
1 + 8 /* type, table_map_for_update */ + \
|
||||
1 + 4 /* type, master_data_written */)
|
||||
#define MAX_LOG_EVENT_HEADER ( /* in order of Query_log_event::write */ \
|
||||
LOG_EVENT_HEADER_LEN + /* write_header */ \
|
||||
QUERY_HEADER_LEN + /* write_data */ \
|
||||
|
@ -331,6 +332,10 @@ struct sql_ex_info
|
|||
|
||||
#define Q_TABLE_MAP_FOR_UPDATE_CODE 9
|
||||
|
||||
#define Q_MASTER_DATA_WRITTEN_CODE 10
|
||||
|
||||
/* Intvar event post-header */
|
||||
|
||||
/* Intvar event data */
|
||||
#define I_TYPE_OFFSET 0
|
||||
#define I_VAL_OFFSET 1
|
||||
|
@ -1641,6 +1646,16 @@ public:
|
|||
statement, for other query statements, this will be zero.
|
||||
*/
|
||||
ulonglong table_map_for_update;
|
||||
/*
|
||||
Holds the original length of a Query_log_event that comes from a
|
||||
master of version < 5.0 (i.e., binlog_version < 4). When the IO
|
||||
thread writes the relay log, it augments the Query_log_event with a
|
||||
Q_MASTER_DATA_WRITTEN_CODE status_var that holds the original event
|
||||
length. This field is initialized to non-zero in the SQL thread when
|
||||
it reads this augmented event. SQL thread does not write
|
||||
Q_MASTER_DATA_WRITTEN_CODE to the slave's server binlog.
|
||||
*/
|
||||
uint32 master_data_written;
|
||||
|
||||
#ifndef MYSQL_CLIENT
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
|
|||
(Old), (Ver), (New)); \
|
||||
else \
|
||||
sql_print_warning("The syntax '%s' is deprecated and will be removed " \
|
||||
"in MySQL %s. Please use %s instead.", (Old), (Ver), (New)); \
|
||||
"in a future release. Please use %s instead.", (Old), (New)); \
|
||||
} while(0)
|
||||
|
||||
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *system_charset_info;
|
||||
|
|
|
@ -1978,10 +1978,10 @@ bool one_thread_per_connection_end(THD *thd, bool put_in_cache)
|
|||
|
||||
/* It's safe to broadcast outside a lock (COND... is not deleted here) */
|
||||
DBUG_PRINT("signal", ("Broadcasting COND_thread_count"));
|
||||
DBUG_LEAVE; // Must match DBUG_ENTER()
|
||||
my_thread_end();
|
||||
(void) pthread_cond_broadcast(&COND_thread_count);
|
||||
|
||||
DBUG_LEAVE; // Must match DBUG_ENTER()
|
||||
pthread_exit(0);
|
||||
return 0; // Avoid compiler warnings
|
||||
}
|
||||
|
@ -5744,6 +5744,9 @@ enum options_mysqld
|
|||
OPT_TABLE_LOCK_WAIT_TIMEOUT,
|
||||
OPT_PLUGIN_LOAD,
|
||||
OPT_PLUGIN_DIR,
|
||||
OPT_SYMBOLIC_LINKS,
|
||||
OPT_WARNINGS,
|
||||
OPT_RECORD_BUFFER_OLD,
|
||||
OPT_LOG_OUTPUT,
|
||||
OPT_PORT_OPEN_TIMEOUT,
|
||||
OPT_PROFILING,
|
||||
|
@ -6577,7 +6580,7 @@ log and this option does nothing anymore.",
|
|||
{"transaction-isolation", OPT_TX_ISOLATION,
|
||||
"Default transaction isolation level.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0,
|
||||
0, 0, 0, 0, 0},
|
||||
{"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use --symbolic-links instead.",
|
||||
{"use-symbolic-links", OPT_SYMBOLIC_LINKS, "Enable symbolic link support. Deprecated option; use --symbolic-links instead.",
|
||||
(uchar**) &my_use_symdir, (uchar**) &my_use_symdir, 0, GET_BOOL, NO_ARG,
|
||||
IF_PURIFY(0,1), 0, 0, 0, 0, 0},
|
||||
{"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG,
|
||||
|
@ -6587,7 +6590,7 @@ log and this option does nothing anymore.",
|
|||
0, 0},
|
||||
{"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"warnings", 'W', "Deprecated; use --log-warnings instead.",
|
||||
{"warnings", OPT_WARNINGS, "Deprecated; use --log-warnings instead.",
|
||||
(uchar**) &global_system_variables.log_warnings,
|
||||
(uchar**) &max_system_variables.log_warnings, 0, GET_ULONG, OPT_ARG,
|
||||
1, 0, ULONG_MAX, 0, 0, 0},
|
||||
|
@ -6840,7 +6843,8 @@ The minimum value for this variable is 4096.",
|
|||
(uchar**) &myisam_data_pointer_size, 0, GET_ULONG, REQUIRED_ARG,
|
||||
6, 2, 7, 0, 1, 0},
|
||||
{"myisam_max_extra_sort_file_size", OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE,
|
||||
"Deprecated option",
|
||||
"This is a deprecated option that does nothing anymore. It will be removed in MySQL "
|
||||
VER_CELOSIA,
|
||||
(uchar**) &global_system_variables.myisam_max_extra_sort_file_size,
|
||||
(uchar**) &max_system_variables.myisam_max_extra_sort_file_size,
|
||||
0, GET_ULL, REQUIRED_ARG, (ulonglong) MI_MAX_TEMP_LENGTH,
|
||||
|
@ -6997,8 +7001,8 @@ The minimum value for this variable is 4096.",
|
|||
(uchar**) &max_system_variables.read_rnd_buff_size, 0,
|
||||
GET_ULONG, REQUIRED_ARG, 256*1024L, IO_SIZE*2+MALLOC_OVERHEAD,
|
||||
INT_MAX32, MALLOC_OVERHEAD, IO_SIZE, 0},
|
||||
{"record_buffer", OPT_RECORD_BUFFER,
|
||||
"Alias for read_buffer_size",
|
||||
{"record_buffer", OPT_RECORD_BUFFER_OLD,
|
||||
"Alias for read_buffer_size. This variable is deprecated and will be removed in a future release.",
|
||||
(uchar**) &global_system_variables.read_buff_size,
|
||||
(uchar**) &max_system_variables.read_buff_size,0, GET_ULONG, REQUIRED_ARG,
|
||||
128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, INT_MAX32, MALLOC_OVERHEAD, IO_SIZE, 0},
|
||||
|
@ -8067,6 +8071,9 @@ mysqld_get_one_option(int optid,
|
|||
print_version();
|
||||
exit(0);
|
||||
#endif /*EMBEDDED_LIBRARY*/
|
||||
case OPT_WARNINGS:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--warnings", "--log-warnings");
|
||||
/* Note: fall-through to 'W' */
|
||||
case 'W':
|
||||
if (!argument)
|
||||
global_system_variables.log_warnings++;
|
||||
|
@ -8088,6 +8095,9 @@ mysqld_get_one_option(int optid,
|
|||
case (int) OPT_LOG_BIN_TRUST_FUNCTION_CREATORS_OLD:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--log-bin-trust-routine-creators", "--log-bin-trust-function-creators");
|
||||
break;
|
||||
case (int) OPT_ENABLE_LOCK:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--enable-locking", "--external-locking");
|
||||
break;
|
||||
case (int) OPT_BIG_TABLES:
|
||||
thd_startup_options|=OPTION_BIG_TABLES;
|
||||
break;
|
||||
|
@ -8098,6 +8108,7 @@ mysqld_get_one_option(int optid,
|
|||
opt_myisam_log=1;
|
||||
break;
|
||||
case (int) OPT_UPDATE_LOG:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--log-update", "--log-bin");
|
||||
opt_update_log=1;
|
||||
break;
|
||||
case (int) OPT_BIN_LOG:
|
||||
|
@ -8266,8 +8277,18 @@ mysqld_get_one_option(int optid,
|
|||
"give threads different priorities.");
|
||||
break;
|
||||
case (int) OPT_SKIP_LOCK:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--skip-locking", "--skip-external-locking");
|
||||
opt_external_locking=0;
|
||||
break;
|
||||
case (int) OPT_SQL_BIN_UPDATE_SAME:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--sql-bin-update-same", "the binary log");
|
||||
break;
|
||||
case (int) OPT_RECORD_BUFFER_OLD:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "record_buffer", "read_buffer_size");
|
||||
break;
|
||||
case (int) OPT_SYMBOLIC_LINKS:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--use-symbolic-links", "--symbolic-links");
|
||||
break;
|
||||
case (int) OPT_SKIP_HOST_CACHE:
|
||||
opt_specialflag|= SPECIAL_NO_HOST_CACHE;
|
||||
break;
|
||||
|
@ -8293,6 +8314,7 @@ mysqld_get_one_option(int optid,
|
|||
test_flags|=TEST_NO_STACKTRACE;
|
||||
break;
|
||||
case (int) OPT_SKIP_SYMLINKS:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA, "--skip-symlink", "--skip-symbolic-links");
|
||||
my_use_symdir=0;
|
||||
break;
|
||||
case (int) OPT_BIND_ADDRESS:
|
||||
|
@ -8368,6 +8390,9 @@ mysqld_get_one_option(int optid,
|
|||
server_id_supplied = 1;
|
||||
break;
|
||||
case OPT_DELAY_KEY_WRITE_ALL:
|
||||
WARN_DEPRECATED(NULL, VER_CELOSIA,
|
||||
"--delay-key-write-for-all-tables",
|
||||
"--delay-key-write=ALL");
|
||||
if (argument != disabled_my_option)
|
||||
argument= (char*) "ALL";
|
||||
/* Fall through */
|
||||
|
@ -8383,6 +8408,11 @@ mysqld_get_one_option(int optid,
|
|||
delay_key_write_options= (uint) type-1;
|
||||
}
|
||||
break;
|
||||
case OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE:
|
||||
sql_print_warning("--myisam_max_extra_sort_file_size is deprecated and "
|
||||
"does nothing in this version. It will be removed in "
|
||||
"a future release.");
|
||||
break;
|
||||
case OPT_CHARSETS_DIR:
|
||||
strmake(mysql_charsets_dir, argument, sizeof(mysql_charsets_dir)-1);
|
||||
charsets_dir = mysql_charsets_dir;
|
||||
|
|
|
@ -114,8 +114,8 @@ int injector::transaction::write_row (server_id_type sid, table tbl,
|
|||
{
|
||||
DBUG_ENTER("injector::transaction::write_row(...)");
|
||||
|
||||
int error= 0;
|
||||
if (error= check_state(ROW_STATE))
|
||||
int error= check_state(ROW_STATE);
|
||||
if (error)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
server_id_type save_id= m_thd->server_id;
|
||||
|
@ -133,8 +133,8 @@ int injector::transaction::delete_row(server_id_type sid, table tbl,
|
|||
{
|
||||
DBUG_ENTER("injector::transaction::delete_row(...)");
|
||||
|
||||
int error= 0;
|
||||
if (error= check_state(ROW_STATE))
|
||||
int error= check_state(ROW_STATE);
|
||||
if (error)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
server_id_type save_id= m_thd->server_id;
|
||||
|
@ -152,8 +152,8 @@ int injector::transaction::update_row(server_id_type sid, table tbl,
|
|||
{
|
||||
DBUG_ENTER("injector::transaction::update_row(...)");
|
||||
|
||||
int error= 0;
|
||||
if (error= check_state(ROW_STATE))
|
||||
int error= check_state(ROW_STATE);
|
||||
if (error)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
server_id_type save_id= m_thd->server_id;
|
||||
|
|
|
@ -231,6 +231,22 @@ unpack_row(Relay_log_info const *rli,
|
|||
{
|
||||
DBUG_PRINT("debug", ("Was NULL; null mask: 0x%x; null bits: 0x%x",
|
||||
null_mask, null_bits));
|
||||
/**
|
||||
Calling reset just in case one is unpacking on top a
|
||||
record with data.
|
||||
|
||||
This could probably go into set_null() but doing so,
|
||||
(i) triggers assertion in other parts of the code at
|
||||
the moment; (ii) it would make us reset the field,
|
||||
always when setting null, which right now doesn't seem
|
||||
needed anywhere else except here.
|
||||
|
||||
TODO: maybe in the future we should consider moving
|
||||
the reset to make it part of set_null. But then
|
||||
the assertions triggered need to be
|
||||
addressed/revisited.
|
||||
*/
|
||||
f->reset();
|
||||
f->set_null();
|
||||
}
|
||||
else
|
||||
|
@ -366,7 +382,6 @@ int prepare_record(TABLE *const table,
|
|||
*/
|
||||
for (Field **field_ptr= table->field+skip; *field_ptr; ++field_ptr)
|
||||
{
|
||||
uint32 const mask= NOT_NULL_FLAG | NO_DEFAULT_VALUE_FLAG;
|
||||
Field *const f= *field_ptr;
|
||||
if ((f->flags & NO_DEFAULT_VALUE_FLAG) &&
|
||||
(f->real_type() != MYSQL_TYPE_ENUM))
|
||||
|
|
124
sql/sql_acl.cc
124
sql/sql_acl.cc
|
@ -194,6 +194,7 @@ static bool compare_hostname(const acl_host_and_ip *host,const char *hostname,
|
|||
const char *ip);
|
||||
static my_bool acl_load(THD *thd, TABLE_LIST *tables);
|
||||
static my_bool grant_load(THD *thd, TABLE_LIST *tables);
|
||||
static bool acl_write_bin_log(THD *thd, List <LEX_USER> &list, bool clear_error);
|
||||
|
||||
/*
|
||||
Convert scrambled password to binary form, according to scramble type,
|
||||
|
@ -3228,7 +3229,8 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list,
|
|||
|
||||
if (!result) /* success */
|
||||
{
|
||||
result= write_bin_log(thd, TRUE, thd->query(), thd->query_length());
|
||||
if (acl_write_bin_log(thd, user_list, TRUE))
|
||||
result= -1;
|
||||
}
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
|
@ -3404,8 +3406,7 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc,
|
|||
|
||||
if (write_to_binlog)
|
||||
{
|
||||
if (write_bin_log(thd, FALSE, thd->query(), thd->query_length()))
|
||||
result= TRUE;
|
||||
result|= acl_write_bin_log(thd, user_list, FALSE);
|
||||
}
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
|
@ -3534,7 +3535,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
|
|||
|
||||
if (!result)
|
||||
{
|
||||
result= write_bin_log(thd, TRUE, thd->query(), thd->query_length());
|
||||
result= acl_write_bin_log(thd, list, TRUE);
|
||||
}
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
|
@ -5776,9 +5777,9 @@ static int handle_grant_data(TABLE_LIST *tables, bool drop,
|
|||
}
|
||||
|
||||
|
||||
static void append_user(String *str, LEX_USER *user)
|
||||
static void append_user(String *str, LEX_USER *user, bool comma= TRUE)
|
||||
{
|
||||
if (str->length())
|
||||
if (comma && str->length())
|
||||
str->append(',');
|
||||
str->append('\'');
|
||||
str->append(user->user.str);
|
||||
|
@ -5787,6 +5788,65 @@ static void append_user(String *str, LEX_USER *user)
|
|||
str->append('\'');
|
||||
}
|
||||
|
||||
/*
|
||||
The operations(DROP, RENAME, REVOKE, GRANT) will cause inconsistency between
|
||||
master and slave, when CURRENT_USER() is used. To solve this problem, we
|
||||
construct a new binlog statement in which CURRENT_USER() is replaced by
|
||||
the real user name and host name.
|
||||
*/
|
||||
static bool acl_write_bin_log(THD *thd, List <LEX_USER> &list, bool clear_error)
|
||||
{
|
||||
String log_query;
|
||||
LEX *lex= thd->lex;
|
||||
List_iterator <LEX_USER> user_list(list);
|
||||
LEX_USER *user, *tmp_user;
|
||||
|
||||
if (!mysql_bin_log.is_open())
|
||||
return FALSE;
|
||||
|
||||
if (log_query.append(lex->stmt_begin, lex->stmt_user_begin - lex->stmt_begin))
|
||||
return TRUE;
|
||||
while ((tmp_user= user_list++))
|
||||
{
|
||||
if (!(user= get_current_user(thd, tmp_user)))
|
||||
continue;
|
||||
|
||||
/*
|
||||
No User, but a password?
|
||||
They did GRANT ... TO CURRENT_USER() IDENTIFIED BY ... !
|
||||
Get the current user, and shallow-copy the new password to them!
|
||||
*/
|
||||
if (!tmp_user->user.str && tmp_user->password.str)
|
||||
user->password= tmp_user->password;
|
||||
|
||||
if (log_query.append(" ", 1))
|
||||
return TRUE;
|
||||
append_user(&log_query, user, FALSE);
|
||||
/* Only 'GRANT' have password */
|
||||
if (user->password.str)
|
||||
{
|
||||
if (log_query.append(STRING_WITH_LEN(" IDENTIFIED BY ")) ||
|
||||
log_query.append(STRING_WITH_LEN("PASSWORD ")) ||
|
||||
log_query.append("'", 1) ||
|
||||
log_query.append(user->password.str,
|
||||
user->password.length) ||
|
||||
log_query.append("'", 1))
|
||||
return TRUE;
|
||||
}
|
||||
if (log_query.append(",", 1))
|
||||
return TRUE;
|
||||
}
|
||||
/* It is binlogged only when at least one user is in the query */
|
||||
if (log_query.c_ptr()[log_query.length()-1] == ',')
|
||||
{
|
||||
log_query.length(log_query.length()-1);
|
||||
if (log_query.append(lex->stmt_user_end, lex->stmt_end - lex->stmt_user_end))
|
||||
return TRUE;
|
||||
return write_bin_log(thd, clear_error, log_query.c_ptr_safe(),
|
||||
log_query.length()) != 0;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
Create a list of users.
|
||||
|
@ -5893,6 +5953,7 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
|
|||
{
|
||||
int result;
|
||||
String wrong_users;
|
||||
String log_query;
|
||||
LEX_USER *user_name, *tmp_user_name;
|
||||
List_iterator <LEX_USER> user_list(list);
|
||||
TABLE_LIST tables[GRANT_TABLES];
|
||||
|
@ -5922,6 +5983,7 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
|
|||
rw_wrlock(&LOCK_grant);
|
||||
VOID(pthread_mutex_lock(&acl_cache->lock));
|
||||
|
||||
log_query.append(STRING_WITH_LEN("DROP USER"));
|
||||
while ((tmp_user_name= user_list++))
|
||||
{
|
||||
if (!(user_name= get_current_user(thd, tmp_user_name)))
|
||||
|
@ -5929,6 +5991,17 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
|
|||
result= TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
The operation will cause inconsistency between master and slave, when
|
||||
CURRENT_USER() is used. To solve this problem, we construct a new
|
||||
binlog statement in which CURRENT_USER() is replaced by the real user
|
||||
name and host name.
|
||||
*/
|
||||
log_query.append(STRING_WITH_LEN(" "));
|
||||
append_user(&log_query, user_name, FALSE);
|
||||
log_query.append(STRING_WITH_LEN(","));
|
||||
|
||||
if (handle_grant_data(tables, 1, user_name, NULL) <= 0)
|
||||
{
|
||||
append_user(&wrong_users, user_name);
|
||||
|
@ -5947,7 +6020,13 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
|
|||
my_error(ER_CANNOT_USER, MYF(0), "DROP USER", wrong_users.c_ptr_safe());
|
||||
|
||||
if (some_users_deleted)
|
||||
result |= write_bin_log(thd, FALSE, thd->query(), thd->query_length());
|
||||
{
|
||||
if (log_query.c_ptr()[log_query.length()-1] == ',')
|
||||
{
|
||||
log_query.length(log_query.length()-1);
|
||||
result|= write_bin_log(thd, FALSE, log_query.c_ptr_safe(), log_query.length());
|
||||
}
|
||||
}
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
close_thread_tables(thd);
|
||||
|
@ -5975,6 +6054,7 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
|
|||
{
|
||||
int result;
|
||||
String wrong_users;
|
||||
String log_query;
|
||||
LEX_USER *user_from, *tmp_user_from;
|
||||
LEX_USER *user_to, *tmp_user_to;
|
||||
List_iterator <LEX_USER> user_list(list);
|
||||
|
@ -6002,6 +6082,7 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
|
|||
rw_wrlock(&LOCK_grant);
|
||||
VOID(pthread_mutex_lock(&acl_cache->lock));
|
||||
|
||||
log_query.append(STRING_WITH_LEN("RENAME USER"));
|
||||
while ((tmp_user_from= user_list++))
|
||||
{
|
||||
if (!(user_from= get_current_user(thd, tmp_user_from)))
|
||||
|
@ -6017,6 +6098,18 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
|
|||
}
|
||||
DBUG_ASSERT(user_to != 0); /* Syntax enforces pairs of users. */
|
||||
|
||||
/*
|
||||
The operation will cause inconsistency between master and slave, when
|
||||
CURRENT_USER() is used. To solve this problem, we construct a new
|
||||
binlog statement in which CURRENT_USER() is replaced by the real user
|
||||
name and host name.
|
||||
*/
|
||||
log_query.append(STRING_WITH_LEN(" "));
|
||||
append_user(&log_query, user_from, FALSE);
|
||||
log_query.append(STRING_WITH_LEN(" TO "));
|
||||
append_user(&log_query, user_to, FALSE);
|
||||
log_query.append(STRING_WITH_LEN(","));
|
||||
|
||||
/*
|
||||
Search all in-memory structures and grant tables
|
||||
for a mention of the new user name.
|
||||
|
@ -6038,9 +6131,15 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
|
|||
|
||||
if (result)
|
||||
my_error(ER_CANNOT_USER, MYF(0), "RENAME USER", wrong_users.c_ptr_safe());
|
||||
|
||||
if (some_users_renamed && mysql_bin_log.is_open())
|
||||
result |= write_bin_log(thd, FALSE, thd->query(), thd->query_length());
|
||||
|
||||
if (some_users_renamed)
|
||||
{
|
||||
if (log_query.c_ptr()[log_query.length()-1] == ',')
|
||||
{
|
||||
log_query.length(log_query.length()-1);
|
||||
result|= write_bin_log(thd, FALSE, log_query.c_ptr_safe(), log_query.length());
|
||||
}
|
||||
}
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
close_thread_tables(thd);
|
||||
|
@ -6230,8 +6329,9 @@ bool mysql_revoke_all(THD *thd, List <LEX_USER> &list)
|
|||
|
||||
VOID(pthread_mutex_unlock(&acl_cache->lock));
|
||||
|
||||
int binlog_error=
|
||||
write_bin_log(thd, FALSE, thd->query(), thd->query_length());
|
||||
int binlog_error= 0;
|
||||
if (acl_write_bin_log(thd, list, FALSE))
|
||||
binlog_error= 1;
|
||||
|
||||
rw_unlock(&LOCK_grant);
|
||||
close_thread_tables(thd);
|
||||
|
|
|
@ -829,7 +829,7 @@ bool mysql_alter_db(THD *thd, const char *db, HA_CREATE_INFO *create_info)
|
|||
qinfo.db_len = strlen(db);
|
||||
|
||||
/* These DDL methods and logging protected with LOCK_mysql_create_db */
|
||||
if (error= mysql_bin_log.write(&qinfo))
|
||||
if ((error= mysql_bin_log.write(&qinfo)))
|
||||
goto exit;
|
||||
}
|
||||
my_ok(thd, result);
|
||||
|
|
|
@ -1799,6 +1799,8 @@ struct LEX: public Query_tables_list
|
|||
- CREATE TRIGGER (points to "TRIGGER");
|
||||
- CREATE PROCEDURE (points to "PROCEDURE");
|
||||
- CREATE FUNCTION (points to "FUNCTION" or "AGGREGATE");
|
||||
- CREATE VIEW(points to "VIEW");
|
||||
- CREATE EVENT(points to "EVENT");
|
||||
|
||||
This pointer is required to add possibly omitted DEFINER-clause to the
|
||||
DDL-statement before dumping it to the binlog.
|
||||
|
@ -1807,6 +1809,29 @@ struct LEX: public Query_tables_list
|
|||
|
||||
const char *stmt_definition_end;
|
||||
|
||||
/*
|
||||
stmt_begin is intended to point to the begin of every statement.
|
||||
It is now used in the following statements:
|
||||
- GRANT ALL PRIVELEGES ON *.* (points to "GRANT");
|
||||
- REVOKE ALL PRIVELEGES ON *.* (points to "REVOKE");
|
||||
*/
|
||||
const char *stmt_begin;
|
||||
const char *stmt_end;
|
||||
|
||||
/*
|
||||
stmt_user_begin is intended to point to the begin of the user list in
|
||||
the following statements:
|
||||
- GRANT ALL PRIVELEGES ON *.* TO 'username'@'hostname'
|
||||
(points to "'username'");
|
||||
- REVOKE ALL PRIVELEGES ON *.* FROM 'username'@'hostname'
|
||||
(points to "'username'");
|
||||
|
||||
these pointers are required to replace the CURRENT_USER()
|
||||
function by the real user before dumping it to the binlog.
|
||||
*/
|
||||
const char *stmt_user_begin;
|
||||
const char *stmt_user_end;
|
||||
|
||||
/**
|
||||
During name resolution search only in the table list given by
|
||||
Name_resolution_context::first_name_resolution_table and
|
||||
|
|
|
@ -3490,9 +3490,9 @@ end_with_restore_list:
|
|||
select_lex->where,
|
||||
0, (ORDER *)NULL, (ORDER *)NULL, (Item *)NULL,
|
||||
(ORDER *)NULL,
|
||||
select_lex->options | thd->options |
|
||||
(select_lex->options | thd->options |
|
||||
SELECT_NO_JOIN_CACHE | SELECT_NO_UNLOCK |
|
||||
OPTION_SETUP_TABLES_DONE,
|
||||
OPTION_SETUP_TABLES_DONE) & ~OPTION_BUFFER_RESULT,
|
||||
del_result, unit, select_lex);
|
||||
res|= thd->is_error();
|
||||
MYSQL_MULTI_DELETE_DONE(res, del_result->num_deleted());
|
||||
|
@ -4127,7 +4127,7 @@ end_with_restore_list:
|
|||
*/
|
||||
if (!lex->no_write_to_binlog && write_to_binlog)
|
||||
{
|
||||
if (res= write_bin_log(thd, FALSE, thd->query(), thd->query_length()))
|
||||
if ((res= write_bin_log(thd, FALSE, thd->query(), thd->query_length())))
|
||||
break;
|
||||
}
|
||||
my_ok(thd);
|
||||
|
|
|
@ -543,13 +543,26 @@ JOIN::prepare(Item ***rref_pointer_array,
|
|||
|
||||
if (order)
|
||||
{
|
||||
bool real_order= FALSE;
|
||||
ORDER *ord;
|
||||
for (ord= order; ord; ord= ord->next)
|
||||
{
|
||||
Item *item= *ord->item;
|
||||
/*
|
||||
Disregard sort order if there's only "{VAR}CHAR(0) NOT NULL" fields
|
||||
there. Such fields don't contain any data to sort.
|
||||
*/
|
||||
if (!real_order &&
|
||||
(item->type() != Item::Item::FIELD_ITEM ||
|
||||
((Item_field *) item)->field->maybe_null() ||
|
||||
((Item_field *) item)->field->sort_length()))
|
||||
real_order= TRUE;
|
||||
|
||||
if (item->with_sum_func && item->type() != Item::SUM_FUNC_ITEM)
|
||||
item->split_sum_func(thd, ref_pointer_array, all_fields);
|
||||
}
|
||||
if (!real_order)
|
||||
order= NULL;
|
||||
}
|
||||
|
||||
if (having && having->with_sum_func)
|
||||
|
|
|
@ -6608,7 +6608,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||
thd->clear_error();
|
||||
Query_log_event qinfo(thd, thd->query(), thd->query_length(),
|
||||
0, FALSE, 0);
|
||||
if (error= mysql_bin_log.write(&qinfo))
|
||||
if ((error= mysql_bin_log.write(&qinfo)))
|
||||
goto view_err_unlock;
|
||||
}
|
||||
my_ok(thd);
|
||||
|
|
|
@ -168,6 +168,21 @@ TEST_join(JOIN *join)
|
|||
uint i,ref;
|
||||
DBUG_ENTER("TEST_join");
|
||||
|
||||
/*
|
||||
Assemble results of all the calls to full_name() first,
|
||||
in order not to garble the tabular output below.
|
||||
*/
|
||||
String ref_key_parts[MAX_TABLES];
|
||||
for (i= 0; i < join->tables; i++)
|
||||
{
|
||||
JOIN_TAB *tab= join->join_tab + i;
|
||||
for (ref= 0; ref < tab->ref.key_parts; ref++)
|
||||
{
|
||||
ref_key_parts[i].append(tab->ref.items[ref]->full_name());
|
||||
ref_key_parts[i].append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_LOCK_FILE;
|
||||
VOID(fputs("\nInfo about JOIN\n",DBUG_FILE));
|
||||
for (i=0 ; i < join->tables ; i++)
|
||||
|
@ -199,13 +214,8 @@ TEST_join(JOIN *join)
|
|||
}
|
||||
if (tab->ref.key_parts)
|
||||
{
|
||||
VOID(fputs(" refs: ",DBUG_FILE));
|
||||
for (ref=0 ; ref < tab->ref.key_parts ; ref++)
|
||||
{
|
||||
Item *item=tab->ref.items[ref];
|
||||
fprintf(DBUG_FILE,"%s ", item->full_name());
|
||||
}
|
||||
VOID(fputc('\n',DBUG_FILE));
|
||||
fprintf(DBUG_FILE,
|
||||
" refs: %s\n", ref_key_parts[i].ptr());
|
||||
}
|
||||
}
|
||||
DBUG_UNLOCK_FILE;
|
||||
|
|
|
@ -1590,7 +1590,11 @@ opt_end_of_input:
|
|||
;
|
||||
|
||||
verb_clause:
|
||||
statement
|
||||
remember_name statement remember_end
|
||||
{
|
||||
Lex->stmt_begin= $1;
|
||||
Lex->stmt_end= $3;
|
||||
}
|
||||
| begin
|
||||
;
|
||||
|
||||
|
@ -6061,7 +6065,7 @@ alter:
|
|||
}
|
||||
view_tail
|
||||
{}
|
||||
| ALTER definer_opt EVENT_SYM sp_name
|
||||
| ALTER definer_opt remember_name EVENT_SYM sp_name
|
||||
{
|
||||
/*
|
||||
It is safe to use Lex->spname because
|
||||
|
@ -6073,7 +6077,8 @@ alter:
|
|||
|
||||
if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD)))
|
||||
MYSQL_YYABORT;
|
||||
Lex->event_parse_data->identifier= $4;
|
||||
Lex->event_parse_data->identifier= $5;
|
||||
Lex->stmt_definition_begin= $3;
|
||||
|
||||
Lex->sql_command= SQLCOM_ALTER_EVENT;
|
||||
}
|
||||
|
@ -6083,7 +6088,7 @@ alter:
|
|||
opt_ev_comment
|
||||
opt_ev_sql_stmt
|
||||
{
|
||||
if (!($6 || $7 || $8 || $9 || $10))
|
||||
if (!($7 || $8 || $9 || $10 || $11))
|
||||
{
|
||||
my_parse_error(ER(ER_SYNTAX_ERROR));
|
||||
MYSQL_YYABORT;
|
||||
|
@ -6144,7 +6149,16 @@ opt_ev_rename_to:
|
|||
;
|
||||
|
||||
opt_ev_sql_stmt:
|
||||
/* empty*/ { $$= 0;}
|
||||
/* empty*/
|
||||
{
|
||||
$$= 0;
|
||||
/*
|
||||
Lex->sp_head is not initialized when event body is empty.
|
||||
So we can not use Lex->sp_head->set_stmt_end() to set
|
||||
stmt_definition_end.
|
||||
*/
|
||||
Lex->stmt_definition_end= (char*) YYLIP->get_cpp_tok_end();
|
||||
}
|
||||
| DO_SYM ev_sql_stmt { $$= 1; }
|
||||
;
|
||||
|
||||
|
@ -11894,6 +11908,7 @@ user:
|
|||
$$->user = $1;
|
||||
$$->host.str= (char *) "%";
|
||||
$$->host.length= 1;
|
||||
Lex->stmt_user_end= YYLIP->get_cpp_ptr();
|
||||
|
||||
if (check_string_char_length(&$$->user, ER(ER_USERNAME),
|
||||
USERNAME_CHAR_LENGTH,
|
||||
|
@ -11906,6 +11921,7 @@ user:
|
|||
if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
|
||||
MYSQL_YYABORT;
|
||||
$$->user = $1; $$->host=$3;
|
||||
Lex->stmt_user_end= YYLIP->get_cpp_ptr();
|
||||
|
||||
if (check_string_char_length(&$$->user, ER(ER_USERNAME),
|
||||
USERNAME_CHAR_LENGTH,
|
||||
|
@ -11915,6 +11931,7 @@ user:
|
|||
}
|
||||
| CURRENT_USER optional_braces
|
||||
{
|
||||
Lex->stmt_user_end= YYLIP->get_cpp_ptr();
|
||||
if (!($$=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
|
||||
MYSQL_YYABORT;
|
||||
/*
|
||||
|
@ -13119,9 +13136,10 @@ user_list:
|
|||
;
|
||||
|
||||
grant_list:
|
||||
{ Lex->stmt_user_begin= YYLIP->get_cpp_ptr(); }
|
||||
grant_user
|
||||
{
|
||||
if (Lex->users_list.push_back($1))
|
||||
if (Lex->users_list.push_back($2))
|
||||
MYSQL_YYABORT;
|
||||
}
|
||||
| grant_list ',' grant_user
|
||||
|
@ -13134,6 +13152,7 @@ grant_list:
|
|||
grant_user:
|
||||
user IDENTIFIED_SYM BY TEXT_STRING
|
||||
{
|
||||
Lex->stmt_user_end= YYLIP->get_cpp_ptr();
|
||||
$$=$1; $1->password=$4;
|
||||
if ($4.length)
|
||||
{
|
||||
|
@ -13160,7 +13179,10 @@ grant_user:
|
|||
}
|
||||
}
|
||||
| user IDENTIFIED_SYM BY PASSWORD TEXT_STRING
|
||||
{ $$= $1; $1->password= $5; }
|
||||
{
|
||||
Lex->stmt_user_end= YYLIP->get_cpp_ptr();
|
||||
$$= $1; $1->password= $5;
|
||||
}
|
||||
| user
|
||||
{ $$= $1; $1->password= null_lex_str; }
|
||||
;
|
||||
|
|
Loading…
Reference in a new issue