summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-03-29 19:40:56 +0100
committerSergei Golubchik <serg@mariadb.org>2019-03-29 19:41:41 +0100
commit4e1d3f83b79cd5f3a920937b462e585fdfb5a35d (patch)
tree07e099b50109bd09ff8a5267c5cb5e0bf89597b4 /sql
parenta82cfe109cbc033253ddaba82f9c2de663601002 (diff)
parentcc71e7501cb623b2d600c47dbe10a31dcf6e8fcf (diff)
downloadmariadb-git-4e1d3f83b79cd5f3a920937b462e585fdfb5a35d.tar.gz
Merge branch '10.2' into 10.3
Diffstat (limited to 'sql')
-rw-r--r--sql/field.cc7
-rw-r--r--sql/log.cc6
-rw-r--r--sql/share/errmsg-utf8.txt27
-rw-r--r--sql/slave.cc6
-rw-r--r--sql/sp_head.cc1
-rw-r--r--sql/spatial.cc12
-rw-r--r--sql/sql_admin.cc6
-rw-r--r--sql/sql_class.cc20
-rw-r--r--sql/sql_statistics.cc10
-rw-r--r--sql/sql_table.cc5
-rw-r--r--sql/winservice.c2
-rw-r--r--sql/wsrep_sst.cc4
12 files changed, 40 insertions, 66 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 61213fa8569..0f75772e485 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -6958,8 +6958,11 @@ Field_longstr::check_string_copy_error(const String_copier *copier,
if (likely(!(pos= copier->most_important_error_pos())))
return FALSE;
- convert_to_printable(tmp, sizeof(tmp), pos, (end - pos), cs, 6);
- set_warning_truncated_wrong_value("string", tmp);
+ if (!is_stat_field)
+ {
+ convert_to_printable(tmp, sizeof(tmp), pos, (end - pos), cs, 6);
+ set_warning_truncated_wrong_value("string", tmp);
+ }
return TRUE;
}
diff --git a/sql/log.cc b/sql/log.cc
index 23ef3152843..92b2061d4bf 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -9687,9 +9687,9 @@ TC_LOG_BINLOG::log_and_order(THD *thd, my_xid xid, bool all,
*/
if (!xid || !need_unlog)
DBUG_RETURN(BINLOG_COOKIE_DUMMY(cache_mngr->delayed_error));
- else
- DBUG_RETURN(BINLOG_COOKIE_MAKE(cache_mngr->binlog_id,
- cache_mngr->delayed_error));
+
+ DBUG_RETURN(BINLOG_COOKIE_MAKE(cache_mngr->binlog_id,
+ cache_mngr->delayed_error));
}
/*
diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt
index ba0529f28e2..3c646423f59 100644
--- a/sql/share/errmsg-utf8.txt
+++ b/sql/share/errmsg-utf8.txt
@@ -2377,31 +2377,8 @@ ER_TABLE_NOT_LOCKED
spa "Tabla '%-.192s' no fue trabada con LOCK TABLES"
swe "Tabell '%-.192s' är inte låst med LOCK TABLES"
ukr "Таблицю '%-.192s' не було блоковано з LOCK TABLES"
-ER_BLOB_CANT_HAVE_DEFAULT 42000
- cze "Blob položka '%-.192s' nemůže mít defaultní hodnotu"
- dan "BLOB feltet '%-.192s' kan ikke have en standard værdi"
- nla "Blob veld '%-.192s' can geen standaardwaarde bevatten"
- eng "BLOB/TEXT column '%-.192s' can't have a default value"
- est "BLOB-tüüpi tulp '%-.192s' ei saa omada vaikeväärtust"
- fre "BLOB '%-.192s' ne peut avoir de valeur par défaut"
- ger "BLOB/TEXT-Feld '%-.192s' darf keinen Vorgabewert (DEFAULT) haben"
- greek "Τα Blob πεδία '%-.192s' δεν μπορούν να έχουν προκαθορισμένες τιμές (default value)"
- hindi "BLOB/TEXT कॉलम '%-.192s' का डिफ़ॉल्ट मान नहीं हो सकता"
- hun "A(z) '%-.192s' blob objektumnak nem lehet alapertelmezett erteke"
- ita "Il campo BLOB '%-.192s' non puo` avere un valore di default"
- jpn "BLOB/TEXT 列 '%-.192s' にはデフォルト値を指定できません。"
- kor "BLOB 칼럼 '%-.192s' 는 디폴트 값을 가질 수 없습니다."
- nor "Blob feltet '%-.192s' kan ikke ha en standard verdi"
- norwegian-ny "Blob feltet '%-.192s' kan ikkje ha ein standard verdi"
- pol "Pole typu blob '%-.192s' nie może mieć domy?lnej warto?ci"
- por "Coluna BLOB '%-.192s' não pode ter um valor padrão (default)"
- rum "Coloana BLOB '%-.192s' nu poate avea o valoare default"
- rus "Невозможно указывать значение по умолчанию для столбца BLOB '%-.192s'"
- serbian "BLOB kolona '%-.192s' ne može imati default vrednost"
- slo "Pole BLOB '%-.192s' nemôže mať implicitnú hodnotu"
- spa "Campo Blob '%-.192s' no puede tener valores patron"
- swe "BLOB fält '%-.192s' kan inte ha ett DEFAULT-värde"
- ukr "Стовбець BLOB '%-.192s' не може мати значення по замовчуванню"
+ER_UNUSED_17
+ eng "You should never see it"
ER_WRONG_DB_NAME 42000
cze "Nepřípustné jméno databáze '%-.100s'"
dan "Ugyldigt database navn '%-.100s'"
diff --git a/sql/slave.cc b/sql/slave.cc
index 16fa890d86c..604c1de29a7 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -3879,12 +3879,6 @@ apply_event_and_update_pos_setup(Log_event* ev, THD* thd, rpl_group_info *rgi)
thd->variables.server_id = ev->server_id;
thd->set_time(); // time the query
thd->lex->current_select= 0;
- if (!ev->when)
- {
- my_hrtime_t hrtime= my_hrtime();
- ev->when= hrtime_to_my_time(hrtime);
- ev->when_sec_part= hrtime_sec_part(hrtime);
- }
thd->variables.option_bits=
(thd->variables.option_bits & ~OPTION_SKIP_REPLICATION) |
(ev->flags & LOG_EVENT_SKIP_REPLICATION_F ? OPTION_SKIP_REPLICATION : 0);
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index 28411509adf..3c57a29105d 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -552,6 +552,7 @@ sp_head::sp_head(sp_package *parent, const Sp_handler *sph)
DBUG_ENTER("sp_head::sp_head");
+ m_security_ctx.init();
m_backpatch.empty();
m_backpatch_goto.empty();
m_cont_backpatch.empty();
diff --git a/sql/spatial.cc b/sql/spatial.cc
index a8a70d0763b..3514a519db7 100644
--- a/sql/spatial.cc
+++ b/sql/spatial.cc
@@ -238,17 +238,17 @@ int Geometry::as_wkt(String *wkt, const char **end)
static const uchar type_keyname[]= "type";
-static const int type_keyname_len= 4;
+static const uint type_keyname_len= 4;
static const uchar coord_keyname[]= "coordinates";
-static const int coord_keyname_len= 11;
+static const uint coord_keyname_len= 11;
static const uchar geometries_keyname[]= "geometries";
-static const int geometries_keyname_len= 10;
+static const uint geometries_keyname_len= 10;
static const uchar features_keyname[]= "features";
-static const int features_keyname_len= 8;
+static const uint features_keyname_len= 8;
static const uchar geometry_keyname[]= "geometry";
-static const int geometry_keyname_len= 8;
+static const uint geometry_keyname_len= 8;
-static const int max_keyname_len= 11; /*'coordinates' keyname is the longest.*/
+static const uint max_keyname_len= 11; /*'coordinates' keyname is the longest.*/
static const uchar feature_type[]= "feature";
static const int feature_type_len= 7;
diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc
index 4afe34ba18d..853b34f8ad2 100644
--- a/sql/sql_admin.cc
+++ b/sql/sql_admin.cc
@@ -566,7 +566,8 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
if (!table->table->part_info)
{
my_error(ER_PARTITION_MGMT_ON_NONPARTITIONED, MYF(0));
- goto err2;
+ thd->resume_subsequent_commits(suspended_wfc);
+ DBUG_RETURN(TRUE);
}
if (set_part_state(alter_info, table->table->part_info, PART_ADMIN))
{
@@ -1219,9 +1220,6 @@ err:
}
close_thread_tables(thd); // Shouldn't be needed
thd->mdl_context.release_transactional_locks();
-#ifdef WITH_PARTITION_STORAGE_ENGINE
-err2:
-#endif
thd->resume_subsequent_commits(suspended_wfc);
DBUG_RETURN(TRUE);
}
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 051abb66c0c..c26aaff10d8 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -6061,16 +6061,18 @@ int THD::decide_logging_format(TABLE_LIST *tables)
replicated_tables_count++;
- if (table->lock_type <= TL_READ_NO_INSERT &&
- table->prelocking_placeholder != TABLE_LIST::PRELOCK_FK)
- has_read_tables= true;
- else if (table->table->found_next_number_field &&
- (table->lock_type >= TL_WRITE_ALLOW_WRITE))
+ if (table->prelocking_placeholder != TABLE_LIST::PRELOCK_FK)
{
- has_auto_increment_write_tables= true;
- has_auto_increment_write_tables_not_first= found_first_not_own_table;
- if (table->table->s->next_number_keypart != 0)
- has_write_table_auto_increment_not_first_in_pk= true;
+ if (table->lock_type <= TL_READ_NO_INSERT)
+ has_read_tables= true;
+ else if (table->table->found_next_number_field &&
+ (table->lock_type >= TL_WRITE_ALLOW_WRITE))
+ {
+ has_auto_increment_write_tables= true;
+ has_auto_increment_write_tables_not_first= found_first_not_own_table;
+ if (table->table->s->next_number_keypart != 0)
+ has_write_table_auto_increment_not_first_in_pk= true;
+ }
}
if (table->lock_type >= TL_WRITE_ALLOW_WRITE)
diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc
index 2384c68115b..11fd7765e03 100644
--- a/sql/sql_statistics.cc
+++ b/sql/sql_statistics.cc
@@ -1058,7 +1058,9 @@ public:
else
{
table_field->collected_stats->min_value->val_str(&val);
- stat_field->store(val.ptr(), val.length(), &my_charset_bin);
+ size_t length= Well_formed_prefix(val.charset(), val.ptr(),
+ MY_MIN(val.length(), stat_field->field_length)).length();
+ stat_field->store(val.ptr(), length, &my_charset_bin);
}
break;
case COLUMN_STAT_MAX_VALUE:
@@ -1067,7 +1069,9 @@ public:
else
{
table_field->collected_stats->max_value->val_str(&val);
- stat_field->store(val.ptr(), val.length(), &my_charset_bin);
+ size_t length= Well_formed_prefix(val.charset(), val.ptr(),
+ MY_MIN(val.length(), stat_field->field_length)).length();
+ stat_field->store(val.ptr(), length, &my_charset_bin);
}
break;
case COLUMN_STAT_NULLS_RATIO:
@@ -3053,7 +3057,7 @@ int read_statistics_for_table(THD *thd, TABLE *table, TABLE_LIST *stat_tables)
}
}
}
-
+
table->stats_is_read= TRUE;
DBUG_RETURN(0);
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index b2d9ea3bdaf..a28d5807ce4 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -8164,11 +8164,6 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
}
if (alter)
{
- if (def->real_field_type() == MYSQL_TYPE_BLOB)
- {
- my_error(ER_BLOB_CANT_HAVE_DEFAULT, MYF(0), def->change.str);
- goto err;
- }
if ((def->default_value= alter->default_value)) // Use new default
def->flags&= ~NO_DEFAULT_VALUE_FLAG;
else
diff --git a/sql/winservice.c b/sql/winservice.c
index 388ea886cea..5e021c0e297 100644
--- a/sql/winservice.c
+++ b/sql/winservice.c
@@ -108,7 +108,7 @@ BOOL exclude_service(mysqld_service_properties *props)
}
if ((props->version_major == 0) ||
(props->version_major > 5 && props->version_major < 10) ||
- (props->version_major == 5 && props->version_minor > 6))
+ (props->version_major == 5 && props->version_minor > 7))
{
return TRUE;
}
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc
index 902d78a2f33..92ca8fa748d 100644
--- a/sql/wsrep_sst.cc
+++ b/sql/wsrep_sst.cc
@@ -220,7 +220,7 @@ bool wsrep_sst_wait ()
total_wtime += difftime(end_time, start_time);
WSREP_DEBUG("Waiting for SST to complete. current seqno: %" PRId64 " waited %f secs.", local_seqno, total_wtime);
service_manager_extend_timeout(WSREP_EXTEND_TIMEOUT_INTERVAL,
- "WSREP state transfer ongoing, current seqno: %ld waited %f secs", local_seqno, total_wtime);
+ "WSREP state transfer ongoing, current seqno: %" PRId64 " waited %f secs", local_seqno, total_wtime);
}
}
@@ -1472,7 +1472,7 @@ void wsrep_SE_init_wait()
total_wtime += difftime(end_time, start_time);
WSREP_DEBUG("Waiting for SST to complete. current seqno: %" PRId64 " waited %f secs.", local_seqno, total_wtime);
service_manager_extend_timeout(WSREP_EXTEND_TIMEOUT_INTERVAL,
- "WSREP state transfer ongoing, current seqno: %ld waited %f secs", local_seqno, total_wtime);
+ "WSREP state transfer ongoing, current seqno: %" PRId64 " waited %f secs", local_seqno, total_wtime);
}
}