Commit 7b5020b2 authored by ulli@morbus.(none)'s avatar ulli@morbus.(none)

Merge ubayer@bk-internal.mysql.com:/home/bk/mysql-4.0

into morbus.(none):/home/ulli/work/mysql-4.0
parents 709a5d6a e022ba60
...@@ -2,6 +2,7 @@ Administrador@light. ...@@ -2,6 +2,7 @@ Administrador@light.
Administrator@co3064164-a. Administrator@co3064164-a.
Administrator@co3064164-a.rochd1.qld.optushome.com.au Administrator@co3064164-a.rochd1.qld.optushome.com.au
Administrator@fred. Administrator@fred.
Greg@greg-laptop.
Miguel@light.local Miguel@light.local
Sinisa@sinisa.nasamreza.org Sinisa@sinisa.nasamreza.org
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
......
...@@ -280,10 +280,6 @@ SOURCE=.\mtr\mtr0mtr.c ...@@ -280,10 +280,6 @@ SOURCE=.\mtr\mtr0mtr.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\odbc\odbc0odbc.c
# End Source File
# Begin Source File
SOURCE=.\os\os0file.c SOURCE=.\os\os0file.c
# End Source File # End Source File
# Begin Source File # Begin Source File
......
...@@ -463,6 +463,10 @@ SOURCE=..\strings\strxmov.c ...@@ -463,6 +463,10 @@ SOURCE=..\strings\strxmov.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\strings\strxnmov.c
# End Source File
# Begin Source File
SOURCE=..\mysys\thr_mutex.c SOURCE=..\mysys\thr_mutex.c
# End Source File # End Source File
# Begin Source File # Begin Source File
......
...@@ -77,8 +77,8 @@ index record. This is only used in foreign key checks and we can assume ...@@ -77,8 +77,8 @@ index record. This is only used in foreign key checks and we can assume
that index does not contain column prefixes. */ that index does not contain column prefixes. */
static static
ibool ibool
row_upd_changes_first_fields( row_upd_changes_first_fields_binary(
/*=========================*/ /*================================*/
/* out: TRUE if changes */ /* out: TRUE if changes */
dtuple_t* entry, /* in: old value of index entry */ dtuple_t* entry, /* in: old value of index entry */
dict_index_t* index, /* in: index of entry */ dict_index_t* index, /* in: index of entry */
...@@ -196,7 +196,7 @@ row_upd_check_references_constraints( ...@@ -196,7 +196,7 @@ row_upd_check_references_constraints(
if (foreign->referenced_index == index if (foreign->referenced_index == index
&& (node->is_delete && (node->is_delete
|| row_upd_changes_first_fields(entry, index, || row_upd_changes_first_fields_binary(entry, index,
node->update, foreign->n_fields))) { node->update, foreign->n_fields))) {
if (foreign->foreign_table == NULL) { if (foreign->foreign_table == NULL) {
...@@ -1048,8 +1048,8 @@ index record. This is only used in foreign key checks and we can assume ...@@ -1048,8 +1048,8 @@ index record. This is only used in foreign key checks and we can assume
that index does not contain column prefixes. */ that index does not contain column prefixes. */
static static
ibool ibool
row_upd_changes_first_fields( row_upd_changes_first_fields_binary(
/*=========================*/ /*================================*/
/* out: TRUE if changes */ /* out: TRUE if changes */
dtuple_t* entry, /* in: index entry */ dtuple_t* entry, /* in: index entry */
dict_index_t* index, /* in: index of entry */ dict_index_t* index, /* in: index of entry */
...@@ -1074,15 +1074,16 @@ row_upd_changes_first_fields( ...@@ -1074,15 +1074,16 @@ row_upd_changes_first_fields(
col = dict_field_get_col(ind_field); col = dict_field_get_col(ind_field);
col_pos = dict_col_get_clust_pos(col); col_pos = dict_col_get_clust_pos(col);
ut_a(ind_field->prefix_len == 0);
for (j = 0; j < n_upd_fields; j++) { for (j = 0; j < n_upd_fields; j++) {
upd_field = upd_get_nth_field(update, j); upd_field = upd_get_nth_field(update, j);
if (col_pos == upd_field->field_no if (col_pos == upd_field->field_no
&& (ind_field->prefix_len > 0 && !dfield_datas_are_binary_equal(
|| 0 != cmp_dfield_dfield(
dtuple_get_nth_field(entry, i), dtuple_get_nth_field(entry, i),
&(upd_field->new_val)))) { &(upd_field->new_val))) {
return(TRUE); return(TRUE);
} }
} }
......
...@@ -10,4 +10,4 @@ reset slave; ...@@ -10,4 +10,4 @@ reset slave;
start slave; start slave;
show slave status; show slave status;
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 Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 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 Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
127.0.0.1 root MASTER_PORT 1 master-bin.002 4 slave-relay-bin.002 161 master-bin.001 Yes No 0 Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. Probably cause is that the master died while writing the transaction to it's binary log. 0 79 # 127.0.0.1 root MASTER_PORT 1 master-bin.002 4 slave-relay-bin.002 120 master-bin.001 Yes No 0 Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. A probable cause is that the master died while writing the transaction to its binary log. 0 79 #
...@@ -1556,7 +1556,7 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len, ...@@ -1556,7 +1556,7 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len,
We must make copy of 'buf' as this event may have to live over a We must make copy of 'buf' as this event may have to live over a
rotate log entry when used in mysqlbinlog rotate log entry when used in mysqlbinlog
*/ */
if (!(event_buf= my_memdup(buf, len, MYF(MY_WME))) || if (!(event_buf= my_memdup((byte*) buf, len, MYF(MY_WME))) ||
(copy_log_event(event_buf, len, old_format))) (copy_log_event(event_buf, len, old_format)))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
...@@ -2121,7 +2121,7 @@ int Start_log_event::exec_event(struct st_relay_log_info* rli) ...@@ -2121,7 +2121,7 @@ int Start_log_event::exec_event(struct st_relay_log_info* rli)
slave_print_error(rli, 0, slave_print_error(rli, 0,
"\ "\
Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. \ Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. \
Probably cause is that the master died while writing the transaction to it's \ A probable cause is that the master died while writing the transaction to its \
binary log."); binary log.");
return(1); return(1);
} }
...@@ -2221,13 +2221,15 @@ int Rotate_log_event::exec_event(struct st_relay_log_info* rli) ...@@ -2221,13 +2221,15 @@ int Rotate_log_event::exec_event(struct st_relay_log_info* rli)
In that case, we don't want to touch the coordinates which correspond to the In that case, we don't want to touch the coordinates which correspond to the
beginning of the transaction. beginning of the transaction.
*/ */
if (!rli->inside_transaction) if (rli->inside_transaction)
rli->inc_pending(get_event_len());
else
{ {
memcpy(rli->master_log_name, new_log_ident, ident_len+1); memcpy(rli->master_log_name, new_log_ident, ident_len+1);
rli->master_log_pos= pos; rli->master_log_pos= pos;
rli->relay_log_pos += get_event_len();
DBUG_PRINT("info", ("master_log_pos: %lu", (ulong) rli->master_log_pos)); DBUG_PRINT("info", ("master_log_pos: %lu", (ulong) rli->master_log_pos));
} }
rli->relay_log_pos += get_event_len();
pthread_mutex_unlock(&rli->data_lock); pthread_mutex_unlock(&rli->data_lock);
pthread_cond_broadcast(&rli->data_cond); pthread_cond_broadcast(&rli->data_cond);
flush_relay_log_info(rli); flush_relay_log_info(rli);
......
...@@ -1176,7 +1176,7 @@ static void server_init(void) ...@@ -1176,7 +1176,7 @@ static void server_init(void)
pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */ pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */
strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\.\\pipe\\", strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\.\\pipe\\",
unix_socket, NullS); mysql_unix_port, NullS);
bzero((char*) &saPipeSecurity, sizeof(saPipeSecurity) ); bzero((char*) &saPipeSecurity, sizeof(saPipeSecurity) );
bzero((char*) &sdPipeDescriptor, sizeof(sdPipeDescriptor) ); bzero((char*) &sdPipeDescriptor, sizeof(sdPipeDescriptor) );
if (!InitializeSecurityDescriptor(&sdPipeDescriptor, if (!InitializeSecurityDescriptor(&sdPipeDescriptor,
......
...@@ -2414,9 +2414,9 @@ get_quick_keys(PARAM *param,QUICK_SELECT *quick,KEY_PART *key, ...@@ -2414,9 +2414,9 @@ get_quick_keys(PARAM *param,QUICK_SELECT *quick,KEY_PART *key,
} }
/* Get range for retrieving rows in QUICK_SELECT::get_next */ /* Get range for retrieving rows in QUICK_SELECT::get_next */
if (!(range= new QUICK_RANGE(param->min_key, if (!(range= new QUICK_RANGE((const char *) param->min_key,
(uint) (tmp_min_key - param->min_key), (uint) (tmp_min_key - param->min_key),
param->max_key, (const char *) param->max_key,
(uint) (tmp_max_key - param->max_key), (uint) (tmp_max_key - param->max_key),
flag))) flag)))
return 1; // out of memory return 1; // out of memory
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment