MySQL  8.0.27
Source Code Documentation
sql_resolver.h File Reference

Name resolution functions. More...

#include <functional>

Go to the source code of this file.

Classes

struct  ReplaceResult
 

Typedefs

typedef Bounds_checked_array< Item * > Ref_item_array
 

Functions

void propagate_nullability (mem_root_deque< TABLE_LIST * > *tables, bool nullable)
 Propagate nullability into inner tables of outer join operation. More...
 
bool setup_order (THD *thd, Ref_item_array ref_item_array, TABLE_LIST *tables, mem_root_deque< Item * > *fields, ORDER *order)
 Resolve and setup list of expressions in ORDER BY clause. More...
 
bool validate_gc_assignment (const mem_root_deque< Item * > &fields, const mem_root_deque< Item * > &values, TABLE *tab)
 validate_gc_assignment Check whether the other values except DEFAULT are assigned for generated columns. More...
 
bool find_order_in_list (THD *thd, Ref_item_array ref_item_array, TABLE_LIST *tables, ORDER *order, mem_root_deque< Item * > *fields, bool is_group_field, bool is_window_order)
 Resolve an ORDER BY or GROUP BY column reference. More...
 
bool WalkAndReplace (THD *thd, Item *item, const std::function< ReplaceResult(Item *item, Item *parent, unsigned argument_idx)> &get_new_item)
 Walk through the conditions and functions below the given item, and allows the given functor to replace it with new items. More...
 

Detailed Description

Name resolution functions.

Typedef Documentation

◆ Ref_item_array

Function Documentation

◆ WalkAndReplace()

bool WalkAndReplace ( THD thd,
Item item,
const std::function< ReplaceResult(Item *item, Item *parent, unsigned argument_idx)> &  get_new_item 
)

Walk through the conditions and functions below the given item, and allows the given functor to replace it with new items.

See ReplaceResult.

Note that this must not be used for permanent changes during optimization, as all changes done during optimization will be rolled back if a prepared statement is re-executed.

Returns
true on error.