summaryrefslogtreecommitdiff
path: root/sql/sql_view.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2015-11-06 16:36:41 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2015-11-09 16:08:06 +0100
commit7e4da9b370d032db9015adb47ad2ff585aeaea5d (patch)
tree3bb50a0b8369545517f537e2885436ee7e6af3ca /sql/sql_view.cc
parent5d754fce95fa378027d1b575d049ab6b78823bb7 (diff)
downloadmariadb-git-7e4da9b370d032db9015adb47ad2ff585aeaea5d.tar.gz
DEV-8632 Segmentation fault on INSERT
View/derived fields should be taken into account when we build ref_pointer_array constructed. DBUG_ASSERTs added to avoid memory overrun.
Diffstat (limited to 'sql/sql_view.cc')
-rw-r--r--sql/sql_view.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 255f876e02a..e6c5ffddfcf 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -1520,6 +1520,11 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table,
*/
lex->sql_command= old_lex->sql_command;
lex->duplicates= old_lex->duplicates;
+
+ /* Fields in this view can be used in upper select in case of merge. */
+ if (table->select_lex)
+ table->select_lex->select_n_where_fields+=
+ lex->select_lex.select_n_where_fields;
}
/*
This method has a dependency on the proper lock type being set,