summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mysql.cc8
-rw-r--r--client/mysqldump.c7
-rw-r--r--myisam/mi_open.c5
-rw-r--r--mysql-test/r/ctype_ucs.result2
-rw-r--r--mysql-test/t/user_var.test3
-rw-r--r--ndb/docs/Makefile.am4
-rw-r--r--sql-common/client.c1
-rw-r--r--sql/log_event.cc2
8 files changed, 20 insertions, 12 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index 7e7b2e291d5..0f6f3084d1e 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -172,7 +172,7 @@ static char *shared_memory_base_name=0;
#endif
static uint opt_protocol=0;
static CHARSET_INFO *charset_info= &my_charset_latin1;
-
+
#include "sslopt-vars.h"
const char *default_dbug_option="d:t:o,/tmp/mysql.trace";
@@ -1520,7 +1520,7 @@ You can turn off this feature to get a quicker startup with -A\n\n");
j=0;
while ((sql_field=mysql_fetch_field(fields)))
{
- sprintf(buf,"%s.%s",table_row[0],sql_field->name);
+ sprintf(buf,"%.64s.%.64s",table_row[0],sql_field->name);
field_names[i][j] = strdup_root(&hash_mem_root,buf);
add_word(&ht,field_names[i][j]);
field_names[i][num_fields+j] = strdup_root(&hash_mem_root,
@@ -1597,7 +1597,7 @@ int mysql_real_query_for_lazy(const char *buf, int length)
for (uint retry=0;; retry++)
{
if (!mysql_real_query(&mysql,buf,length))
- return 0;
+ return 0;
int error= put_error(&mysql);
if (mysql_errno(&mysql) != CR_SERVER_GONE_ERROR || retry > 1 ||
!opt_reconnect)
@@ -2526,7 +2526,7 @@ com_connect(String *buffer, char *line)
{
sprintf(buff,"Connection id: %lu",mysql_thread_id(&mysql));
put_info(buff,INFO_INFO);
- sprintf(buff,"Current database: %s\n",
+ sprintf(buff,"Current database: %.128s\n",
current_db ? current_db : "*** NONE ***");
put_info(buff,INFO_INFO);
}
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 876e4ef55e1..458c8a3ecda 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -2308,8 +2308,15 @@ static int start_transaction(MYSQL *mysql_con, my_bool consistent_read_now)
We use BEGIN for old servers. --single-transaction --master-data will fail
on old servers, but that's ok as it was already silently broken (it didn't
do a consistent read, so better tell people frankly, with the error).
+
+ We want the first consistent read to be used for all tables to dump so we
+ need the REPEATABLE READ level (not anything lower, for example READ
+ COMMITTED would give one new consistent read per dumped table).
*/
return (mysql_query_with_error_report(mysql_con, 0,
+ "SET SESSION TRANSACTION ISOLATION "
+ "LEVEL REPEATABLE READ") ||
+ mysql_query_with_error_report(mysql_con, 0,
consistent_read_now ?
"START TRANSACTION "
"WITH CONSISTENT SNAPSHOT" :
diff --git a/myisam/mi_open.c b/myisam/mi_open.c
index ab76235e6ef..20eb4e636c3 100644
--- a/myisam/mi_open.c
+++ b/myisam/mi_open.c
@@ -148,9 +148,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
goto err;
}
/* Don't call realpath() if the name can't be a link */
- if (strcmp(name_buff, org_name))
- (void) my_readlink(index_name, org_name, MYF(0));
- else
+ if (strcmp(name_buff, org_name) ||
+ my_readlink(index_name, org_name, MYF(0)) == -1)
(void) strmov(index_name, org_name);
(void) fn_format(data_name,org_name,"",MI_NAME_DEXT,2+4+16);
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result
index 175a02b63f1..a6ca59fc62b 100644
--- a/mysql-test/r/ctype_ucs.result
+++ b/mysql-test/r/ctype_ucs.result
@@ -528,7 +528,7 @@ Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 95 User var 1 135 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
master-bin.000001 135 Query 1 218 use `test`; insert into t2 values (@v)
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET @`v`:=_ucs2 0x006100620063 COLLATE ucs2_general_ci;
+SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
use test;
SET TIMESTAMP=10000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test
index ae8e3ccf841..49cf981b966 100644
--- a/mysql-test/t/user_var.test
+++ b/mysql-test/t/user_var.test
@@ -108,7 +108,8 @@ SET TIMESTAMP=10000;
SET @`a b`='hello';
INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa";
-insert into t1 values (@var1);
+SET @var2=char(ascii('a'));
+insert into t1 values (@var1),(@var2);
show binlog events from 95;
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
# absolutely need variables names to be quoted and strings to be
diff --git a/ndb/docs/Makefile.am b/ndb/docs/Makefile.am
index cfcab70af9c..6d4cdc12cf6 100644
--- a/ndb/docs/Makefile.am
+++ b/ndb/docs/Makefile.am
@@ -43,7 +43,7 @@ ndbapidoc-pdf: ndbapi.pdf
ndbapi.html: $(noinst_HEADERS)
@set -x; \
- export NDB_RELEASE=$(NDB_RELEASE) \
+ export NDB_RELEASE=$(NDB_RELEASE); \
@RM@ -f ndbapi.pdf ndbapi.html; \
@RM@ -rf $(DOXYTMP) $(DOXYOUT); \
mkdir -p $(DOXYTMP) $(DOXYOUT); \
@@ -70,7 +70,7 @@ mgmapidoc-pdf: mgmapi.pdf
mgmapi.html: $(noinst_HEADERS)
@set -x; \
- export NDB_RELEASE=$(NDB_RELEASE) \
+ export NDB_RELEASE=$(NDB_RELEASE); \
@RM@ -f mgmapi.pdf mgmapi.html; \
@RM@ -rf $(DOXYTMP) $(DOXYOUT); \
mkdir -p $(DOXYTMP) $(DOXYOUT); \
diff --git a/sql-common/client.c b/sql-common/client.c
index 8259849cdbe..9dcf6b3e32c 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -1424,6 +1424,7 @@ mysql_init(MYSQL *mysql)
bzero((char*) (mysql),sizeof(*(mysql)));
mysql->options.connect_timeout= CONNECT_TIMEOUT;
mysql->last_used_con= mysql->next_slave= mysql->master = mysql;
+ mysql->charset=default_charset_info;
strmov(mysql->net.sqlstate, not_error_sqlstate);
/*
By default, we are a replication pivot. The caller must reset it
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 2fa4e09913e..5ee034d785e 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -3201,7 +3201,7 @@ void User_var_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* las
*/
fprintf(file, ":=???;\n");
else
- fprintf(file, ":=_%s %s COLLATE %s;\n", cs->csname, hex_str, cs->name);
+ fprintf(file, ":=_%s %s COLLATE `%s`;\n", cs->csname, hex_str, cs->name);
my_afree(hex_str);
}
break;