mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '11.1' into 11.2
This commit is contained in:
@@ -5488,6 +5488,9 @@ void st_select_lex::update_correlated_cache()
|
||||
|
||||
while ((tl= ti++))
|
||||
{
|
||||
if (tl->table_function)
|
||||
is_correlated|= MY_TEST(tl->table_function->used_tables() &
|
||||
OUTER_REF_TABLE_BIT);
|
||||
// is_correlated|= tl->is_with_table_recursive_reference();
|
||||
if (tl->on_expr)
|
||||
is_correlated|= MY_TEST(tl->on_expr->used_tables() & OUTER_REF_TABLE_BIT);
|
||||
@@ -8205,7 +8208,7 @@ bool LEX::check_expr_allows_fields_or_error(THD *thd, const char *name) const
|
||||
{
|
||||
if (select_stack_top > 0)
|
||||
return false; // OK, fields are allowed
|
||||
my_error(ER_BAD_FIELD_ERROR, MYF(0), name, thd->where);
|
||||
my_error(ER_BAD_FIELD_ERROR, MYF(0), name, thd_where(thd));
|
||||
return true; // Error, fields are not allowed
|
||||
}
|
||||
|
||||
@@ -8228,7 +8231,7 @@ Item *LEX::create_item_ident_nospvar(THD *thd,
|
||||
|
||||
if (unlikely(current_select->no_table_names_allowed))
|
||||
{
|
||||
my_error(ER_TABLENAME_NOT_ALLOWED_HERE, MYF(0), a->str, thd->where);
|
||||
my_error(ER_TABLENAME_NOT_ALLOWED_HERE, MYF(0), a->str, thd_where(thd));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -8443,7 +8446,7 @@ Item *LEX::create_item_ident(THD *thd,
|
||||
|
||||
if (current_select->no_table_names_allowed)
|
||||
{
|
||||
my_error(ER_TABLENAME_NOT_ALLOWED_HERE, MYF(0), b->str, thd->where);
|
||||
my_error(ER_TABLENAME_NOT_ALLOWED_HERE, MYF(0), b->str, thd_where(thd));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -11097,7 +11100,10 @@ void mark_or_conds_to_avoid_pushdown(Item *cond)
|
||||
(if cond is marked with MARKER_FULL_EXTRACTION or
|
||||
cond is an AND condition and some of its parts are marked with
|
||||
MARKER_FULL_EXTRACTION)
|
||||
In this case condition is transformed and pushed into attach_to_conds
|
||||
In this case condition is transformed with multiple_equality_transformer
|
||||
transformer. It transforms all multiple equalities in the extracted
|
||||
condition into the set of equalities.
|
||||
After that the transformed condition is attached into attach_to_conds
|
||||
list.
|
||||
2. Part of some other condition c1 that can't be entirely pushed
|
||||
(if с1 isn't marked with any flag).
|
||||
@@ -11114,10 +11120,6 @@ void mark_or_conds_to_avoid_pushdown(Item *cond)
|
||||
In this case build_pushable_cond() is called for c1.
|
||||
This method builds a clone of the c1 part that can be pushed.
|
||||
|
||||
Transformation mentioned above is made with multiple_equality_transformer
|
||||
transformer. It transforms all multiple equalities in the extracted
|
||||
condition into the set of equalities.
|
||||
|
||||
@note
|
||||
Conditions that can be pushed are collected in attach_to_conds in this way:
|
||||
1. if cond is an AND condition its parts that can be pushed into WHERE
|
||||
|
Reference in New Issue
Block a user