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
94 lines
4.2 KiB
Text
94 lines
4.2 KiB
Text
drop table if exists t1, t2, t3, t4;
|
|
drop table if exists t1, t2, t3, t4;
|
|
start slave;
|
|
Got one of the listed errors
|
|
start slave;
|
|
ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
|
|
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
|
|
ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
|
|
reset slave;
|
|
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
|
|
reset master;
|
|
start slave;
|
|
create temporary table temp_table (a char(80) not null);
|
|
insert into temp_table values ("testing temporary tables");
|
|
create table t1 (s text);
|
|
insert into t1 values('Could not break slave'),('Tried hard');
|
|
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 60 master-bin.000001 552 # # master-bin.000001 Yes Yes 0 0 552 # None 0 No #
|
|
select * from t1;
|
|
s
|
|
Could not break slave
|
|
Tried hard
|
|
flush logs;
|
|
create table t2(m int not null auto_increment primary key);
|
|
insert into t2 values (34),(67),(123);
|
|
flush logs;
|
|
show binary logs;
|
|
Log_name
|
|
master-bin.000001
|
|
master-bin.000002
|
|
master-bin.000003
|
|
create table t3 select * from temp_table;
|
|
select * from t3;
|
|
a
|
|
testing temporary tables
|
|
drop table temp_table, t3;
|
|
insert into t2 values(1234);
|
|
set insert_id=1234;
|
|
insert into t2 values(NULL);
|
|
set global sql_slave_skip_counter=1;
|
|
start slave;
|
|
purge master logs to 'master-bin.000002';
|
|
show master logs;
|
|
Log_name
|
|
master-bin.000002
|
|
master-bin.000003
|
|
purge binary logs to 'master-bin.000002';
|
|
show binary logs;
|
|
Log_name
|
|
master-bin.000002
|
|
master-bin.000003
|
|
purge master logs before now();
|
|
show binary logs;
|
|
Log_name
|
|
master-bin.000003
|
|
insert into t2 values (65);
|
|
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 60 master-bin.000003 500 # # master-bin.000003 Yes Yes 0 0 500 # None 0 No #
|
|
select * from t2;
|
|
m
|
|
34
|
|
65
|
|
67
|
|
123
|
|
1234
|
|
create temporary table temp_table (a char(80) not null);
|
|
insert into temp_table values ("testing temporary tables part 2");
|
|
create table t3 (n int);
|
|
select count(*) from t3 where n >= 4;
|
|
count(*)
|
|
100
|
|
create table t4 select * from temp_table;
|
|
show binary logs;
|
|
Log_name
|
|
master-bin.000003
|
|
master-bin.000004
|
|
master-bin.000005
|
|
show master status;
|
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
|
master-bin.000005 2146
|
|
select * from t4;
|
|
a
|
|
testing temporary tables part 2
|
|
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 60 master-bin.000005 2146 # # master-bin.000005 Yes Yes 0 0 2146 # None 0 No #
|
|
lock tables t3 read;
|
|
select count(*) from t3 where n >= 4;
|
|
count(*)
|
|
100
|
|
unlock tables;
|
|
drop table if exists t1,t2,t3,t4;
|