My Project
Public Member Functions | Protected Member Functions
Create_func Class Reference

#include <item_create.h>

Inheritance diagram for Create_func:
Create_func_arg0 Create_func_arg1 Create_func_arg2 Create_func_arg3 Create_func_no_geom Create_native_func Create_qfunc Create_func_connection_id Create_func_found_rows Create_func_pi Create_func_uuid Create_func_uuid_short Create_func_version Create_func_abs Create_func_acos Create_func_asin Create_func_bin Create_func_bit_count Create_func_bit_length Create_func_ceiling Create_func_char_length Create_func_coercibility Create_func_compress Create_func_cos Create_func_cot Create_func_crc32 Create_func_dayname Create_func_dayofmonth Create_func_dayofweek Create_func_dayofyear Create_func_degrees Create_func_exp Create_func_floor Create_func_from_base64 Create_func_from_days Create_func_hex Create_func_inet6_aton Create_func_inet6_ntoa Create_func_inet_aton Create_func_inet_ntoa Create_func_is_free_lock Create_func_is_ipv4 Create_func_is_ipv4_compat Create_func_is_ipv4_mapped Create_func_is_ipv6 Create_func_is_used_lock Create_func_isnull Create_func_last_day Create_func_lcase Create_func_length Create_func_ln Create_func_load_file Create_func_log10 Create_func_log2 Create_func_ltrim Create_func_md5 Create_func_monthname Create_func_oct Create_func_ord Create_func_quote Create_func_radians Create_func_random_bytes Create_func_release_lock Create_func_reverse Create_func_rtrim Create_func_sec_to_time Create_func_sha Create_func_sign Create_func_sin Create_func_sleep Create_func_soundex Create_func_space Create_func_sqrt Create_func_tan Create_func_time_to_sec Create_func_to_base64 Create_func_to_days Create_func_to_seconds Create_func_ucase Create_func_uncompress Create_func_uncompressed_length Create_func_unhex Create_func_validate_password_strength Create_func_weekday Create_func_weekofyear Create_func_addtime Create_func_benchmark Create_func_date_format Create_func_datediff Create_func_decode Create_func_encode Create_func_find_in_set Create_func_get_lock Create_func_gtid_subset Create_func_gtid_subtract Create_func_ifnull Create_func_instr Create_func_like_range_max Create_func_like_range_min Create_func_makedate Create_func_name_const Create_func_nullif Create_func_period_add Create_func_period_diff Create_func_pow Create_func_sha2 Create_func_str_to_date Create_func_strcmp Create_func_subtime Create_func_time_format Create_func_timediff Create_func_xml_extractvalue Create_func_conv Create_func_convert_tz Create_func_lpad Create_func_maketime Create_func_rpad Create_func_substr_index Create_func_xml_update Create_func_aes_base Create_func_atan Create_func_concat Create_func_concat_ws Create_func_des_decrypt Create_func_des_encrypt Create_func_elt Create_func_encrypt Create_func_export_set Create_func_field Create_func_from_unixtime Create_func_greatest Create_func_last_insert_id Create_func_least Create_func_locate Create_func_log Create_func_make_set Create_func_master_gtid_set_wait Create_func_master_pos_wait Create_func_rand Create_func_round Create_func_unix_timestamp Create_func_year_week Create_sp_func

List of all members.

Public Member Functions

virtual Itemcreate_func (THD *thd, LEX_STRING name, List< Item > *item_list)=0

Protected Member Functions

 Create_func ()
virtual ~Create_func ()

Detailed Description

Public function builder interface. The parser (sql/sql_yacc.yy) uses a factory / builder pattern to construct an Item object for each function call. All the concrete function builders implements this interface, either directly or indirectly with some adapter helpers. Keeping the function creation separated from the bison grammar allows to simplify the parser, and avoid the need to introduce a new token for each function, which has undesirable side effects in the grammar.


Constructor & Destructor Documentation

Create_func::Create_func ( ) [inline, protected]

Constructor

virtual Create_func::~Create_func ( ) [inline, protected, virtual]

Destructor


Member Function Documentation

virtual Item* Create_func::create_func ( THD *  thd,
LEX_STRING  name,
List< Item > *  item_list 
) [pure virtual]

The builder create method. Given the function name and list or arguments, this method creates an Item that represents the function call. In case or errors, a NULL item is returned, and an error is reported. Note that the thd object may be modified by the builder. In particular, the following members/methods can be set/called, depending on the function called and the function possible side effects.

  • thd->lex->binlog_row_based_if_mixed
  • thd->lex->current_context()
  • thd->lex->safe_to_cache_query
  • thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT)
  • thd->lex->uncacheable(UNCACHEABLE_RAND)
  • thd->lex->add_time_zone_tables_to_query_tables(thd)
Parameters:
thdThe current thread
nameThe function name
item_listThe list of arguments to the function, can be NULL
Returns:
An item representing the parsed function call, or NULL

Implemented in Create_func_no_geom, Create_func_arg3, Create_func_arg2, Create_func_arg1, Create_qfunc, Create_func_arg0, and Create_native_func.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines