Skip to content

Commit 3388c2a

Browse files
Merge pull request #5643 from kamil-holubicki/PS-9647-deque-8.0-post-push-fix
(8.0) PS-9647: MySQL Perf Improvements (deque)
2 parents 013a955 + 59b4d08 commit 3388c2a

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

include/mem_root_deque.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,15 @@ class mem_root_deque {
110110

111111
size_t size() const { return list_.size(); }
112112

113-
void push_back(const T &value) { list_.push_back(value); }
113+
bool push_back(const T &value) {
114+
list_.push_back(value);
115+
return false;
116+
}
114117

115-
void push_front(const T &value) { list_.push_front(value); }
118+
bool push_front(const T &value) {
119+
list_.push_front(value);
120+
return false;
121+
}
116122

117123
void pop_back() {
118124
if (!list_.empty()) {

sql/sql_derived.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,9 +545,10 @@ bool copy_field_info(THD *thd, Item *orig_expr, Item *cloned_expr) {
545545
}
546546
if (inner_item->type() == Item::FIELD_ITEM) {
547547
Item_field *field = down_cast<Item_field *>(inner_item);
548-
field_info.push_back(
549-
Field_info(context, field->table_ref, depended_from,
550-
field->cached_table, field->field));
548+
if (field_info.push_back(
549+
Field_info(context, field->table_ref, depended_from,
550+
field->cached_table, field->field)))
551+
return true;
551552
}
552553
return false;
553554
}))

sql/sql_executor.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4344,7 +4344,7 @@ bool change_to_use_tmp_fields(mem_root_deque<Item *> *fields, THD *thd,
43444344
Item_field *new_field = new Item_field(field);
43454345
if (!suv || !new_field) return true; // Fatal error
43464346
mem_root_deque<Item *> list(thd->mem_root);
4347-
list.push_back(new_field);
4347+
if (list.push_back(new_field)) return true;
43484348
if (suv->set_arguments(&list, true)) return true;
43494349
new_item = suv;
43504350
} else

sql/sql_update.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,8 +2126,7 @@ static bool AddRowIdAsTempTableField(THD *thd, TABLE *table,
21262126
Item_field *ifield = new (thd->mem_root) Item_field(field);
21272127
if (ifield == nullptr) return true;
21282128
ifield->set_nullable(false);
2129-
fields->push_back(ifield);
2130-
return false;
2129+
return fields->push_back(ifield);
21312130
}
21322131

21332132
/// Stores the current row ID of "table" in the specified field of "tmp_table".

0 commit comments

Comments
 (0)