summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 8e07349d600..17922b87b53 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1740,6 +1740,19 @@ int ha_commit_trans(THD *thd, bool all)
thd->lex->alter_info.flags & ALTER_ADD_SYSTEM_VERSIONING &&
is_real_trans))
{
+ /*
+ Apply buffered insert operation at the end of single
+ statement commit operation.
+ */
+ for (Ha_trx_info *ha_info= trans->ha_list; ha_info;
+ ha_info= ha_info->next())
+ {
+ if (!ha_info->ht()->bulk_insert_write ||
+ !ha_info->ht()->bulk_insert_write(thd))
+ continue;
+ goto err;
+ }
+
ulonglong trx_start_id= 0, trx_end_id= 0;
for (Ha_trx_info *ha_info= trans->ha_list; ha_info; ha_info= ha_info->next())
{