Commit 5cafbb68 authored by guilhem@mysql.com's avatar guilhem@mysql.com

Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/home/mysql_src/mysql-4.1-clean
parents acd5a8ef 980d1b65
...@@ -2200,8 +2200,15 @@ static int start_transaction(MYSQL *mysql_con, my_bool consistent_read_now) ...@@ -2200,8 +2200,15 @@ static int start_transaction(MYSQL *mysql_con, my_bool consistent_read_now)
We use BEGIN for old servers. --single-transaction --master-data will fail We use BEGIN for old servers. --single-transaction --master-data will fail
on old servers, but that's ok as it was already silently broken (it didn't on old servers, but that's ok as it was already silently broken (it didn't
do a consistent read, so better tell people frankly, with the error). do a consistent read, so better tell people frankly, with the error).
We want the first consistent read to be used for all tables to dump so we
need the REPEATABLE READ level (not anything lower, for example READ
COMMITTED would give one new consistent read per dumped table).
*/ */
return (mysql_query_with_error_report(mysql_con, 0, return (mysql_query_with_error_report(mysql_con, 0,
"SET SESSION TRANSACTION ISOLATION "
"LEVEL REPEATABLE READ") ||
mysql_query_with_error_report(mysql_con, 0,
consistent_read_now ? consistent_read_now ?
"START TRANSACTION " "START TRANSACTION "
"WITH CONSISTENT SNAPSHOT" : "WITH CONSISTENT SNAPSHOT" :
......
...@@ -520,7 +520,7 @@ Log_name Pos Event_type Server_id Orig_log_pos Info ...@@ -520,7 +520,7 @@ Log_name Pos Event_type Server_id Orig_log_pos Info
master-bin.000001 79 User var 1 79 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci master-bin.000001 79 User var 1 79 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
master-bin.000001 119 Query 1 119 use `test`; insert into t2 values (@v) master-bin.000001 119 Query 1 119 use `test`; insert into t2 values (@v)
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
SET @`v`:=_ucs2 0x006100620063 COLLATE ucs2_general_ci; SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
use test; use test;
SET TIMESTAMP=10000; SET TIMESTAMP=10000;
insert into t2 values (@v); insert into t2 values (@v);
......
...@@ -168,21 +168,24 @@ SET TIMESTAMP=10000; ...@@ -168,21 +168,24 @@ SET TIMESTAMP=10000;
SET @`a b`='hello'; SET @`a b`='hello';
INSERT INTO t1 VALUES(@`a b`); INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa"; set @var1= "';aaa";
insert into t1 values (@var1); SET @var2=char(ascii('a'));
insert into t1 values (@var1),(@var2);
show binlog events from 79; show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info Log_name Pos Event_type Server_id Orig_log_pos Info
master-bin.000001 79 User var 1 79 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci master-bin.000001 79 User var 1 79 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`) master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`)
master-bin.000001 184 User var 1 184 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci master-bin.000001 184 User var 1 184 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
master-bin.000001 226 Query 1 226 use `test`; insert into t1 values (@var1) master-bin.000001 226 User var 1 226 @`var2`=_binary 0x61 COLLATE binary
master-bin.000001 264 Query 1 264 use `test`; insert into t1 values (@var1),(@var2)
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
SET @`a b`:=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci; SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
use test; use test;
SET TIMESTAMP=10000; SET TIMESTAMP=10000;
INSERT INTO t1 VALUES(@`a b`); INSERT INTO t1 VALUES(@`a b`);
SET @`var1`:=_latin1 0x273B616161 COLLATE latin1_swedish_ci; SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
SET @`var2`:=_binary 0x61 COLLATE `binary`;
SET TIMESTAMP=10000; SET TIMESTAMP=10000;
insert into t1 values (@var1); insert into t1 values (@var1),(@var2);
drop table t1; drop table t1;
set @var= NULL ; set @var= NULL ;
select FIELD( @var,'1it','Hit') as my_column; select FIELD( @var,'1it','Hit') as my_column;
......
...@@ -107,7 +107,8 @@ SET TIMESTAMP=10000; ...@@ -107,7 +107,8 @@ SET TIMESTAMP=10000;
SET @`a b`='hello'; SET @`a b`='hello';
INSERT INTO t1 VALUES(@`a b`); INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa"; set @var1= "';aaa";
insert into t1 values (@var1); SET @var2=char(ascii('a'));
insert into t1 values (@var1),(@var2);
show binlog events from 79; show binlog events from 79;
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we # more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
# absolutely need variables names to be quoted and strings to be # absolutely need variables names to be quoted and strings to be
......
...@@ -2462,7 +2462,7 @@ void User_var_log_event::print(FILE* file, bool short_form, char* last_db) ...@@ -2462,7 +2462,7 @@ void User_var_log_event::print(FILE* file, bool short_form, char* last_db)
*/ */
fprintf(file, ":=???;\n"); fprintf(file, ":=???;\n");
else else
fprintf(file, ":=_%s %s COLLATE %s;\n", cs->csname, hex_str, cs->name); fprintf(file, ":=_%s %s COLLATE `%s`;\n", cs->csname, hex_str, cs->name);
my_afree(hex_str); my_afree(hex_str);
} }
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment