summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 8bdab4f4fab..a06834afd8b 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -3347,7 +3347,7 @@ class Vcol_expr_context
bool inited;
THD *thd;
TABLE *table;
- Query_arena backup_arena;
+ Query_arena backup_arena, *stmt_arena;
table_map old_map;
Security_context *save_security_ctx;
sql_mode_t save_sql_mode;
@@ -3357,6 +3357,7 @@ public:
inited(false),
thd(_thd),
table(_table),
+ stmt_arena(thd->stmt_arena),
old_map(table->map),
save_security_ctx(thd->security_ctx),
save_sql_mode(thd->variables.sql_mode) {}
@@ -3377,6 +3378,7 @@ bool Vcol_expr_context::init()
thd->security_ctx= tl->security_ctx;
thd->set_n_backup_active_arena(table->expr_arena, &backup_arena);
+ thd->stmt_arena= thd;
inited= true;
return false;
@@ -3390,6 +3392,7 @@ Vcol_expr_context::~Vcol_expr_context()
thd->security_ctx= save_security_ctx;
thd->restore_active_arena(table->expr_arena, &backup_arena);
thd->variables.sql_mode= save_sql_mode;
+ thd->stmt_arena= stmt_arena;
}