diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2021-04-13 12:34:14 +0300 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2021-04-21 10:21:47 +0400 |
commit | a96408092c38800c2befadaec64bc8ab71fe4b41 (patch) | |
tree | 41cc5dc78112923660337c0402b7d61d726a1313 /sql/json_table.cc | |
parent | f82947e48d689bcc175c21bea2aa6458934682d0 (diff) | |
download | mariadb-git-a96408092c38800c2befadaec64bc8ab71fe4b41.tar.gz |
MDEV-25397: JSON_TABLE: Unexpected ER_MIX_OF_GROUP_FUNC_AND_FIELDS
When doing name resolution, do the same what WHERE/ON clauses do:
they don't count in select_lex->non_agg_field_used().
Diffstat (limited to 'sql/json_table.cc')
-rw-r--r-- | sql/json_table.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/json_table.cc b/sql/json_table.cc index fe76f9c44f0..000af50c391 100644 --- a/sql/json_table.cc +++ b/sql/json_table.cc @@ -1055,9 +1055,15 @@ int Table_function_json_table::setup(THD *thd, TABLE_LIST *sql_table, // table function reference m_context->ignored_tables= get_disallowed_table_deps(s_lex->join, t->map); + // Do the same what setup_without_group() does: do not count the referred + // fields in non_agg_field_used: + const bool saved_non_agg_field_used= s_lex->non_agg_field_used(); + res= m_json->fix_fields_if_needed(thd, &m_json); thd->lex->current_select->is_item_list_lookup= save_is_item_list_lookup; + s_lex->set_non_agg_field_used(saved_non_agg_field_used); + if (res) return TRUE; } |