mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 03:21:53 +01:00
595719280e
escaped field names When in mixed or statement mode, the master logs LOAD DATA queries by resorting to an Execute_load_query_log_event. This event does not contain the original query, but a rewritten version of it, which includes the table field names. However, the rewrite does not escape the field names. If these names match a reserved keyword, then the slave will stop with a syntax error when executing the event. We fix this by escaping the fields names as it happens already for the table name. mysql-test/extra/rpl_tests/rpl_loaddata.test: Added test case for the reported bug. mysql-test/r/mysqlbinlog.result: Changed result to support escaped field name. mysql-test/suite/binlog/r/binlog_killed_simulate.result: Changed result to support escaped field name. mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result: Changed result to support escaped field name. mysql-test/suite/binlog/r/binlog_stm_blackhole.result: Changed result to support escaped field name. mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: Changed result to support escaped field name. mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result: Changed result to support escaped field name. mysql-test/suite/rpl/r/rpl_loaddata.result: Added result for new test. Changed show slave status positions which are now different because of extra escape character in field names. mysql-test/suite/rpl/r/rpl_loaddata_fatal.result: Changed show slave status positions which are now different because of extra escape character. mysql-test/suite/rpl/r/rpl_loaddata_map.result: Changed result to support escaped field name. mysql-test/suite/rpl/r/rpl_stm_log.result: Changed result to support escaped field name. mysql-test/t/mysqlbinlog.test: Changed positions which is now different because of extra escape character in field names. sql/sql_load.cc: Appended escape characters before and after field names.
90 lines
2 KiB
Text
90 lines
2 KiB
Text
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 (a INT, b INT);
|
|
INSERT INTO t1 VALUES (1,10);
|
|
SHOW SLAVE STATUS;
|
|
Slave_IO_State #
|
|
Master_Host 127.0.0.1
|
|
Master_User root
|
|
Master_Port MASTER_PORT
|
|
Connect_Retry 1
|
|
Master_Log_File master-bin.000001
|
|
Read_Master_Log_Pos 290
|
|
Relay_Log_File #
|
|
Relay_Log_Pos #
|
|
Relay_Master_Log_File master-bin.000001
|
|
Slave_IO_Running Yes
|
|
Slave_SQL_Running Yes
|
|
Replicate_Do_DB
|
|
Replicate_Ignore_DB
|
|
Replicate_Do_Table
|
|
Replicate_Ignore_Table #
|
|
Replicate_Wild_Do_Table
|
|
Replicate_Wild_Ignore_Table
|
|
Last_Errno 0
|
|
Last_Error
|
|
Skip_Counter 0
|
|
Exec_Master_Log_Pos 290
|
|
Relay_Log_Space #
|
|
Until_Condition None
|
|
Until_Log_File
|
|
Until_Log_Pos 0
|
|
Master_SSL_Allowed No
|
|
Master_SSL_CA_File
|
|
Master_SSL_CA_Path
|
|
Master_SSL_Cert
|
|
Master_SSL_Cipher
|
|
Master_SSL_Key
|
|
Seconds_Behind_Master #
|
|
Master_SSL_Verify_Server_Cert No
|
|
Last_IO_Errno #
|
|
Last_IO_Error #
|
|
Last_SQL_Errno 0
|
|
Last_SQL_Error
|
|
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1;
|
|
SHOW SLAVE STATUS;
|
|
Slave_IO_State #
|
|
Master_Host 127.0.0.1
|
|
Master_User root
|
|
Master_Port MASTER_PORT
|
|
Connect_Retry 1
|
|
Master_Log_File master-bin.000001
|
|
Read_Master_Log_Pos 560
|
|
Relay_Log_File #
|
|
Relay_Log_Pos #
|
|
Relay_Master_Log_File master-bin.000001
|
|
Slave_IO_Running Yes
|
|
Slave_SQL_Running No
|
|
Replicate_Do_DB
|
|
Replicate_Ignore_DB
|
|
Replicate_Do_Table
|
|
Replicate_Ignore_Table #
|
|
Replicate_Wild_Do_Table
|
|
Replicate_Wild_Ignore_Table
|
|
Last_Errno 1593
|
|
Last_Error Fatal error: Not enough memory
|
|
Skip_Counter 0
|
|
Exec_Master_Log_Pos 325
|
|
Relay_Log_Space #
|
|
Until_Condition None
|
|
Until_Log_File
|
|
Until_Log_Pos 0
|
|
Master_SSL_Allowed No
|
|
Master_SSL_CA_File
|
|
Master_SSL_CA_Path
|
|
Master_SSL_Cert
|
|
Master_SSL_Cipher
|
|
Master_SSL_Key
|
|
Seconds_Behind_Master #
|
|
Master_SSL_Verify_Server_Cert No
|
|
Last_IO_Errno #
|
|
Last_IO_Error #
|
|
Last_SQL_Errno 1593
|
|
Last_SQL_Error Fatal error: Not enough memory
|
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
|
|
START SLAVE;
|
|
DROP TABLE t1;
|