![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
Represents [schema. More...
#include <item.h>
Public Member Functions | |
| Item_asterisk (const POS &pos, const char *opt_schema_name, const char *opt_table_name) | |
| Constructor.  More... | |
| bool | itemize (Parse_context *pc, Item **res) override | 
| The same as contextualize() but with additional parameter.  More... | |
| bool | fix_fields (THD *, Item **) override | 
| Resolve the name of a column reference.  More... | |
| bool | is_asterisk () const override | 
| Checks if the current object represents an asterisk select list item.  More... | |
  Public Member Functions inherited from Item_field | |
| void | set_item_equal (Item_equal *item_equal_arg) | 
| void | set_item_equal_all_join_nests (Item_equal *item_equal) | 
| Item_field (Name_resolution_context *context_arg, const char *db_arg, const char *table_name_arg, const char *field_name_arg) | |
| Constructor used for internal information queries.  More... | |
| Item_field (const POS &pos, const char *db_arg, const char *table_name_arg, const char *field_name_arg) | |
| Used from parser to construct column references.  More... | |
| Item_field (THD *thd, Item_field *item) | |
| Used to create a copy (clone) of another Item_field.  More... | |
| Item_field (THD *thd, Name_resolution_context *context_arg, Table_ref *tr, Field *field) | |
| Constructor used inside setup_wild().  More... | |
| Item_field (Field *field) | |
| Create column reference based on a table field.  More... | |
| enum Type | type () const override | 
| bool | eq (const Item *item, bool binary_cmp) const override | 
| double | val_real () override | 
| longlong | val_int () override | 
| longlong | val_time_temporal () override | 
| Return time value of item in packed longlong format.  More... | |
| longlong | val_date_temporal () override | 
| Return date value of item in packed longlong format.  More... | |
| longlong | val_time_temporal_at_utc () override | 
| longlong | val_date_temporal_at_utc () override | 
| my_decimal * | val_decimal (my_decimal *) override | 
| String * | val_str (String *) override | 
| bool | val_json (Json_wrapper *result) override | 
| Get a JSON value from an Item.  More... | |
| bool | send (Protocol *protocol, String *str_arg) override | 
| This is only called from items that is not of type item_field.  More... | |
| void | reset_field (Field *f) | 
| Reset this item to point to a field from the new temporary table.  More... | |
| void | make_field (Send_field *tmp_field) override | 
| void | save_org_in_field (Field *field) override | 
| Set a field's value from a item.  More... | |
| table_map | used_tables () const override | 
| Item_result | result_type () const override | 
| Item_result | numeric_context_result_type () const override | 
| Result type when an item appear in a numeric context.  More... | |
| TYPELIB * | get_typelib () const override | 
| Get the typelib information for an item of type set or enum.  More... | |
| Item_result | cast_to_int_type () const override | 
| enum_monotonicity_info | get_monotonicity_info () const override | 
| longlong | val_int_endpoint (bool left_endp, bool *incl_endp) override | 
| void | set_result_field (Field *field_arg) override | 
| Field * | get_tmp_table_field () override | 
| If this Item is being materialized into a temporary table, returns the field that is being materialized into.  More... | |
| Field * | tmp_table_field (TABLE *) override | 
| void | set_base_item_field (const Item_field *item) | 
| const Item_field * | base_item_field () const | 
| bool | get_date (MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override | 
| bool | get_time (MYSQL_TIME *ltime) override | 
| bool | get_timeval (my_timeval *tm, int *warnings) override | 
| Get timestamp in "struct timeval" format.  More... | |
| bool | is_null () override | 
| The method allows to determine nullness of a complex expression without fully evaluating it, instead of calling val*() then checking null_value.  More... | |
| Item * | get_tmp_table_item (THD *thd) override | 
| If an Item is materialized in a temporary table, a different Item may have to be used in the part of the query that runs after the materialization.  More... | |
| bool | collect_item_field_processor (uchar *arg) override | 
| Store the pointer to this item field into a list if not already there.  More... | |
| bool | collect_item_field_or_ref_processor (uchar *arg) override | 
| When collecting information about columns when transforming correlated scalar subqueries using derived tables, we need to decide which duplicates, if any, to retain:  More... | |
| bool | collect_item_field_or_view_ref_processor (uchar *arg) override | 
| Collects fields and view references that have the qualifying table in the specified query block.  More... | |
| bool | add_field_to_set_processor (uchar *arg) override | 
| Item::walk function.  More... | |
| bool | add_field_to_cond_set_processor (uchar *) override | 
| Item::walk function.  More... | |
| bool | remove_column_from_bitmap (uchar *arg) override | 
| Visitor interface for removing all column expressions (Item_field) in this expression tree from a bitmap.  More... | |
| bool | find_item_in_field_list_processor (uchar *arg) override | 
| Check if an Item_field references some field from a list of fields.  More... | |
| bool | find_field_processor (uchar *arg) override | 
| Is this an Item_field which references the given Field argument?  More... | |
| bool | check_function_as_value_generator (uchar *args) override | 
| Check if this item is allowed for a virtual column or inside a default expression.  More... | |
| bool | mark_field_in_map (uchar *arg) override | 
| Mark underlying field in read or write map of a table.  More... | |
| bool | used_tables_for_level (uchar *arg) override | 
| Return used table information for the specified query block (level).  More... | |
| bool | check_column_privileges (uchar *arg) override | 
| Check privileges of base table column.  More... | |
| bool | check_partition_func_processor (uchar *) override | 
| Check if a partition function is allowed.  More... | |
| void | bind_fields () override | 
| Bind objects from the current execution context to field objects in item trees.  More... | |
| bool | is_valid_for_pushdown (uchar *arg) override | 
| Check if all the columns present in this expression are from the derived table.  More... | |
| bool | check_column_in_window_functions (uchar *arg) override | 
| Check if this column is found in PARTITION clause of all the window functions.  More... | |
| bool | check_column_in_group_by (uchar *arg) override | 
| Check if this column is found in GROUP BY.  More... | |
| Item * | replace_with_derived_expr (uchar *arg) override | 
| Assuming this expression is part of a condition that would be pushed to the WHERE clause of a materialized derived table, replace, in this expression, each derived table's column with a clone of the expression lying under it in the derived table's definition.  More... | |
| Item * | replace_with_derived_expr_ref (uchar *arg) override | 
| Assuming this expression is part of a condition that would be pushed to the HAVING clause of a materialized derived table, replace, in this expression, each derived table's column with a reference to the expression lying under it in the derived table's definition.  More... | |
| void | cleanup () override | 
| Called for every Item after use (preparation and execution).  More... | |
| void | reset_field () | 
| Reset all aspect of a field object, so that it can be re-resolved.  More... | |
| Item_equal * | find_item_equal (COND_EQUAL *cond_equal) const | 
| Find a field among specified multiple equalities.  More... | |
| bool | subst_argument_checker (uchar **arg) override | 
| Check whether a field can be substituted by an equal item.  More... | |
| Item * | equal_fields_propagator (uchar *arg) override | 
| If field matches a multiple equality, set a pointer to that object in the field.  More... | |
| Item * | replace_item_field (uchar *) override | 
| If this field is the target is the target of replacement, replace it with the info object's item or, if the item is found inside a subquery, the target is an outer reference, so we create a new Item_field, mark it accordingly and replace with that instead.  More... | |
| bool | disable_constant_propagation (uchar *) override | 
| Item * | replace_equal_field (uchar *) override | 
| Replace an Item_field for an equal Item_field that evaluated earlier (if any).  More... | |
| uint32 | max_disp_length () | 
| Item_field * | field_for_view_update () override | 
| Item * | safe_charset_converter (THD *thd, const CHARSET_INFO *tocs) override | 
| int | fix_outer_field (THD *thd, Field **field, Item **reference) | 
| Resolve the name of an outer select column reference.  More... | |
| Item * | update_value_transformer (uchar *select_arg) override | 
| Add the field to the select list and substitute it for the reference to the field.  More... | |
| void | print (const THD *thd, String *str, enum_query_type query_type) const override | 
| This method is used for to:  More... | |
| bool | is_outer_field () const override | 
| Field::geometry_type | get_geometry_type () const override | 
| const CHARSET_INFO * | charset_for_protocol (void) override | 
| void | dbug_print () const | 
| float | get_filtering_effect (THD *thd, table_map filter_for_table, table_map read_tables, const MY_BITMAP *fields_to_ignore, double rows_in_table) override | 
| Calculate condition filtering effect for "WHERE field", which implicitly means "WHERE field <> 0".  More... | |
| float | get_cond_filter_default_probability (double max_distinct_values, float default_filter) const | 
| Returns the probability for the predicate "col OP <val>" to be true for a row in the case where no index statistics or range estimates are available for 'col'.  More... | |
| bool | alias_name_used () const override | 
| bool | repoint_const_outer_ref (uchar *arg) override | 
| If this object is the real_item of an Item_ref, repoint the result_field to field.  More... | |
| bool | returns_array () const override | 
| Whether the item returns array of its data type.  More... | |
| void | set_can_use_prefix_key () override | 
| bool | replace_field_processor (uchar *arg) override | 
| A processor that replaces any Fields with a Create_field_wrapper.  More... | |
| bool | strip_db_table_name_processor (uchar *) override | 
| Generated fields don't need db/table names.  More... | |
| bool | protected_by_any_value () const | 
See m_protected_by_any_value.  More... | |
  Public Member Functions inherited from Item_ident | |
| Item_ident (Name_resolution_context *context_arg, const char *db_name_arg, const char *table_name_arg, const char *field_name_arg) | |
| Item_ident (const POS &pos, const char *db_name_arg, const char *table_name_arg, const char *field_name_arg) | |
| Item_ident (THD *thd, Item_ident *item) | |
| Constructor used by Item_field & Item_*_ref (see Item comment)  More... | |
| const char * | full_name () const override | 
| void | set_orignal_db_name (const char *name_arg) | 
| void | set_original_table_name (const char *name_arg) | 
| void | set_original_field_name (const char *name_arg) | 
| const char * | original_db_name () const | 
| const char * | original_table_name () const | 
| const char * | original_field_name () const | 
| bool | aggregate_check_distinct (uchar *arg) override | 
| bool | aggregate_check_group (uchar *arg) override | 
| Bool3 | local_column (const Query_block *sl) const override | 
| Tells if this is a column of a table whose qualifying query block is 'sl'.  More... | |
| bool | change_context_processor (uchar *arg) override | 
| bool | is_alias_of_expr () const | 
| void | set_alias_of_expr () | 
| Marks that this Item's name is alias of SELECT expression.  More... | |
| bool | update_depended_from (uchar *) override | 
| bool | is_strong_side_column_not_in_fd (uchar *arg) override | 
| bool | is_column_not_in_fd (uchar *arg) override | 
  Public Member Functions inherited from Item | |
| Item (const Item &)=delete | |
| void | operator= (Item &)=delete | 
| Item () | |
| Item constructor for general use.  More... | |
| Item (THD *thd, const Item *item) | |
| Constructor used by Item_field, Item_ref & aggregate functions.  More... | |
| Item (const POS &) | |
| Parse-time context-independent constructor.  More... | |
| ~Item () override=default | |
| void | rename (char *new_name) | 
| rename item (used for views, cleanup() return original name).  More... | |
| void | init_make_field (Send_field *tmp_field, enum enum_field_types type) | 
| virtual void | notify_removal () | 
| Called when an item has been removed, can be used to notify external objects about the removal, e.g subquery predicates that are part of the sj_candidates container.  More... | |
| virtual Field * | make_string_field (TABLE *table) const | 
| Create a field to hold a string value from an item.  More... | |
| void | quick_fix_field () | 
| virtual bool | propagate_type (THD *thd, const Type_properties &type) | 
| Propagate data type specifications into parameters and user variables.  More... | |
| bool | propagate_type (THD *thd, enum_field_types def=MYSQL_TYPE_VARCHAR, bool pin=false, bool inherit=false) | 
| Wrapper for easier calling of propagate_type(const Type_properties &).  More... | |
| virtual void | mark_json_as_scalar () | 
| For Items with data type JSON, mark that a string argument is treated as a scalar JSON value.  More... | |
| virtual std::optional< ContainedSubquery > | get_contained_subquery (const Query_block *outer_query_block) | 
| If this item represents a IN/ALL/ANY/comparison_operator subquery, return that (along with data on how it will be executed).  More... | |
| type_conversion_status | save_in_field_no_warnings (Field *field, bool no_conversions) | 
| Save the item into a field but do not emit any warnings.  More... | |
| type_conversion_status | save_in_field (Field *field, bool no_conversions) | 
| Save a temporal value in packed longlong format into a Field.  More... | |
| void | save_in_field_no_error_check (Field *field, bool no_conversions) | 
| A slightly faster value of save_in_field() that returns no error value (you will need to check thd->is_error() yourself), and does not support saving into hidden fields for functional indexes.  More... | |
| bool | evaluate (THD *thd, String *str) | 
| Evaluate item, possibly using the supplied buffer.  More... | |
| Item_result | temporal_with_date_as_number_result_type () const | 
| Similar to result_type() but makes DATE, DATETIME, TIMESTAMP pretend to be numbers rather than strings.  More... | |
| virtual void | set_data_type_inherited () | 
| Set data type for item as inherited.  More... | |
| virtual void | pin_data_type () | 
| Pin the data type for the item.  More... | |
| enum_field_types | data_type () const | 
| Retrieve the derived data type of the Item.  More... | |
| virtual enum_field_types | actual_data_type () const | 
| Retrieve actual data type for an item.  More... | |
| virtual enum_field_types | default_data_type () const | 
| Get the default data (output) type for the specific item.  More... | |
| void | set_data_type (enum_field_types data_type) | 
| Set the data type of the current Item.  More... | |
| void | set_data_type_null () | 
| void | set_data_type_bool () | 
| void | set_data_type_longlong () | 
| Set the data type of the Item to be longlong.  More... | |
| void | set_data_type_decimal (uint8 precision, uint8 scale) | 
| Set the data type of the Item to be decimal.  More... | |
| void | set_data_type_double () | 
| Set the data type of the Item to be double precision floating point.  More... | |
| void | set_data_type_float () | 
| Set the data type of the Item to be single precision floating point.  More... | |
| void | set_data_type_string (uint32 max_l) | 
| Set the Item to be variable length string.  More... | |
| void | set_data_type_string (ulonglong max_char_length_arg) | 
| Set the Item to be variable length string.  More... | |
| void | set_data_type_string (uint32 max_l, const CHARSET_INFO *cs) | 
| Set the Item to be variable length string.  More... | |
| void | set_data_type_string (uint32 max_l, const DTCollation &coll) | 
| Set the Item to be variable length string.  More... | |
| void | set_data_type_char (uint32 max_l) | 
| Set the Item to be fixed length string.  More... | |
| void | set_data_type_char (uint32 max_l, const CHARSET_INFO *cs) | 
| Set the Item to be fixed length string.  More... | |
| void | set_data_type_blob (uint32 max_l) | 
| Set the Item to be of BLOB type.  More... | |
| void | set_data_type_date () | 
| Set all type properties for Item of DATE type.  More... | |
| void | set_data_type_time (uint8 fsp) | 
| Set all type properties for Item of TIME type.  More... | |
| void | set_data_type_datetime (uint8 fsp) | 
| Set all properties for Item of DATETIME type.  More... | |
| void | set_data_type_timestamp (uint8 fsp) | 
| Set all properties for Item of TIMESTAMP type.  More... | |
| void | set_data_type_geometry () | 
| Set the data type of the Item to be GEOMETRY.  More... | |
| void | set_data_type_json () | 
| Set the data type of the Item to be JSON.  More... | |
| void | set_data_type_year () | 
| Set the data type of the Item to be YEAR.  More... | |
| void | set_data_type_bit () | 
| Set the data type of the Item to be bit.  More... | |
| void | set_data_type_from_item (const Item *item) | 
| Set data type properties of the item from the properties of another item.  More... | |
| void | aggregate_type (Bounds_checked_array< Item * > items) | 
| Aggregates data types from array of items into current item.  More... | |
| longlong | val_temporal_by_field_type () | 
| Return date or time value of item in packed longlong format, depending on item field type.  More... | |
| longlong | int_sort_key () | 
| Produces a key suitable for filesort.  More... | |
| longlong | val_temporal_with_round (enum_field_types type, uint8 dec) | 
| Get date or time value in packed longlong format.  More... | |
| ulonglong | val_uint () | 
| virtual String * | val_str_ascii (String *str) | 
| virtual bool | val_bool () | 
| bool | error_json () | 
| Get the value to return from val_json() in case of errors.  More... | |
| bool | get_date_from_non_temporal (MYSQL_TIME *ltime, my_time_flags_t fuzzydate) | 
| Convert a non-temporal type to date.  More... | |
| bool | get_time_from_non_temporal (MYSQL_TIME *ltime) | 
| Convert a non-temporal type to time.  More... | |
| my_decimal * | error_decimal (my_decimal *decimal_value) | 
| Get the value to return from val_decimal() in case of errors.  More... | |
| String * | error_str () | 
| Get the value to return from val_str() in case of errors.  More... | |
| type_conversion_status | save_time_in_field (Field *field) | 
| type_conversion_status | save_date_in_field (Field *field) | 
| type_conversion_status | save_str_value_in_field (Field *field, String *result) | 
| virtual table_map | not_null_tables () const | 
| Return table map of tables that can't be NULL tables (tables that are used in a context where if they would contain a NULL row generated by a LEFT or RIGHT join, the item would not be true).  More... | |
| virtual bool | basic_const_item () const | 
| Returns true if this is a simple constant item like an integer, not a constant expression.  More... | |
| bool | may_eval_const_item (const THD *thd) const | 
| virtual Item * | clone_item () const | 
| virtual cond_result | eq_cmp_result () const | 
| uint | float_length (uint decimals_par) const | 
| virtual uint | decimal_precision () const | 
| int | decimal_int_part () const | 
| virtual uint | time_precision () | 
| TIME precision of the item: 0..6.  More... | |
| virtual uint | datetime_precision () | 
| DATETIME precision of the item: 0..6.  More... | |
| bool | const_item () const | 
| Returns true if item is constant, regardless of query evaluation state.  More... | |
| bool | const_for_execution () const | 
| Returns true if item is constant during one query execution.  More... | |
| bool | may_evaluate_const (const THD *thd) const | 
| Return true if this is a const item that may be evaluated in the current phase of statement processing.  More... | |
| bool | is_non_deterministic () const | 
| bool | is_outer_reference () const | 
| void | print_item_w_name (const THD *thd, String *, enum_query_type query_type) const | 
| void | print_for_order (const THD *thd, String *str, enum_query_type query_type, bool used_alias) const | 
| Prints the item when it's part of ORDER BY and GROUP BY.  More... | |
| virtual void | update_used_tables () | 
| Updates used tables, not null tables information and accumulates properties up the item tree, cf.  More... | |
| virtual void | split_sum_func (THD *, Ref_item_array, mem_root_deque< Item * > *) | 
| void | split_sum_func2 (THD *thd, Ref_item_array ref_item_array, mem_root_deque< Item * > *fields, Item **ref, bool skip_registered) | 
| bool | update_null_value () | 
| Make sure the null_value member has a correct value.  More... | |
| virtual void | apply_is_true () | 
| Apply the IS TRUE truth property, meaning that an UNKNOWN result and a FALSE result are treated the same.  More... | |
| virtual bool | is_result_field () const | 
| virtual Field * | get_result_field () const | 
| virtual bool | is_bool_func () const | 
| virtual void | no_rows_in_result () | 
| virtual Item * | copy_or_same (THD *) | 
| virtual Item * | copy_andor_structure (THD *) | 
| virtual Item * | real_item () | 
| virtual const Item * | real_item () const | 
| virtual const CHARSET_INFO * | compare_collation () const | 
| virtual bool | walk (Item_processor processor, enum_walk walk, uchar *arg) | 
| Traverses a tree of Items in prefix and/or postfix order.  More... | |
| template<class T > | |
| auto | walk_helper_thunk (uchar *arg) | 
| template<class T > | |
| auto | analyze_helper_thunk (uchar **arg) | 
| See CompileItem.  More... | |
| virtual Item * | transform (Item_transformer transformer, uchar *arg) | 
| Perform a generic transformation of the Item tree, by adding zero or more additional Item objects to it.  More... | |
| virtual Item * | compile (Item_analyzer analyzer, uchar **arg_p, Item_transformer transformer, uchar *arg_t) | 
| Perform a generic "compilation" of the Item tree, ie transform the Item tree by adding zero or more Item objects to it.  More... | |
| virtual void | traverse_cond (Cond_traverser traverser, void *arg, traverse_order) | 
| virtual bool | intro_version (uchar *) | 
| bool | cleanup_processor (uchar *) | 
| cleanup() item if it is resolved ('fixed').  More... | |
| virtual bool | visitor_processor (uchar *arg) | 
| A processor to handle the select lex visitor framework.  More... | |
| virtual bool | find_item_processor (uchar *arg) | 
| virtual bool | is_non_const_over_literals (uchar *) | 
| virtual bool | cast_incompatible_args (uchar *) | 
| Wrap incompatible arguments in CAST nodes to the expected data types.  More... | |
| virtual bool | reset_wf_state (uchar *arg) | 
| Reset execution state for such window function types as determined by arg.  More... | |
| virtual bool | inform_item_in_cond_of_tab (uchar *) | 
| virtual bool | clean_up_after_removal (uchar *arg) | 
| Clean up after removing the item from the item tree.  More... | |
| virtual bool | collect_scalar_subqueries (uchar *) | 
| virtual bool | collect_grouped_aggregates (uchar *) | 
| virtual bool | collect_subqueries (uchar *) | 
| virtual bool | has_aggregate_ref_in_group_by (uchar *) | 
| Check if an aggregate is referenced from within the GROUP BY clause of the query block in which it is aggregated.  More... | |
| bool | visit_all_analyzer (uchar **) | 
| virtual bool | cache_const_expr_analyzer (uchar **cache_item) | 
| Check if an item is a constant one and can be cached.  More... | |
| Item * | cache_const_expr_transformer (uchar *item) | 
| Cache item if needed.  More... | |
| virtual bool | equality_substitution_analyzer (uchar **) | 
| virtual Item * | equality_substitution_transformer (uchar *) | 
| virtual bool | explain_subquery_checker (uchar **) | 
| virtual Item * | explain_subquery_propagator (uchar *) | 
| virtual bool | check_valid_arguments_processor (uchar *) | 
| virtual bool | check_gcol_depend_default_processor (uchar *args) | 
| Check if a generated expression depends on DEFAULT function with specific column name as argument.  More... | |
| virtual Item * | replace_view_refs_with_clone (uchar *arg) | 
| Assuming this expression is part of a condition that would be pushed to a materialized derived table, replace, in this expression, each view reference with a clone of the expression in merged derived table's definition.  More... | |
| virtual Item * | this_item () | 
| virtual const Item * | this_item () const | 
| virtual Item ** | this_item_addr (THD *, Item **addr_arg) | 
| virtual uint | cols () const | 
| virtual Item * | element_index (uint) | 
| virtual Item ** | addr (uint) | 
| virtual bool | check_cols (uint c) | 
| virtual bool | null_inside () | 
| virtual void | bring_value () | 
| Field * | tmp_table_field_from_field_type (TABLE *table, bool fixed_length) const | 
| Create a field based on field_type of argument.  More... | |
| virtual Item * | truth_transformer (THD *thd, Bool_test test) | 
| Informs an item that it is wrapped in a truth test, in case it wants to transforms itself to implement this test by itself.  More... | |
| virtual Item * | replace_scalar_subquery (uchar *) | 
| When walking the item tree seeing an Item_singlerow_subselect matching a target, replace it with a substitute field used when transforming scalar subqueries into derived tables.  More... | |
| virtual Item * | replace_item_view_ref (uchar *) | 
| virtual Item * | replace_aggregate (uchar *) | 
| virtual Item * | replace_outer_ref (uchar *) | 
| virtual bool | update_aggr_refs (uchar *) | 
| A walker processor overridden by Item_aggregate_ref, q.v.  More... | |
| void | delete_self () | 
| Delete this item.  More... | |
| virtual bool | is_splocal () const | 
| virtual Settable_routine_parameter * | get_settable_routine_parameter () | 
| bool | is_temporal_with_date () const | 
| bool | is_temporal_with_date_and_time () const | 
| bool | is_temporal_with_time () const | 
| bool | is_temporal () const | 
| bool | has_compatible_context (Item *item) const | 
| Check whether this and the given item has compatible comparison context.  More... | |
| String * | check_well_formed_result (String *str, bool send_error, bool truncate) | 
| Verifies that the input string is well-formed according to its character set.  More... | |
| bool | eq_by_collation (Item *item, bool binary_cmp, const CHARSET_INFO *cs) | 
| virtual bool | is_expensive () | 
| uint32 | max_char_length () const | 
| uint32 | max_char_length (const CHARSET_INFO *cs) const | 
| void | fix_char_length (uint32 max_char_length_arg) | 
| bool | is_blob_field () const | 
| Check if an item either is a blob field, or will be represented as a BLOB field if a field is created based on this item.  More... | |
| uint | reference_count () const | 
| void | increment_ref_count () | 
| Increment reference count.  More... | |
| uint | decrement_ref_count () | 
| Decrement reference count.  More... | |
| bool | has_subquery () const | 
| bool | has_stored_program () const | 
| bool | has_aggregation () const | 
| void | set_aggregation () | 
| Set the "has aggregation" property.  More... | |
| void | reset_aggregation () | 
| Reset the "has aggregation" property.  More... | |
| bool | has_wf () const | 
| void | set_wf () | 
| Set the "has window function" property.  More... | |
| bool | has_rollup_expr () const | 
| void | set_rollup_expr () | 
| Set the property: this item (tree) contains a reference to a ROLLUP expr.  More... | |
| bool | has_grouping_func () const | 
| void | set_grouping_func () | 
| Set the property: this item is a call to GROUPING.  More... | |
| virtual bool | created_by_in2exists () const | 
| Whether this Item was created by the IN->EXISTS subquery transformation.  More... | |
| void | mark_subqueries_optimized_away () | 
| virtual bool | gc_subst_analyzer (uchar **) | 
| Analyzer function for GC substitution.  More... | |
| virtual Item * | gc_subst_transformer (uchar *) | 
| Transformer function for GC substitution.  More... | |
| bool | can_be_substituted_for_gc (bool array=false) const | 
| Check if this item is of a type that is eligible for GC substitution.  More... | |
| void | aggregate_decimal_properties (Item **item, uint nitems) | 
| Set precision and decimals of function when this depends on arguments' values for these quantities.  More... | |
| void | aggregate_float_properties (Item **item, uint nitems) | 
| Set max_length and decimals of function if function is floating point and result length/precision depends on argument ones.  More... | |
| void | aggregate_char_length (Item **args, uint nitems) | 
| Set the maximum number of characters required by any of the items in args.  More... | |
| void | aggregate_temporal_properties (Item **item, uint nitems) | 
| Set fractional seconds precision for temporal functions.  More... | |
| bool | aggregate_string_properties (const char *name, Item **item, uint nitems) | 
| Aggregate string properties (character set, collation and maximum length) for string function.  More... | |
| void | aggregate_num_type (Item_result result_type, Item **item, uint nitems) | 
| This function is used to resolve type for numeric result type of CASE, COALESCE, IF and LEAD/LAG.  More... | |
| bool | is_abandoned () const | 
| bool | is_nullable () const | 
| void | set_nullable (bool nullable) | 
| virtual bool | supports_partial_update (const Field_json *field) const | 
| Check if this expression can be used for partial update of a given JSON column.  More... | |
| virtual void | allow_array_cast () | 
| A helper function to ensure proper usage of CAST(.  More... | |
  Public Member Functions inherited from Parse_tree_node_tmpl< Context > | |
| virtual | ~Parse_tree_node_tmpl ()=default | 
| bool | is_contextualized () const | 
| virtual bool | contextualize (Context *pc) | 
| Do all context-sensitive things and mark the node as contextualized.  More... | |
| void | error (Context *pc, const POS &pos) const | 
| syntax_error() function replacement for deferred reporting of syntax errors  More... | |
| void | error (Context *pc, const POS &pos, const char *msg) const | 
| syntax_error() function replacement for deferred reporting of syntax errors  More... | |
| void | errorf (Context *pc, const POS &pos, const char *format,...) const | 
| syntax_error() function replacement for deferred reporting of syntax errors  More... | |
Private Types | |
| typedef Item_field | super | 
Additional Inherited Members | |
  Public Types inherited from Item | |
| enum | Type {  INVALID_ITEM = 0 , FIELD_ITEM , FUNC_ITEM , SUM_FUNC_ITEM , STRING_ITEM , INT_ITEM , REAL_ITEM , NULL_ITEM , VARBIN_ITEM , METADATA_COPY_ITEM , FIELD_AVG_ITEM , DEFAULT_VALUE_ITEM , PROC_ITEM , COND_ITEM , REF_ITEM , FIELD_STD_ITEM , FIELD_VARIANCE_ITEM , INSERT_VALUE_ITEM , SUBSELECT_ITEM , ROW_ITEM , CACHE_ITEM , TYPE_HOLDER , PARAM_ITEM , TRIGGER_FIELD_ITEM , DECIMAL_ITEM , XPATH_NODESET , XPATH_NODESET_CMP , VIEW_FIXER_ITEM , FIELD_BIT_ITEM , VALUES_COLUMN_ITEM }  | 
| enum | cond_result { COND_UNDEF , COND_OK , COND_TRUE , COND_FALSE } | 
| enum | traverse_order { POSTFIX , PREFIX } | 
| enum | enum_const_item_cache { CACHE_NONE = 0 , CACHE_JSON_VALUE , CACHE_JSON_ATOM } | 
| How to cache constant JSON data.  More... | |
| enum | Bool_test {  BOOL_IS_TRUE = 0x00 , BOOL_IS_FALSE = 0x01 , BOOL_IS_UNKNOWN = 0x02 , BOOL_NOT_TRUE = 0x03 , BOOL_NOT_FALSE = 0x04 , BOOL_NOT_UNKNOWN = 0x05 , BOOL_IDENTITY = 0x06 , BOOL_NEGATED = 0x07 , BOOL_ALWAYS_TRUE = 0x08 , BOOL_ALWAYS_FALSE = 0x09 }  | 
| < Modifier for result transformation  More... | |
| enum | item_marker {  MARKER_NONE = 0 , MARKER_IMPLICIT_NE_ZERO = 1 , MARKER_CONST_PROPAG = 2 , MARKER_BIT = 4 , MARKER_FUNC_DEP_NOT_NULL = 5 , MARKER_DISTINCT_GROUP = 6 , MARKER_COND_DERIVED_TABLE = 7 , MARKER_TRAVERSAL = 8 , MARKER_ICP_COND_USES_INDEX_ONLY = 10 }  | 
| < Values for member 'marker'  More... | |
  Public Types inherited from Parse_tree_node_tmpl< Context > | |
| typedef Context | context_t | 
  Static Public Member Functions inherited from Item | |
| static void * | operator new (size_t size) noexcept | 
| static void * | operator new (size_t size, MEM_ROOT *mem_root, const std::nothrow_t &arg=std::nothrow) noexcept | 
| static void | operator delete (void *ptr, size_t size) | 
| static void | operator delete (void *, MEM_ROOT *, const std::nothrow_t &) noexcept | 
| static enum_field_types | result_to_type (Item_result result) | 
| static Item_result | type_to_result (enum_field_types type) | 
| static enum_field_types | type_for_variable (enum_field_types src_type) | 
| Provide data type for a user or system variable, based on the type of the item that is assigned to the variable.  More... | |
| static enum_field_types | string_field_type (uint32 max_bytes) | 
| Determine correct string field type, based on string length.  More... | |
| static const CHARSET_INFO * | default_charset () | 
  Static Public Member Functions inherited from Parse_tree_node_tmpl< Context > | |
| static void * | operator new (size_t size, MEM_ROOT *mem_root, const std::nothrow_t &arg=std::nothrow) noexcept | 
| static void | operator delete (void *ptr, size_t size) | 
| static void | operator delete (void *, MEM_ROOT *, const std::nothrow_t &) noexcept | 
  Public Attributes inherited from Item_field | |
| Table_ref * | table_ref | 
| Table containing this resolved field.  More... | |
| Field * | field | 
| Source field.  More... | |
| Item_equal * | item_equal {nullptr} | 
| Used during optimization to perform multiple equality analysis, this analysis should be performed during preparation instead, so that Item_field can be const after preparation.  More... | |
| uint16 | field_index | 
| Index for this field in table->field array.  More... | |
| Item_equal * | item_equal_all_join_nests {nullptr} | 
| bool | no_constant_propagation {false} | 
| If true, the optimizer's constant propagation will not replace this item with an equal constant.  More... | |
| Access_bitmask | have_privileges {0} | 
| bool | any_privileges | 
| bool | can_use_prefix_key {false} | 
  Public Attributes inherited from Item_ident | |
| Name_resolution_context * | context | 
| For regularly resolved column references, 'context' points to a name resolution context object belonging to the query block which simply contains the reference.  More... | |
| const char * | db_name | 
| Schema name of the base table or view the column is part of.  More... | |
| const char * | table_name | 
| If column is from a non-aliased base table or view, name of base table or view.  More... | |
| const char * | field_name | 
| If column is aliased, the column alias name.  More... | |
| Table_ref * | cached_table | 
| Query_block * | depended_from | 
  Public Attributes inherited from Item | |
| Item * | next_free | 
| Intrusive list pointer for free list.  More... | |
| DTCollation | collation | 
| Character set and collation properties assigned for this Item.  More... | |
| Item_name_string | item_name | 
| Name from query.  More... | |
| Item_name_string | orig_name | 
| Original item name (if it was renamed)  More... | |
| uint32 | max_length | 
| Maximum length of result of evaluating this item, in number of bytes.  More... | |
| item_marker | marker | 
| This member has several successive meanings, depending on the phase we're in (.  More... | |
| Item_result | cmp_context | 
| Comparison context.  More... | |
| bool | fixed | 
| True if item has been resolved.  More... | |
| uint8 | decimals | 
| Number of decimals in result when evaluating this item.  More... | |
| bool | null_value | 
| True if item is null.  More... | |
| bool | unsigned_flag | 
| bool | m_is_window_function | 
| True if item represents window func.  More... | |
| bool | hidden {false} | 
| If the item is in a SELECT list (Query_block::fields) and hidden is true, the item wasn't actually in the list as given by the user (it was added by the optimizer, to e.g.  More... | |
| bool | m_in_check_constraint_exec_ctx {false} | 
| True if item is a top most element in the expression being evaluated for a check constraint.  More... | |
  Protected Member Functions inherited from Item_field | |
| void | set_field (Field *field) | 
| void | fix_after_pullout (Query_block *parent_query_block, Query_block *removed_query_block) override | 
| Fix after tables have been moved from one query_block level to the parent level, e.g by semijoin conversion.  More... | |
| type_conversion_status | save_in_field_inner (Field *field, bool no_conversions) override | 
| Helper function which does all of the work for save_in_field(Field*, bool), except some error checking common to all subclasses, which is performed by save_in_field() itself.  More... | |
  Protected Member Functions inherited from Item_ident | |
| void | print (const THD *thd, String *str, enum_query_type query_type, const char *db_name_arg, const char *table_name_arg) const | 
| Function to print column name for a table.  More... | |
  Protected Member Functions inherited from Item | |
| String * | make_empty_result () | 
| Sets the result value of the function an empty string, using the current character set.  More... | |
| bool | skip_itemize (Item **res) | 
| Helper function to skip itemize() for grammar-allocated items.  More... | |
| String * | val_string_from_real (String *str) | 
| String * | val_string_from_int (String *str) | 
| String * | val_string_from_decimal (String *str) | 
| String * | val_string_from_date (String *str) | 
| String * | val_string_from_datetime (String *str) | 
| String * | val_string_from_time (String *str) | 
| my_decimal * | val_decimal_from_real (my_decimal *decimal_value) | 
| my_decimal * | val_decimal_from_int (my_decimal *decimal_value) | 
| my_decimal * | val_decimal_from_string (my_decimal *decimal_value) | 
| my_decimal * | val_decimal_from_date (my_decimal *decimal_value) | 
| my_decimal * | val_decimal_from_time (my_decimal *decimal_value) | 
| longlong | val_int_from_decimal () | 
| longlong | val_int_from_date () | 
| longlong | val_int_from_time () | 
| longlong | val_int_from_datetime () | 
| longlong | val_int_from_string () | 
| double | val_real_from_decimal () | 
| double | val_real_from_string () | 
| bool | error_bool () | 
| Get the value to return from val_bool() in case of errors.  More... | |
| int | error_int () | 
| Get the value to return from val_int() in case of errors.  More... | |
| double | error_real () | 
| Get the value to return from val_real() in case of errors.  More... | |
| bool | error_date () | 
| Get the value to return from get_date() in case of errors.  More... | |
| bool | error_time () | 
| Get the value to return from get_time() in case of errors.  More... | |
| String * | null_return_str () | 
| Gets the value to return from val_str() when returning a NULL value.  More... | |
| bool | get_date_from_string (MYSQL_TIME *ltime, my_time_flags_t flags) | 
| Convert val_str() to date in MYSQL_TIME.  More... | |
| bool | get_date_from_real (MYSQL_TIME *ltime, my_time_flags_t flags) | 
| Convert val_real() to date in MYSQL_TIME.  More... | |
| bool | get_date_from_decimal (MYSQL_TIME *ltime, my_time_flags_t flags) | 
| Convert val_decimal() to date in MYSQL_TIME.  More... | |
| bool | get_date_from_int (MYSQL_TIME *ltime, my_time_flags_t flags) | 
| Convert val_int() to date in MYSQL_TIME.  More... | |
| bool | get_date_from_time (MYSQL_TIME *ltime) | 
| Convert get_time() from time to date in MYSQL_TIME.  More... | |
| bool | get_date_from_numeric (MYSQL_TIME *ltime, my_time_flags_t fuzzydate) | 
| Convert a numeric type to date.  More... | |
| bool | get_time_from_string (MYSQL_TIME *ltime) | 
| Convert val_str() to time in MYSQL_TIME.  More... | |
| bool | get_time_from_real (MYSQL_TIME *ltime) | 
| Convert val_real() to time in MYSQL_TIME.  More... | |
| bool | get_time_from_decimal (MYSQL_TIME *ltime) | 
| Convert val_decimal() to time in MYSQL_TIME.  More... | |
| bool | get_time_from_int (MYSQL_TIME *ltime) | 
| Convert val_int() to time in MYSQL_TIME.  More... | |
| bool | get_time_from_date (MYSQL_TIME *ltime) | 
| Convert date to time.  More... | |
| bool | get_time_from_datetime (MYSQL_TIME *ltime) | 
| Convert datetime to time.  More... | |
| bool | get_time_from_numeric (MYSQL_TIME *ltime) | 
| Convert a numeric type to time.  More... | |
| void | set_accum_properties (const Item *item) | 
| Set accumulated properties for an Item.  More... | |
| void | add_accum_properties (const Item *item) | 
| Add more accumulated properties to an Item.  More... | |
| void | set_subquery () | 
| Set the "has subquery" property.  More... | |
| void | set_stored_program () | 
| Set the "has stored program" property.  More... | |
  Protected Member Functions inherited from Parse_tree_node_tmpl< Context > | |
| Parse_tree_node_tmpl () | |
  Static Protected Member Functions inherited from Item | |
| static bool | bit_func_returns_binary (const Item *a, const Item *b) | 
| static bool | mark_field_in_map (Mark_field *mark_field, Field *field) | 
| Helper function for mark_field_in_map(uchar *arg).  More... | |
  Protected Attributes inherited from Item_ident | |
| const char * | m_orig_db_name | 
| The fields m_orig_db_name, m_orig_table_name and m_orig_field_name are maintained so that we can provide information about the origin of a column that may have been renamed within the query, e.g.  More... | |
| const char * | m_orig_table_name | 
| Names the original table that is the source of the field.  More... | |
| const char * | m_orig_field_name | 
| Names the field in the source base table.  More... | |
| bool | m_alias_of_expr | 
| if this Item's name is alias of SELECT expression  More... | |
  Protected Attributes inherited from Item | |
| String | str_value | 
| str_values's main purpose is to cache the value in save_in_field  More... | |
| uint8 | m_accum_properties | 
  Static Protected Attributes inherited from Item | |
| static constexpr uint8 | PROP_SUBQUERY = 0x01 | 
| Set of properties that are calculated by accumulation from underlying items.  More... | |
| static constexpr uint8 | PROP_STORED_PROGRAM = 0x02 | 
| static constexpr uint8 | PROP_AGGREGATION = 0x04 | 
| static constexpr uint8 | PROP_WINDOW_FUNCTION = 0x08 | 
| static constexpr uint8 | PROP_ROLLUP_EXPR = 0x10 | 
| Set if the item or one or more of the underlying items contains a ROLLUP expression.  More... | |
| static constexpr uint8 | PROP_GROUPING_FUNC = 0x20 | 
| Set if the item or one or more of the underlying items is a GROUPING function.  More... | |
Represents [schema.
][table.]* in a select list
Item_asterisk is used to insert placeholder objects for the special select list item * (asterisk) into AST. Those placeholder objects are to be substituted later with e.g. a list of real table columns by a resolver (
      
  | 
  private | 
      
  | 
  inline | 
Constructor.
| pos | Location of the * (asterisk) lexeme. | 
| opt_schema_name | Schema name or nullptr. | 
| opt_table_name | Table name or nullptr. | 
Resolve the name of a column reference.
The method resolves the column reference represented by 'this' as a column present in one of: FROM clause, SELECT clause, GROUP BY clause of a query Q, or in outer queries that contain Q.
The name resolution algorithm used is (where [T_j] is an optional table name that qualifies the column name):
Notice that compared to Item_ref::fix_fields, here we first search the FROM clause, and then we search the SELECT and GROUP BY clauses.
For the case where a table reference is already set for the field, we just need to make a call to set_field(). This is true for a cloned field used during condition pushdown to derived tables. A cloned field inherits table reference, depended_from, cached_table, context and field from the original field. set_field() ensures all other members are set correctly.
| [in] | thd | current thread | 
| [in,out] | reference | view column if this item was resolved to a view column | 
Reimplemented from Item_field.
      
  | 
  inlineoverridevirtual | 
Checks if the current object represents an asterisk select list item.
Reimplemented from Item_field.
      
  | 
  overridevirtual | 
The same as contextualize() but with additional parameter.
This function finalize the construction of Item objects (see the Item(POS) constructor): we can access/change parser contexts from the itemize() function.
| pc | current parse context | |
| [out] | res | pointer to "this" or to a newly allocated replacement object to use in the Item tree instead | 
| false | success | 
| true | syntax/OOM/etc error | 
Reimplemented from Item_field.