mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Replication fixes
This commit is contained in:
@ -23,9 +23,9 @@
|
|||||||
#endif /* MYSQL_CLIENT */
|
#endif /* MYSQL_CLIENT */
|
||||||
|
|
||||||
#define LOG_EVENT_HEADER_LEN 9
|
#define LOG_EVENT_HEADER_LEN 9
|
||||||
#define QUERY_HEADER_LEN (sizeof(uint) + sizeof(uint) + sizeof(uchar))
|
#define QUERY_HEADER_LEN (sizeof(uint32) + sizeof(uint32) + sizeof(uchar))
|
||||||
#define LOAD_HEADER_LEN (sizeof(uint) + sizeof(uint) + \
|
#define LOAD_HEADER_LEN (sizeof(uint32) + sizeof(uint32) + \
|
||||||
+ sizeof(uint) + 2 + sizeof(uint))
|
+ sizeof(uint32) + 2 + sizeof(uint32))
|
||||||
#define EVENT_LEN_OFFSET 5
|
#define EVENT_LEN_OFFSET 5
|
||||||
#define EVENT_TYPE_OFFSET 4
|
#define EVENT_TYPE_OFFSET 4
|
||||||
#define MAX_EVENT_LEN 4*1024*1024
|
#define MAX_EVENT_LEN 4*1024*1024
|
||||||
@ -71,11 +71,7 @@ int Log_event::write_header(FILE* file)
|
|||||||
int4store(pos, when); // timestamp
|
int4store(pos, when); // timestamp
|
||||||
pos += 4;
|
pos += 4;
|
||||||
*pos++ = get_type_code(); // event type code
|
*pos++ = get_type_code(); // event type code
|
||||||
int4store(pos, get_data_size() +
|
int4store(pos, get_data_size() + LOG_EVENT_HEADER_LEN);
|
||||||
sizeof(time_t) // timestamp
|
|
||||||
+ sizeof(char) // event code
|
|
||||||
+ sizeof(uint) // event entry size
|
|
||||||
);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
return (my_fwrite(file, (byte*) buf, (uint) (pos - buf),
|
return (my_fwrite(file, (byte*) buf, (uint) (pos - buf),
|
||||||
MYF(MY_NABP | MY_WME)));
|
MYF(MY_NABP | MY_WME)));
|
||||||
|
@ -85,10 +85,10 @@ protected:
|
|||||||
public:
|
public:
|
||||||
const char* query;
|
const char* query;
|
||||||
const char* db;
|
const char* db;
|
||||||
uint q_len; // if we already know the length of the query string
|
uint32 q_len; // if we already know the length of the query string
|
||||||
// we pass it here, so we would not have to call strlen()
|
// we pass it here, so we would not have to call strlen()
|
||||||
// otherwise, set it to 0, in which case, we compute it with strlen()
|
// otherwise, set it to 0, in which case, we compute it with strlen()
|
||||||
uint db_len;
|
uint32 db_len;
|
||||||
int thread_id;
|
int thread_id;
|
||||||
#if !defined(MYSQL_CLIENT)
|
#if !defined(MYSQL_CLIENT)
|
||||||
THD* thd;
|
THD* thd;
|
||||||
@ -101,7 +101,7 @@ public:
|
|||||||
time(&end_time);
|
time(&end_time);
|
||||||
exec_time = (ulong) (end_time - thd->start_time);
|
exec_time = (ulong) (end_time - thd->start_time);
|
||||||
valid_exec_time = 1;
|
valid_exec_time = 1;
|
||||||
db_len = (db) ? (uint) strlen(db) : 0;
|
db_len = (db) ? (uint32) strlen(db) : 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -120,8 +120,8 @@ public:
|
|||||||
int get_data_size()
|
int get_data_size()
|
||||||
{
|
{
|
||||||
return q_len + db_len + 2 +
|
return q_len + db_len + 2 +
|
||||||
sizeof(uint) // thread_id
|
sizeof(uint32) // thread_id
|
||||||
+ sizeof(uint) // exec_time
|
+ sizeof(uint32) // exec_time
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,19 +157,19 @@ protected:
|
|||||||
char* data_buf;
|
char* data_buf;
|
||||||
public:
|
public:
|
||||||
int thread_id;
|
int thread_id;
|
||||||
uint table_name_len;
|
uint32 table_name_len;
|
||||||
uint db_len;
|
uint32 db_len;
|
||||||
uint fname_len;
|
uint32 fname_len;
|
||||||
uint num_fields;
|
uint32 num_fields;
|
||||||
const char* fields;
|
const char* fields;
|
||||||
const uchar* field_lens;
|
const uchar* field_lens;
|
||||||
uint field_block_len;
|
uint32 field_block_len;
|
||||||
|
|
||||||
|
|
||||||
const char* table_name;
|
const char* table_name;
|
||||||
const char* db;
|
const char* db;
|
||||||
const char* fname;
|
const char* fname;
|
||||||
uint skip_lines;
|
uint32 skip_lines;
|
||||||
sql_ex_info sql_ex;
|
sql_ex_info sql_ex;
|
||||||
|
|
||||||
#if !defined(MYSQL_CLIENT)
|
#if !defined(MYSQL_CLIENT)
|
||||||
@ -189,8 +189,8 @@ public:
|
|||||||
time(&end_time);
|
time(&end_time);
|
||||||
exec_time = (ulong) (end_time - thd->start_time);
|
exec_time = (ulong) (end_time - thd->start_time);
|
||||||
valid_exec_time = 1;
|
valid_exec_time = 1;
|
||||||
db_len = (db) ? (uint) strlen(db) : 0;
|
db_len = (db) ? (uint32) strlen(db) : 0;
|
||||||
table_name_len = (table_name) ? (uint) strlen(table_name) : 0;
|
table_name_len = (table_name) ? (uint32) strlen(table_name) : 0;
|
||||||
fname_len = (fname) ? (uint) strlen(fname) : 0;
|
fname_len = (fname) ? (uint) strlen(fname) : 0;
|
||||||
sql_ex.field_term = (*ex->field_term)[0];
|
sql_ex.field_term = (*ex->field_term)[0];
|
||||||
sql_ex.enclosed = (*ex->enclosed)[0];
|
sql_ex.enclosed = (*ex->enclosed)[0];
|
||||||
|
@ -372,9 +372,11 @@ int show_master_info(THD* thd)
|
|||||||
int flush_master_info(MASTER_INFO* mi)
|
int flush_master_info(MASTER_INFO* mi)
|
||||||
{
|
{
|
||||||
FILE* file = mi->file;
|
FILE* file = mi->file;
|
||||||
|
char lbuf[22];
|
||||||
|
|
||||||
if(my_fseek(file, 0L, MY_SEEK_SET, MYF(MY_WME)) == MY_FILEPOS_ERROR ||
|
if(my_fseek(file, 0L, MY_SEEK_SET, MYF(MY_WME)) == MY_FILEPOS_ERROR ||
|
||||||
fprintf(file, "%s\n%ld\n%s\n%s\n%s\n%d\n%d\n",
|
fprintf(file, "%s\n%s\n%s\n%s\n%s\n%d\n%d\n",
|
||||||
mi->log_file_name, mi->pos, mi->host, mi->user, mi->password,
|
mi->log_file_name, llstr(mi->pos, lbuf), mi->host, mi->user, mi->password,
|
||||||
mi->port, mi->connect_retry) < 0 ||
|
mi->port, mi->connect_retry) < 0 ||
|
||||||
fflush(file))
|
fflush(file))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user