mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.2 into 10.3
FIXME: Properly resolve conflicts between MDEV-18883 and MDEV-7742/MDEV-8305, and record the correct result for main.log_slow
This commit is contained in:
@ -931,6 +931,10 @@ public:
|
||||
:tmp_field(fld), producing_item(item) {}
|
||||
};
|
||||
|
||||
|
||||
#define TOUCHED_SEL_COND 1/* WHERE/HAVING/ON should be reinited before use */
|
||||
#define TOUCHED_SEL_DERIVED (1<<1)/* derived should be reinited before use */
|
||||
|
||||
/*
|
||||
SELECT_LEX - store information of parsed SELECT statment
|
||||
*/
|
||||
@ -1117,7 +1121,8 @@ public:
|
||||
subquery. Prepared statements work OK in that regard, as in
|
||||
case of an error during prepare the PS is not created.
|
||||
*/
|
||||
bool first_execution;
|
||||
uint8 changed_elements; // see TOUCHED_SEL_*
|
||||
/* TODO: add foloowing first_* to bitmap above */
|
||||
bool first_natural_join_processing;
|
||||
bool first_cond_optimization;
|
||||
/* do not wrap view fields with Item_ref */
|
||||
@ -3949,6 +3954,31 @@ public:
|
||||
bool tmp_table() const { return create_info.tmp_table(); }
|
||||
bool if_exists() const { return create_info.if_exists(); }
|
||||
|
||||
/*
|
||||
Run specified phases for derived tables/views in the given list
|
||||
|
||||
@param table_list - list of derived tables/view to handle
|
||||
@param phase - phases to process tables/views through
|
||||
|
||||
@details
|
||||
This method runs phases specified by the 'phases' on derived
|
||||
tables/views found in the 'table_list' with help of the
|
||||
TABLE_LIST::handle_derived function.
|
||||
'this' is passed as an argument to the TABLE_LIST::handle_derived.
|
||||
|
||||
@return false - ok
|
||||
@return true - error
|
||||
*/
|
||||
bool handle_list_of_derived(TABLE_LIST *table_list, uint phases)
|
||||
{
|
||||
for (TABLE_LIST *tl= table_list; tl; tl= tl->next_local)
|
||||
{
|
||||
if (tl->is_view_or_derived() && tl->handle_derived(this, phases))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
SELECT_LEX *exclude_last_select();
|
||||
bool add_unit_in_brackets(SELECT_LEX *nselect);
|
||||
void check_automatic_up(enum sub_select_type type);
|
||||
|
Reference in New Issue
Block a user