summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <cbell/Chuck@mysql_cab.>2006-11-02 09:10:06 -0500
committerunknown <cbell/Chuck@mysql_cab.>2006-11-02 09:10:06 -0500
commit408aa56f00fa78d05c3ff025a6f5675a1a633859 (patch)
treed74f8473ca998fef697b58229fd2ca33b9ce2a62
parent82e8dfd52139368a558190fb986d1cbf1e8b45d4 (diff)
parentb9c97546d3111759ef0c4525182932860ac88922 (diff)
downloadmariadb-git-408aa56f00fa78d05c3ff025a6f5675a1a633859.tar.gz
Merge cbell@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into mysql_cab.:C:/source/c++/mysql-5.1-BUG_23735
-rw-r--r--client/mysqlbinlog.cc15
-rw-r--r--sql/log_event.cc4
-rw-r--r--sql/sql_class.cc8
3 files changed, 21 insertions, 6 deletions
diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc
index ab94c415db7..660be6bce50 100644
--- a/client/mysqlbinlog.cc
+++ b/client/mysqlbinlog.cc
@@ -1360,6 +1360,21 @@ static int dump_local_log_entries(const char* logname)
}
else // reading from stdin;
{
+ /*
+ Windows opens stdin in text mode by default. Certain characters
+ such as CTRL-Z are interpeted as events and the read() method
+ will stop. CTRL-Z is the EOF marker in Windows. to get past this
+ you have to open stdin in binary mode. Setmode() is used to set
+ stdin in binary mode. Errors on setting this mode result in
+ halting the function and printing an error message to stderr.
+ */
+#if defined (__WIN__) || (_WIN64)
+ if (_setmode(fileno(stdin), O_BINARY) == -1)
+ {
+ fprintf(stderr, "Could not set binary mode on stdin.\n");
+ return 1;
+ }
+#endif
if (init_io_cache(file, fileno(stdin), 0, READ_CACHE, (my_off_t) 0,
0, MYF(MY_WME | MY_NABP | MY_DONT_CHECK_FILESIZE)))
return 1;
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 4a6346bf57c..d48662f13bf 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -7129,8 +7129,8 @@ int Update_rows_log_event::do_prepare_row(THD *thd, RELAY_LOG_INFO *rli,
row_start, &m_cols, row_end, &m_master_reclength,
table->write_set, UPDATE_ROWS_EVENT);
- DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
- DBUG_DUMP("m_after_image", m_after_image, table->s->reclength);
+ DBUG_DUMP("record[0]", (char *)table->record[0], table->s->reclength);
+ DBUG_DUMP("m_after_image", (char *)m_after_image, table->s->reclength);
/*
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 3fd0e621422..cf2e462cb68 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -2632,10 +2632,10 @@ int THD::binlog_update_row(TABLE* table, bool is_trans,
my_size_t const after_size= pack_row(table, cols, after_row,
after_record);
- DBUG_DUMP("before_record", before_record, table->s->reclength);
- DBUG_DUMP("after_record", after_record, table->s->reclength);
- DBUG_DUMP("before_row", before_row, before_size);
- DBUG_DUMP("after_row", after_row, after_size);
+ DBUG_DUMP("before_record", (char *)before_record, table->s->reclength);
+ DBUG_DUMP("after_record", (char *)after_record, table->s->reclength);
+ DBUG_DUMP("before_row", (char *)before_row, before_size);
+ DBUG_DUMP("after_row", (char *)after_row, after_size);
Rows_log_event* const ev=
binlog_prepare_pending_rows_event(table, server_id, cols, colcnt,