summaryrefslogtreecommitdiff
path: root/sql/sql_derived.cc
diff options
context:
space:
mode:
authorVarun Gupta <varun.gupta@mariadb.com>2021-01-12 11:50:31 +0530
committerVarun Gupta <varun.gupta@mariadb.com>2021-01-12 11:50:31 +0530
commitffc384e044d8e312cad13b67b9ae27878804336c (patch)
treeaf464f441aa83d6444ebc9d2df36f9552c483443 /sql/sql_derived.cc
parentfd5e103aa4b97e080dd497b93992e5f32ef83fdf (diff)
downloadmariadb-git-ffc384e044d8e312cad13b67b9ae27878804336c.tar.gz
MDEV-23804: Server crashes in st_select_lex::collect_grouping_fields_for_derivedbb-10.4-varun
The issue here was we were trying to push an extracted condition for a view into the underlying table value constructor inside the view. The fix would be to not push conditions into table value constructors.
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r--sql/sql_derived.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index dc079ba6f16..500cb43339e 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -1453,6 +1453,8 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
for (; sl; sl= sl->next_select())
{
Item *extracted_cond_copy;
+ if (!sl->cond_pushdown_is_allowed())
+ continue;
/*
For each select of the unit except the last one
create a clone of extracted_cond