summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2022-04-13 15:37:46 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2022-04-13 15:37:46 +0200
commitf130a5ea3c1cc504acecbad7615fb27c6e28dbfa (patch)
treeb9a00077add15d4016e8b315d69e31a8565f1657
parente4835bf572e2f119a257ca42a8042765e8bc9dee (diff)
downloadmariadb-git-f130a5ea3c1cc504acecbad7615fb27c6e28dbfa.tar.gz
MDEV-28266 Crash in Field_string::type_handler when calling procedures
on_table_fill_finished() should always be done at the end of open() even if result is not Select_materialize but (for example) Select_fetch_into_spvars.
-rw-r--r--sql/sql_cursor.cc16
1 files changed, 3 insertions, 13 deletions
diff --git a/sql/sql_cursor.cc b/sql/sql_cursor.cc
index 8f41fe7c70d..7d66bd69228 100644
--- a/sql/sql_cursor.cc
+++ b/sql/sql_cursor.cc
@@ -80,19 +80,7 @@ public:
Select_materialize(THD *thd_arg, select_result *result_arg):
select_unit(thd_arg), result(result_arg), materialized_cursor(0) {}
virtual bool send_result_set_metadata(List<Item> &list, uint flags);
- bool send_eof()
- {
- if (materialized_cursor)
- materialized_cursor->on_table_fill_finished();
- return false;
- }
-
- void abort_result_set()
- {
- if (materialized_cursor)
- materialized_cursor->on_table_fill_finished();
- }
-
+ bool send_eof() { return false; }
bool view_structure_only() const
{
return result->view_structure_only();
@@ -334,6 +322,8 @@ int Materialized_cursor::open(JOIN *join __attribute__((unused)))
result->abort_result_set();
}
+ on_table_fill_finished();
+
return rc;
}