Commit 05793bb9 authored by guilhem@mysql.com's avatar guilhem@mysql.com

Merge

parents 1cb5d98d 6412558d
...@@ -172,7 +172,7 @@ static char *shared_memory_base_name=0; ...@@ -172,7 +172,7 @@ static char *shared_memory_base_name=0;
#endif #endif
static uint opt_protocol=0; static uint opt_protocol=0;
static CHARSET_INFO *charset_info= &my_charset_latin1; static CHARSET_INFO *charset_info= &my_charset_latin1;
#include "sslopt-vars.h" #include "sslopt-vars.h"
const char *default_dbug_option="d:t:o,/tmp/mysql.trace"; 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"); ...@@ -1520,7 +1520,7 @@ You can turn off this feature to get a quicker startup with -A\n\n");
j=0; j=0;
while ((sql_field=mysql_fetch_field(fields))) 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); field_names[i][j] = strdup_root(&hash_mem_root,buf);
add_word(&ht,field_names[i][j]); add_word(&ht,field_names[i][j]);
field_names[i][num_fields+j] = strdup_root(&hash_mem_root, 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) ...@@ -1597,7 +1597,7 @@ int mysql_real_query_for_lazy(const char *buf, int length)
for (uint retry=0;; retry++) for (uint retry=0;; retry++)
{ {
if (!mysql_real_query(&mysql,buf,length)) if (!mysql_real_query(&mysql,buf,length))
return 0; return 0;
int error= put_error(&mysql); int error= put_error(&mysql);
if (mysql_errno(&mysql) != CR_SERVER_GONE_ERROR || retry > 1 || if (mysql_errno(&mysql) != CR_SERVER_GONE_ERROR || retry > 1 ||
!opt_reconnect) !opt_reconnect)
...@@ -2526,7 +2526,7 @@ com_connect(String *buffer, char *line) ...@@ -2526,7 +2526,7 @@ com_connect(String *buffer, char *line)
{ {
sprintf(buff,"Connection id: %lu",mysql_thread_id(&mysql)); sprintf(buff,"Connection id: %lu",mysql_thread_id(&mysql));
put_info(buff,INFO_INFO); put_info(buff,INFO_INFO);
sprintf(buff,"Current database: %s\n", sprintf(buff,"Current database: %.128s\n",
current_db ? current_db : "*** NONE ***"); current_db ? current_db : "*** NONE ***");
put_info(buff,INFO_INFO); put_info(buff,INFO_INFO);
} }
......
...@@ -2308,8 +2308,15 @@ static int start_transaction(MYSQL *mysql_con, my_bool consistent_read_now) ...@@ -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 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 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). 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, 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 ? consistent_read_now ?
"START TRANSACTION " "START TRANSACTION "
"WITH CONSISTENT SNAPSHOT" : "WITH CONSISTENT SNAPSHOT" :
......
...@@ -148,9 +148,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) ...@@ -148,9 +148,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
goto err; goto err;
} }
/* Don't call realpath() if the name can't be a link */ /* Don't call realpath() if the name can't be a link */
if (strcmp(name_buff, org_name)) if (strcmp(name_buff, org_name) ||
(void) my_readlink(index_name, org_name, MYF(0)); my_readlink(index_name, org_name, MYF(0)) == -1)
else
(void) strmov(index_name, org_name); (void) strmov(index_name, org_name);
(void) fn_format(data_name,org_name,"",MI_NAME_DEXT,2+4+16); (void) fn_format(data_name,org_name,"",MI_NAME_DEXT,2+4+16);
......
...@@ -528,7 +528,7 @@ Log_name Pos Event_type Server_id End_log_pos Info ...@@ -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 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) master-bin.000001 135 Query 1 218 use `test`; insert into t2 values (@v)
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!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; use test;
SET TIMESTAMP=10000; SET TIMESTAMP=10000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
......
...@@ -108,7 +108,8 @@ SET TIMESTAMP=10000; ...@@ -108,7 +108,8 @@ SET TIMESTAMP=10000;
SET @`a b`='hello'; SET @`a b`='hello';
INSERT INTO t1 VALUES(@`a b`); INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa"; set @var1= "';aaa";
insert into t1 values (@var1); SET @var2=char(ascii('a'));
insert into t1 values (@var1),(@var2);
show binlog events from 95; show binlog events from 95;
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we # more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
# absolutely need variables names to be quoted and strings to be # absolutely need variables names to be quoted and strings to be
......
...@@ -43,7 +43,7 @@ ndbapidoc-pdf: ndbapi.pdf ...@@ -43,7 +43,7 @@ ndbapidoc-pdf: ndbapi.pdf
ndbapi.html: $(noinst_HEADERS) ndbapi.html: $(noinst_HEADERS)
@set -x; \ @set -x; \
export NDB_RELEASE=$(NDB_RELEASE) \ export NDB_RELEASE=$(NDB_RELEASE); \
@RM@ -f ndbapi.pdf ndbapi.html; \ @RM@ -f ndbapi.pdf ndbapi.html; \
@RM@ -rf $(DOXYTMP) $(DOXYOUT); \ @RM@ -rf $(DOXYTMP) $(DOXYOUT); \
mkdir -p $(DOXYTMP) $(DOXYOUT); \ mkdir -p $(DOXYTMP) $(DOXYOUT); \
...@@ -70,7 +70,7 @@ mgmapidoc-pdf: mgmapi.pdf ...@@ -70,7 +70,7 @@ mgmapidoc-pdf: mgmapi.pdf
mgmapi.html: $(noinst_HEADERS) mgmapi.html: $(noinst_HEADERS)
@set -x; \ @set -x; \
export NDB_RELEASE=$(NDB_RELEASE) \ export NDB_RELEASE=$(NDB_RELEASE); \
@RM@ -f mgmapi.pdf mgmapi.html; \ @RM@ -f mgmapi.pdf mgmapi.html; \
@RM@ -rf $(DOXYTMP) $(DOXYOUT); \ @RM@ -rf $(DOXYTMP) $(DOXYOUT); \
mkdir -p $(DOXYTMP) $(DOXYOUT); \ mkdir -p $(DOXYTMP) $(DOXYOUT); \
......
...@@ -1424,6 +1424,7 @@ mysql_init(MYSQL *mysql) ...@@ -1424,6 +1424,7 @@ mysql_init(MYSQL *mysql)
bzero((char*) (mysql),sizeof(*(mysql))); bzero((char*) (mysql),sizeof(*(mysql)));
mysql->options.connect_timeout= CONNECT_TIMEOUT; mysql->options.connect_timeout= CONNECT_TIMEOUT;
mysql->last_used_con= mysql->next_slave= mysql->master = mysql; mysql->last_used_con= mysql->next_slave= mysql->master = mysql;
mysql->charset=default_charset_info;
strmov(mysql->net.sqlstate, not_error_sqlstate); strmov(mysql->net.sqlstate, not_error_sqlstate);
/* /*
By default, we are a replication pivot. The caller must reset it By default, we are a replication pivot. The caller must reset it
......
...@@ -3201,7 +3201,7 @@ void User_var_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* las ...@@ -3201,7 +3201,7 @@ void User_var_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* las
*/ */
fprintf(file, ":=???;\n"); fprintf(file, ":=???;\n");
else 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); my_afree(hex_str);
} }
break; break;
......
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