mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
f169114042
Now one can use user variables as target for data loaded from file (besides table's columns). Also LOAD DATA got new SET-clause in which one can specify values for table columns as expressions. For example the following is possible: LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1; This patch also implements new way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event
103 lines
5.6 KiB
Text
103 lines
5.6 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;
|
|
stop slave;
|
|
reset master;
|
|
reset slave;
|
|
reset master;
|
|
create table t1(n int not null auto_increment primary key);
|
|
insert into t1 values (NULL);
|
|
drop table t1;
|
|
create table t1 (word char(20) not null);
|
|
load data infile '../../std_data/words.dat' into table t1 ignore 1 lines;
|
|
select count(*) from t1;
|
|
count(*)
|
|
69
|
|
drop table t1;
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000001 98 Query 1 220 use `test`; create table t1(n int not null auto_increment primary key)
|
|
master-bin.000001 220 Intvar 1 248 INSERT_ID=1
|
|
master-bin.000001 248 Query 1 340 use `test`; insert into t1 values (NULL)
|
|
master-bin.000001 340 Query 1 417 use `test`; drop table t1
|
|
master-bin.000001 417 Query 1 521 use `test`; create table t1 (word char(20) not null)
|
|
master-bin.000001 521 Begin_load_query 1 1125 ;file_id=1;block_len=581
|
|
master-bin.000001 1125 Execute_load_query 1 1274 use `test`; load data infile '../../std_data/words.dat' into table t1 ignore 1 lines ;file_id=1
|
|
master-bin.000001 1274 Query 1 1351 use `test`; drop table t1
|
|
show binlog events from 98 limit 1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 98 Query 1 220 use `test`; create table t1(n int not null auto_increment primary key)
|
|
show binlog events from 98 limit 2;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 98 Query 1 220 use `test`; create table t1(n int not null auto_increment primary key)
|
|
master-bin.000001 220 Intvar 1 248 INSERT_ID=1
|
|
show binlog events from 98 limit 2,1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 248 Query 1 340 use `test`; insert into t1 values (NULL)
|
|
flush logs;
|
|
create table t5 (a int);
|
|
drop table t5;
|
|
start slave;
|
|
flush logs;
|
|
stop slave;
|
|
create table t1 (n int);
|
|
insert into t1 values (1);
|
|
drop table t1;
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000001 98 Query 1 220 use `test`; create table t1(n int not null auto_increment primary key)
|
|
master-bin.000001 220 Intvar 1 248 INSERT_ID=1
|
|
master-bin.000001 248 Query 1 340 use `test`; insert into t1 values (NULL)
|
|
master-bin.000001 340 Query 1 417 use `test`; drop table t1
|
|
master-bin.000001 417 Query 1 521 use `test`; create table t1 (word char(20) not null)
|
|
master-bin.000001 521 Begin_load_query 1 1125 ;file_id=1;block_len=581
|
|
master-bin.000001 1125 Execute_load_query 1 1274 use `test`; load data infile '../../std_data/words.dat' into table t1 ignore 1 lines ;file_id=1
|
|
master-bin.000001 1274 Query 1 1351 use `test`; drop table t1
|
|
master-bin.000001 1351 Rotate 1 1395 master-bin.000002;pos=4
|
|
show binlog events in 'master-bin.000002';
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000002 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000002 98 Query 1 185 use `test`; create table t5 (a int)
|
|
master-bin.000002 185 Query 1 262 use `test`; drop table t5
|
|
master-bin.000002 262 Query 1 349 use `test`; create table t1 (n int)
|
|
master-bin.000002 349 Query 1 438 use `test`; insert into t1 values (1)
|
|
master-bin.000002 438 Query 1 515 use `test`; drop table t1
|
|
show binary logs;
|
|
Log_name
|
|
master-bin.000001
|
|
master-bin.000002
|
|
start slave;
|
|
show binary logs;
|
|
Log_name
|
|
slave-bin.000001
|
|
slave-bin.000002
|
|
show binlog events in 'slave-bin.000001' from 4;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000001 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
|
|
slave-bin.000001 98 Query 1 220 use `test`; create table t1(n int not null auto_increment primary key)
|
|
slave-bin.000001 220 Intvar 1 248 INSERT_ID=1
|
|
slave-bin.000001 248 Query 1 340 use `test`; insert into t1 values (NULL)
|
|
slave-bin.000001 340 Query 1 417 use `test`; drop table t1
|
|
slave-bin.000001 417 Query 1 521 use `test`; create table t1 (word char(20) not null)
|
|
slave-bin.000001 521 Begin_load_query 1 1125 ;file_id=1;block_len=581
|
|
slave-bin.000001 1125 Execute_load_query 1 1283 use `test`; load data INFILE '../../var/tmp/SQL_LOAD-2-1-1.data' INTO table t1 ignore 1 lines ;file_id=1
|
|
slave-bin.000001 1283 Query 1 1360 use `test`; drop table t1
|
|
slave-bin.000001 1360 Query 1 1447 use `test`; create table t5 (a int)
|
|
slave-bin.000001 1447 Query 1 1524 use `test`; drop table t5
|
|
slave-bin.000001 1524 Rotate 2 1567 slave-bin.000002;pos=4
|
|
show binlog events in 'slave-bin.000002' from 4;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000002 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
|
|
slave-bin.000002 98 Query 1 185 use `test`; create table t1 (n int)
|
|
slave-bin.000002 185 Query 1 274 use `test`; insert into t1 values (1)
|
|
slave-bin.000002 274 Query 1 351 use `test`; drop table t1
|
|
show slave status;
|
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
|
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 515 # # master-bin.000002 Yes Yes 0 0 515 # None 0 No #
|
|
show binlog events in 'slave-bin.000005' from 4;
|
|
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
|