MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Create_func Class Reference

#include <item_create.h>

Inheritance diagram for Create_func:

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.

Definition at line 34 of file item_create.h.

Constructor & Destructor Documentation

Create_func::Create_func ( )
inlineprotected

Constructor

Definition at line 62 of file item_create.h.

virtual Create_func::~Create_func ( )
inlineprotectedvirtual

Destructor

Definition at line 64 of file item_create.h.

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: