merge
This commit is contained in:
commit
b7a63ac9e2
@ -950,7 +950,7 @@ extern my_bool resolve_charset(const char *cs_name,
|
|||||||
extern my_bool resolve_collation(const char *cl_name,
|
extern my_bool resolve_collation(const char *cl_name,
|
||||||
CHARSET_INFO *default_cl,
|
CHARSET_INFO *default_cl,
|
||||||
CHARSET_INFO **cl);
|
CHARSET_INFO **cl);
|
||||||
|
extern void free_charsets(void);
|
||||||
extern char *get_charsets_dir(char *buf);
|
extern char *get_charsets_dir(char *buf);
|
||||||
extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
|
extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
|
||||||
extern my_bool init_compiled_charsets(myf flags);
|
extern my_bool init_compiled_charsets(myf flags);
|
||||||
|
@ -211,6 +211,7 @@ void STDCALL mysql_server_end()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
free_charsets();
|
||||||
mysql_thread_end();
|
mysql_thread_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ eval $test_insert;
|
|||||||
|
|
||||||
connection slave;
|
connection slave;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
wait_for_slave_to_stop;
|
--source include/wait_for_slave_sql_to_stop.inc
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||||
--query_vertical SHOW SLAVE STATUS
|
--query_vertical SHOW SLAVE STATUS
|
||||||
|
@ -210,4 +210,19 @@ Error 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP colum
|
|||||||
Note 1003 select 1 AS `1` from `test`.`t1` where <not>(<exists>(...))
|
Note 1003 select 1 AS `1` from `test`.`t1` where <not>(<exists>(...))
|
||||||
SET SESSION sql_mode=@old_sql_mode;
|
SET SESSION sql_mode=@old_sql_mode;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug#47669: Query showed by EXPLAIN EXTENDED gives different result from original query
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (c int);
|
||||||
|
INSERT INTO t1 VALUES (NULL);
|
||||||
|
CREATE TABLE t2 (d int);
|
||||||
|
INSERT INTO t2 VALUES (NULL), (0);
|
||||||
|
EXPLAIN EXTENDED SELECT (SELECT 1 FROM t2 WHERE d = c) FROM t1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||||
|
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
|
Warnings:
|
||||||
|
Note 1276 Field or reference 'test.t1.c' of SELECT #2 was resolved in SELECT #1
|
||||||
|
Note 1003 select (select 1 AS `1` from `test`.`t2` where (`test`.`t2`.`d` = NULL)) AS `(SELECT 1 FROM t2 WHERE d = c)` from `test`.`t1`
|
||||||
|
DROP TABLE t1, t2;
|
||||||
End of 5.1 tests.
|
End of 5.1 tests.
|
||||||
|
@ -1307,12 +1307,12 @@ explain extended select encode(f1,'zxcv') as 'enc' from t1;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select encode('','zxcv') AS `enc` from `test`.`t1`
|
Note 1003 select encode(NULL,'zxcv') AS `enc` from `test`.`t1`
|
||||||
explain extended select decode(f1,'zxcv') as 'enc' from t1;
|
explain extended select decode(f1,'zxcv') as 'enc' from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select decode('','zxcv') AS `enc` from `test`.`t1`
|
Note 1003 select decode(NULL,'zxcv') AS `enc` from `test`.`t1`
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a bigint not null)engine=myisam;
|
create table t1 (a bigint not null)engine=myisam;
|
||||||
insert into t1 set a = 1024*1024*1024*4;
|
insert into t1 set a = 1024*1024*1024*4;
|
||||||
|
@ -12,7 +12,7 @@ explain extended select count(a) as b from t1 where a=0 having b >=0;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select count('0') AS `b` from `test`.`t1` where 0 having (`b` >= 0)
|
Note 1003 select count(NULL) AS `b` from `test`.`t1` where 0 having (`b` >= 0)
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
raw_id int(10) NOT NULL default '0',
|
raw_id int(10) NOT NULL default '0',
|
||||||
|
47
mysql-test/r/log_tables_upgrade.result
Normal file
47
mysql-test/r/log_tables_upgrade.result
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#
|
||||||
|
# Bug#49823: mysql_upgrade fatal error due to general_log / slow_low CSV NULL
|
||||||
|
#
|
||||||
|
USE test;
|
||||||
|
SET @saved_general_log = @@GLOBAL.general_log;
|
||||||
|
SET GLOBAL general_log = OFF;
|
||||||
|
USE mysql;
|
||||||
|
FLUSH TABLES;
|
||||||
|
REPAIR TABLE test.bug49823;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.bug49823 repair status OK
|
||||||
|
RENAME TABLE general_log TO renamed_general_log;
|
||||||
|
RENAME TABLE test.bug49823 TO general_log;
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func OK
|
||||||
|
mysql.general_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.help_category OK
|
||||||
|
mysql.help_keyword OK
|
||||||
|
mysql.help_relation OK
|
||||||
|
mysql.help_topic OK
|
||||||
|
mysql.host OK
|
||||||
|
mysql.ndb_binlog_index OK
|
||||||
|
mysql.plugin OK
|
||||||
|
mysql.proc OK
|
||||||
|
mysql.procs_priv OK
|
||||||
|
mysql.renamed_general_log OK
|
||||||
|
mysql.servers OK
|
||||||
|
mysql.slow_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.tables_priv OK
|
||||||
|
mysql.time_zone OK
|
||||||
|
mysql.time_zone_leap_second OK
|
||||||
|
mysql.time_zone_name OK
|
||||||
|
mysql.time_zone_transition OK
|
||||||
|
mysql.time_zone_transition_type OK
|
||||||
|
mysql.user OK
|
||||||
|
DROP TABLE general_log;
|
||||||
|
RENAME TABLE renamed_general_log TO general_log;
|
||||||
|
SET GLOBAL general_log = @saved_general_log;
|
||||||
|
USE test;
|
@ -2339,4 +2339,21 @@ CHECK TABLE t1;
|
|||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 check status OK
|
test.t1 check status OK
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug#51304: checksum table gives different results
|
||||||
|
# for same data when using bit fields
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT, b BIT(1));
|
||||||
|
INSERT INTO t1 VALUES(1, 0), (2, 1);
|
||||||
|
CREATE TABLE t2 SELECT * FROM t1;
|
||||||
|
CHECKSUM TABLE t1 EXTENDED;
|
||||||
|
Table Checksum
|
||||||
|
test.t1 3775188275
|
||||||
|
CHECKSUM TABLE t2 EXTENDED;
|
||||||
|
Table Checksum
|
||||||
|
test.t2 3775188275
|
||||||
|
CHECKSUM TABLE t3 EXTENDED;
|
||||||
|
Table Checksum
|
||||||
|
test.t3 3775188275
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -4050,10 +4050,10 @@ join_0.c1;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
|
Note 1003 select NULL AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by NULL,NULL,NULL,NULL,NULL
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
|
Note 1003 select NULL AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by NULL,NULL,NULL,NULL,NULL
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT 1 AS ` `;
|
SELECT 1 AS ` `;
|
||||||
|
|
||||||
@ -4648,17 +4648,17 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND b=b AND c=c) OR b > 20;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '0' AS `a`,'0' AS `b`,'0' AS `c` from `test`.`t1` where 1
|
Note 1003 select NULL AS `a`,NULL AS `b`,NULL AS `c` from `test`.`t1` where 1
|
||||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND a=a AND b=b) OR b > 20;
|
EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND a=a AND b=b) OR b > 20;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '0' AS `a`,'0' AS `b`,'0' AS `c` from `test`.`t1` where 1
|
Note 1003 select NULL AS `a`,NULL AS `b`,NULL AS `c` from `test`.`t1` where 1
|
||||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND b=b AND a=a) OR b > 20;
|
EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND b=b AND a=a) OR b > 20;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '0' AS `a`,'0' AS `b`,'0' AS `c` from `test`.`t1` where 1
|
Note 1003 select NULL AS `a`,NULL AS `b`,NULL AS `c` from `test`.`t1` where 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug#45266: Uninitialized variable lead to an empty result.
|
# Bug#45266: Uninitialized variable lead to an empty result.
|
||||||
|
@ -1496,7 +1496,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < (select max('0') from `test`.`t2`)))
|
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < (select max(NULL) from `test`.`t2`)))
|
||||||
select * from t3 where a >= some (select b from t2);
|
select * from t3 where a >= some (select b from t2);
|
||||||
a
|
a
|
||||||
explain extended select * from t3 where a >= some (select b from t2);
|
explain extended select * from t3 where a >= some (select b from t2);
|
||||||
@ -1504,7 +1504,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= (select min('0') from `test`.`t2`)))
|
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= (select min(NULL) from `test`.`t2`)))
|
||||||
select * from t3 where a >= all (select b from t2 group by 1);
|
select * from t3 where a >= all (select b from t2 group by 1);
|
||||||
a
|
a
|
||||||
6
|
6
|
||||||
@ -1515,7 +1515,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < <max>(select '0' AS `b` from `test`.`t2` group by 1)))
|
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < <max>(select NULL AS `b` from `test`.`t2` group by 1)))
|
||||||
select * from t3 where a >= some (select b from t2 group by 1);
|
select * from t3 where a >= some (select b from t2 group by 1);
|
||||||
a
|
a
|
||||||
explain extended select * from t3 where a >= some (select b from t2 group by 1);
|
explain extended select * from t3 where a >= some (select b from t2 group by 1);
|
||||||
@ -1523,7 +1523,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
2 SUBQUERY t2 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= <min>(select '0' AS `b` from `test`.`t2` group by 1)))
|
Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= <min>(select NULL AS `b` from `test`.`t2` group by 1)))
|
||||||
select * from t3 where NULL >= any (select b from t2);
|
select * from t3 where NULL >= any (select b from t2);
|
||||||
a
|
a
|
||||||
explain extended select * from t3 where NULL >= any (select b from t2);
|
explain extended select * from t3 where NULL >= any (select b from t2);
|
||||||
|
@ -1585,7 +1585,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 UNION t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
2 UNION t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL NULL Using filesort
|
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL NULL Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select '0' AS `a` from `test`.`t1` union select '0' AS `a` from `test`.`t1` order by `a`
|
Note 1003 select NULL AS `a` from `test`.`t1` union select NULL AS `a` from `test`.`t1` order by `a`
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
#
|
#
|
||||||
|
BIN
mysql-test/std_data/bug49823.CSM
Normal file
BIN
mysql-test/std_data/bug49823.CSM
Normal file
Binary file not shown.
1
mysql-test/std_data/bug49823.CSV
Normal file
1
mysql-test/std_data/bug49823.CSV
Normal file
@ -0,0 +1 @@
|
|||||||
|
"2010-02-26 13:32:26","root[root] @ localhost []",2,1,"Query","SELECT 1"
|
|
BIN
mysql-test/std_data/bug49823.frm
Normal file
BIN
mysql-test/std_data/bug49823.frm
Normal file
Binary file not shown.
@ -241,10 +241,12 @@ STOP SLAVE;
|
|||||||
SET GLOBAL storage_engine=@storage_engine;
|
SET GLOBAL storage_engine=@storage_engine;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
================ BUG#22864 ================
|
================ BUG#22864 ================
|
||||||
STOP SLAVE;
|
stop slave;
|
||||||
RESET SLAVE;
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
RESET MASTER;
|
reset master;
|
||||||
START SLAVE;
|
reset slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
start slave;
|
||||||
SET AUTOCOMMIT=0;
|
SET AUTOCOMMIT=0;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
@ -264,15 +266,6 @@ t1
|
|||||||
t2
|
t2
|
||||||
t3
|
t3
|
||||||
t4
|
t4
|
||||||
SELECT TABLE_NAME,ENGINE
|
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
|
||||||
WHERE TABLE_NAME LIKE 't_'
|
|
||||||
ORDER BY TABLE_NAME;
|
|
||||||
TABLE_NAME ENGINE
|
|
||||||
t1 MyISAM
|
|
||||||
t2 InnoDB
|
|
||||||
t3 InnoDB
|
|
||||||
t4 InnoDB
|
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
@ -334,15 +327,6 @@ t1
|
|||||||
t2
|
t2
|
||||||
t3
|
t3
|
||||||
t4
|
t4
|
||||||
SELECT TABLE_NAME,ENGINE
|
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
|
||||||
WHERE TABLE_NAME LIKE 't_'
|
|
||||||
ORDER BY TABLE_NAME;
|
|
||||||
TABLE_NAME ENGINE
|
|
||||||
t1 MyISAM
|
|
||||||
t2 InnoDB
|
|
||||||
t3 InnoDB
|
|
||||||
t4 InnoDB
|
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
42
mysql-test/suite/rpl/r/rpl_show_slave_running.result
Normal file
42
mysql-test/suite/rpl/r/rpl_show_slave_running.result
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
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;
|
||||||
|
include/stop_slave.inc
|
||||||
|
SELECT GET_LOCK("debug_lock.before_get_running_status_yes", 1000);
|
||||||
|
GET_LOCK("debug_lock.before_get_running_status_yes", 1000)
|
||||||
|
1
|
||||||
|
set global debug= 'd,debug_lock.before_get_running_status_yes';
|
||||||
|
Slave_running, Slave_IO_Running, Slave_SQL_Running, must be OFF, NO, NO in three following queries
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
Variable_name Value
|
||||||
|
Slave_running OFF
|
||||||
|
Slave_IO_Running= No
|
||||||
|
Slave_SQL_Running= No
|
||||||
|
start slave io_thread;
|
||||||
|
Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF NO NO in three following queries
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
Variable_name Value
|
||||||
|
Slave_running OFF
|
||||||
|
Slave_IO_Running= No
|
||||||
|
Slave_SQL_Running= No
|
||||||
|
SELECT RELEASE_LOCK("debug_lock.before_get_running_status_yes");
|
||||||
|
RELEASE_LOCK("debug_lock.before_get_running_status_yes")
|
||||||
|
1
|
||||||
|
Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF YES NO in three following queries
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
Variable_name Value
|
||||||
|
Slave_running OFF
|
||||||
|
Slave_IO_Running= Yes
|
||||||
|
Slave_SQL_Running= No
|
||||||
|
start slave sql_thread;
|
||||||
|
Slave_running, Slave_IO_Running, Slave_SQL_Running must be ON, YES, YES in three following queries
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
Variable_name Value
|
||||||
|
Slave_running ON
|
||||||
|
Slave_IO_Running= Yes
|
||||||
|
Slave_SQL_Running= Yes
|
||||||
|
set global debug= '';
|
||||||
|
End of tests
|
@ -10,4 +10,4 @@
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
rpl_row_create_table : Bug#45576 2009-12-01 joro rpl_row_create_table fails on PB2
|
rpl_row_create_table : Bug#51574 Feb 27 2010 andrei failed different way than earlier with bug#45576
|
||||||
|
@ -136,13 +136,9 @@ START SLAVE;
|
|||||||
# BUG#22864 (Rollback following CREATE ... SELECT discards 'CREATE
|
# BUG#22864 (Rollback following CREATE ... SELECT discards 'CREATE
|
||||||
# table' from log):
|
# table' from log):
|
||||||
--echo ================ BUG#22864 ================
|
--echo ================ BUG#22864 ================
|
||||||
connection slave;
|
|
||||||
STOP SLAVE;
|
--source include/master-slave-reset.inc
|
||||||
RESET SLAVE;
|
|
||||||
connection master;
|
|
||||||
RESET MASTER;
|
|
||||||
connection slave;
|
|
||||||
START SLAVE;
|
|
||||||
connection master;
|
connection master;
|
||||||
SET AUTOCOMMIT=0;
|
SET AUTOCOMMIT=0;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
@ -160,10 +156,6 @@ INSERT INTO t1 VALUES (4),(5),(6);
|
|||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
SELECT TABLE_NAME,ENGINE
|
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
|
||||||
WHERE TABLE_NAME LIKE 't_'
|
|
||||||
ORDER BY TABLE_NAME;
|
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
SELECT * FROM t3 ORDER BY a;
|
SELECT * FROM t3 ORDER BY a;
|
||||||
@ -173,10 +165,6 @@ SELECT * FROM t4 ORDER BY a;
|
|||||||
SHOW BINLOG EVENTS FROM 106;
|
SHOW BINLOG EVENTS FROM 106;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
SELECT TABLE_NAME,ENGINE
|
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
|
||||||
WHERE TABLE_NAME LIKE 't_'
|
|
||||||
ORDER BY TABLE_NAME;
|
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
SELECT * FROM t3 ORDER BY a;
|
SELECT * FROM t3 ORDER BY a;
|
||||||
|
76
mysql-test/suite/rpl/t/rpl_show_slave_running.test
Normal file
76
mysql-test/suite/rpl/t/rpl_show_slave_running.test
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#
|
||||||
|
# Bug #30703 SHOW STATUS LIKE 'Slave_running' is not compatible with `SHOW SLAVE STATUS'
|
||||||
|
# The test verifies that SHOW STATUS LIKE 'Slave_running' displays ON
|
||||||
|
# if and only if `SHOW SLAVE STATUS' displays YES for Slave_IO_Running and Slave_SQL_Running
|
||||||
|
#
|
||||||
|
source include/master-slave.inc;
|
||||||
|
source include/have_debug.inc;
|
||||||
|
|
||||||
|
connection slave;
|
||||||
|
|
||||||
|
source include/stop_slave.inc;
|
||||||
|
let $debug_saved= `select @@global.debug`;
|
||||||
|
let $debug_lock= "debug_lock.before_get_running_status_yes";
|
||||||
|
eval SELECT GET_LOCK($debug_lock, 1000);
|
||||||
|
set global debug= 'd,debug_lock.before_get_running_status_yes';
|
||||||
|
|
||||||
|
# Test 1. Slave is stopped
|
||||||
|
|
||||||
|
--echo Slave_running, Slave_IO_Running, Slave_SQL_Running, must be OFF, NO, NO in three following queries
|
||||||
|
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
let $status= query_get_value("show slave status", Slave_IO_Running, 1);
|
||||||
|
echo Slave_IO_Running= $status;
|
||||||
|
let $status= query_get_value("show slave status", Slave_SQL_Running, 1);
|
||||||
|
echo Slave_SQL_Running= $status;
|
||||||
|
|
||||||
|
# Test 2. The slave IO thread is started but not yet got connected to master
|
||||||
|
# and SQL thread is not started
|
||||||
|
|
||||||
|
start slave io_thread;
|
||||||
|
|
||||||
|
--echo Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF NO NO in three following queries
|
||||||
|
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
let $status= query_get_value("show slave status", Slave_IO_Running, 1);
|
||||||
|
echo Slave_IO_Running= $status;
|
||||||
|
let $status= query_get_value("show slave status", Slave_SQL_Running, 1);
|
||||||
|
echo Slave_SQL_Running= $status;
|
||||||
|
|
||||||
|
# Test 3. The slave IO thread is started and got connected to master
|
||||||
|
# and SQL thread is still not started
|
||||||
|
|
||||||
|
eval SELECT RELEASE_LOCK($debug_lock);
|
||||||
|
let $slave_param= Slave_IO_Running;
|
||||||
|
let $slave_param_value= YES;
|
||||||
|
source include/wait_for_slave_param.inc;
|
||||||
|
|
||||||
|
--echo Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF YES NO in three following queries
|
||||||
|
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
let $status= query_get_value("show slave status", Slave_IO_Running, 1);
|
||||||
|
echo Slave_IO_Running= $status;
|
||||||
|
let $status= query_get_value("show slave status", Slave_SQL_Running, 1);
|
||||||
|
echo Slave_SQL_Running= $status;
|
||||||
|
|
||||||
|
# Test 4. The slave IO thread is started and got connected to master
|
||||||
|
# and SQL thread is started
|
||||||
|
|
||||||
|
start slave sql_thread;
|
||||||
|
source include/wait_for_slave_sql_to_start.inc;
|
||||||
|
|
||||||
|
--echo Slave_running, Slave_IO_Running, Slave_SQL_Running must be ON, YES, YES in three following queries
|
||||||
|
|
||||||
|
SHOW STATUS LIKE 'Slave_running';
|
||||||
|
let $status= query_get_value("show slave status", Slave_IO_Running, 1);
|
||||||
|
echo Slave_IO_Running= $status;
|
||||||
|
let $status= query_get_value("show slave status", Slave_SQL_Running, 1);
|
||||||
|
echo Slave_SQL_Running= $status;
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
|
||||||
|
connection slave;
|
||||||
|
|
||||||
|
eval set global debug= '$debug_saved';
|
||||||
|
|
||||||
|
--echo End of tests
|
@ -187,4 +187,16 @@ SET SESSION sql_mode=@old_sql_mode;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#47669: Query showed by EXPLAIN EXTENDED gives different result from original query
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c int);
|
||||||
|
INSERT INTO t1 VALUES (NULL);
|
||||||
|
CREATE TABLE t2 (d int);
|
||||||
|
INSERT INTO t2 VALUES (NULL), (0);
|
||||||
|
EXPLAIN EXTENDED SELECT (SELECT 1 FROM t2 WHERE d = c) FROM t1;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
32
mysql-test/t/log_tables_upgrade.test
Normal file
32
mysql-test/t/log_tables_upgrade.test
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
--source include/not_embedded.inc
|
||||||
|
--source include/have_csv.inc
|
||||||
|
|
||||||
|
# Only run test if "mysql_upgrade" is found
|
||||||
|
--require r/have_mysql_upgrade.result
|
||||||
|
--disable_query_log
|
||||||
|
select LENGTH("$MYSQL_UPGRADE")>0 as have_mysql_upgrade;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#49823: mysql_upgrade fatal error due to general_log / slow_low CSV NULL
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
USE test;
|
||||||
|
|
||||||
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
copy_file std_data/bug49823.frm $MYSQLD_DATADIR/test/bug49823.frm;
|
||||||
|
copy_file std_data/bug49823.CSM $MYSQLD_DATADIR/test/bug49823.CSM;
|
||||||
|
copy_file std_data/bug49823.CSV $MYSQLD_DATADIR/test/bug49823.CSV;
|
||||||
|
|
||||||
|
SET @saved_general_log = @@GLOBAL.general_log;
|
||||||
|
SET GLOBAL general_log = OFF;
|
||||||
|
USE mysql;
|
||||||
|
FLUSH TABLES;
|
||||||
|
REPAIR TABLE test.bug49823;
|
||||||
|
RENAME TABLE general_log TO renamed_general_log;
|
||||||
|
RENAME TABLE test.bug49823 TO general_log;
|
||||||
|
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||||
|
DROP TABLE general_log;
|
||||||
|
RENAME TABLE renamed_general_log TO general_log;
|
||||||
|
SET GLOBAL general_log = @saved_general_log;
|
||||||
|
USE test;
|
@ -1587,5 +1587,20 @@ REPLACE INTO t1 VALUES
|
|||||||
CHECK TABLE t1;
|
CHECK TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#51304: checksum table gives different results
|
||||||
|
--echo # for same data when using bit fields
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1(a INT, b BIT(1));
|
||||||
|
INSERT INTO t1 VALUES(1, 0), (2, 1);
|
||||||
|
CREATE TABLE t2 SELECT * FROM t1;
|
||||||
|
--copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/t3.frm
|
||||||
|
--copy_file $MYSQLD_DATADIR/test/t1.MYD $MYSQLD_DATADIR/test/t3.MYD
|
||||||
|
--copy_file $MYSQLD_DATADIR/test/t1.MYI $MYSQLD_DATADIR/test/t3.MYI
|
||||||
|
CHECKSUM TABLE t1 EXTENDED;
|
||||||
|
CHECKSUM TABLE t2 EXTENDED;
|
||||||
|
CHECKSUM TABLE t3 EXTENDED;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
@ -32,7 +32,7 @@ if (`SELECT $VALGRIND_TEST`)
|
|||||||
# expected binaries it uses.
|
# expected binaries it uses.
|
||||||
#
|
#
|
||||||
--echo Run mysql_upgrade once
|
--echo Run mysql_upgrade once
|
||||||
--exec $MYSQL_UPGRADE --skip-verbose 2>&1
|
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||||
|
|
||||||
# It should have created a file in the MySQL Servers datadir
|
# It should have created a file in the MySQL Servers datadir
|
||||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||||
|
@ -400,6 +400,7 @@ static void *cs_alloc(size_t size)
|
|||||||
|
|
||||||
|
|
||||||
static my_pthread_once_t charsets_initialized= MY_PTHREAD_ONCE_INIT;
|
static my_pthread_once_t charsets_initialized= MY_PTHREAD_ONCE_INIT;
|
||||||
|
static my_pthread_once_t charsets_template= MY_PTHREAD_ONCE_INIT;
|
||||||
|
|
||||||
static void init_available_charsets(void)
|
static void init_available_charsets(void)
|
||||||
{
|
{
|
||||||
@ -427,6 +428,11 @@ static void init_available_charsets(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void free_charsets(void)
|
||||||
|
{
|
||||||
|
charsets_initialized= charsets_template;
|
||||||
|
}
|
||||||
|
|
||||||
uint get_collation_number(const char *name)
|
uint get_collation_number(const char *name)
|
||||||
{
|
{
|
||||||
my_pthread_once(&charsets_initialized, init_available_charsets);
|
my_pthread_once(&charsets_initialized, init_available_charsets);
|
||||||
|
@ -165,6 +165,7 @@ void my_end(int infoflag)
|
|||||||
my_print_open_files();
|
my_print_open_files();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free_charsets();
|
||||||
my_error_unregister_all();
|
my_error_unregister_all();
|
||||||
my_once_free();
|
my_once_free();
|
||||||
|
|
||||||
|
@ -221,12 +221,29 @@ ALTER TABLE func
|
|||||||
|
|
||||||
SET @old_log_state = @@global.general_log;
|
SET @old_log_state = @@global.general_log;
|
||||||
SET GLOBAL general_log = 'OFF';
|
SET GLOBAL general_log = 'OFF';
|
||||||
ALTER TABLE general_log MODIFY COLUMN server_id INTEGER UNSIGNED NOT NULL;
|
ALTER TABLE general_log
|
||||||
|
MODIFY event_time TIMESTAMP NOT NULL,
|
||||||
|
MODIFY user_host MEDIUMTEXT NOT NULL,
|
||||||
|
MODIFY thread_id INTEGER NOT NULL,
|
||||||
|
MODIFY server_id INTEGER UNSIGNED NOT NULL,
|
||||||
|
MODIFY command_type VARCHAR(64) NOT NULL,
|
||||||
|
MODIFY argument MEDIUMTEXT NOT NULL;
|
||||||
SET GLOBAL general_log = @old_log_state;
|
SET GLOBAL general_log = @old_log_state;
|
||||||
|
|
||||||
SET @old_log_state = @@global.slow_query_log;
|
SET @old_log_state = @@global.slow_query_log;
|
||||||
SET GLOBAL slow_query_log = 'OFF';
|
SET GLOBAL slow_query_log = 'OFF';
|
||||||
ALTER TABLE slow_log MODIFY COLUMN server_id INTEGER UNSIGNED NOT NULL;
|
ALTER TABLE slow_log
|
||||||
|
MODIFY start_time TIMESTAMP NOT NULL,
|
||||||
|
MODIFY user_host MEDIUMTEXT NOT NULL,
|
||||||
|
MODIFY query_time TIME NOT NULL,
|
||||||
|
MODIFY lock_time TIME NOT NULL,
|
||||||
|
MODIFY rows_sent INTEGER NOT NULL,
|
||||||
|
MODIFY rows_examined INTEGER NOT NULL,
|
||||||
|
MODIFY db VARCHAR(512) NOT NULL,
|
||||||
|
MODIFY last_insert_id INTEGER NOT NULL,
|
||||||
|
MODIFY insert_id INTEGER NOT NULL,
|
||||||
|
MODIFY server_id INTEGER UNSIGNED NOT NULL,
|
||||||
|
MODIFY sql_text MEDIUMTEXT NOT NULL;
|
||||||
SET GLOBAL slow_query_log = @old_log_state;
|
SET GLOBAL slow_query_log = @old_log_state;
|
||||||
|
|
||||||
#
|
#
|
||||||
|
11
sql/item.cc
11
sql/item.cc
@ -5690,9 +5690,14 @@ void Item_field::print(String *str, enum_query_type query_type)
|
|||||||
char buff[MAX_FIELD_WIDTH];
|
char buff[MAX_FIELD_WIDTH];
|
||||||
String tmp(buff,sizeof(buff),str->charset());
|
String tmp(buff,sizeof(buff),str->charset());
|
||||||
field->val_str(&tmp);
|
field->val_str(&tmp);
|
||||||
str->append('\'');
|
if (field->is_null())
|
||||||
str->append(tmp);
|
str->append("NULL");
|
||||||
str->append('\'');
|
else
|
||||||
|
{
|
||||||
|
str->append('\'');
|
||||||
|
str->append(tmp);
|
||||||
|
str->append('\'');
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Item_ident::print(str, query_type);
|
Item_ident::print(str, query_type);
|
||||||
|
@ -1287,6 +1287,7 @@ void clean_up(bool print_message)
|
|||||||
lex_free(); /* Free some memory */
|
lex_free(); /* Free some memory */
|
||||||
item_create_cleanup();
|
item_create_cleanup();
|
||||||
set_var_free();
|
set_var_free();
|
||||||
|
free_charsets();
|
||||||
if (!opt_noacl)
|
if (!opt_noacl)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_DLOPEN
|
#ifdef HAVE_DLOPEN
|
||||||
@ -7162,7 +7163,8 @@ static int show_slave_running(THD *thd, SHOW_VAR *var, char *buff)
|
|||||||
var->type= SHOW_MY_BOOL;
|
var->type= SHOW_MY_BOOL;
|
||||||
pthread_mutex_lock(&LOCK_active_mi);
|
pthread_mutex_lock(&LOCK_active_mi);
|
||||||
var->value= buff;
|
var->value= buff;
|
||||||
*((my_bool *)buff)= (my_bool) (active_mi && active_mi->slave_running &&
|
*((my_bool *)buff)= (my_bool) (active_mi &&
|
||||||
|
active_mi->slave_running == MYSQL_SLAVE_RUN_CONNECT &&
|
||||||
active_mi->rli.slave_running);
|
active_mi->rli.slave_running);
|
||||||
pthread_mutex_unlock(&LOCK_active_mi);
|
pthread_mutex_unlock(&LOCK_active_mi);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2557,6 +2557,7 @@ pthread_handler_t handle_slave_io(void *arg)
|
|||||||
|
|
||||||
connected:
|
connected:
|
||||||
|
|
||||||
|
DBUG_SYNC_POINT("debug_lock.before_get_running_status_yes", 10);
|
||||||
// TODO: the assignment below should be under mutex (5.0)
|
// TODO: the assignment below should be under mutex (5.0)
|
||||||
mi->slave_running= MYSQL_SLAVE_RUN_CONNECT;
|
mi->slave_running= MYSQL_SLAVE_RUN_CONNECT;
|
||||||
thd->slave_net = &mysql->net;
|
thd->slave_net = &mysql->net;
|
||||||
|
@ -7934,22 +7934,28 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables,
|
|||||||
for (uint i= 0; i < t->s->fields; i++ )
|
for (uint i= 0; i < t->s->fields; i++ )
|
||||||
{
|
{
|
||||||
Field *f= t->field[i];
|
Field *f= t->field[i];
|
||||||
enum_field_types field_type= f->type();
|
|
||||||
/*
|
/*
|
||||||
BLOB and VARCHAR have pointers in their field, we must convert
|
BLOB and VARCHAR have pointers in their field, we must convert
|
||||||
to string; GEOMETRY is implemented on top of BLOB.
|
to string; GEOMETRY is implemented on top of BLOB.
|
||||||
*/
|
BIT may store its data among NULL bits, convert as well.
|
||||||
if ((field_type == MYSQL_TYPE_BLOB) ||
|
*/
|
||||||
(field_type == MYSQL_TYPE_VARCHAR) ||
|
switch (f->type()) {
|
||||||
(field_type == MYSQL_TYPE_GEOMETRY))
|
case MYSQL_TYPE_BLOB:
|
||||||
{
|
case MYSQL_TYPE_VARCHAR:
|
||||||
String tmp;
|
case MYSQL_TYPE_GEOMETRY:
|
||||||
f->val_str(&tmp);
|
case MYSQL_TYPE_BIT:
|
||||||
row_crc= my_checksum(row_crc, (uchar*) tmp.ptr(), tmp.length());
|
{
|
||||||
|
String tmp;
|
||||||
|
f->val_str(&tmp);
|
||||||
|
row_crc= my_checksum(row_crc, (uchar*) tmp.ptr(),
|
||||||
|
tmp.length());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
row_crc= my_checksum(row_crc, f->ptr, f->pack_length());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
row_crc= my_checksum(row_crc, f->ptr,
|
|
||||||
f->pack_length());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
crc+= row_crc;
|
crc+= row_crc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user