MySQL 8.3.0
Source Code Documentation
anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn > Class Template Reference

Factory for internal functions that should be invoked from the system views only. More...

Inheritance diagram for anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >:
[legend]

Public Member Functions

Itemcreate_func (THD *thd, LEX_STRING function_name, PT_item_list *item_list) override
 The builder create method. More...
 

Static Public Attributes

static Internal_function_factory< Instantiator_fn > s_singleton
 

Private Member Functions

 Internal_function_factory ()=default
 

Private Attributes

Instantiator_fn m_instantiator
 

Additional Inherited Members

- Protected Member Functions inherited from Create_func
 Create_func ()=default
 
virtual ~Create_func ()=default
 

Detailed Description

template<typename Instantiator_fn>
class anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >

Factory for internal functions that should be invoked from the system views only.

Template Parameters
Instantiator_fnSee Function_factory.

Constructor & Destructor Documentation

◆ Internal_function_factory()

template<typename Instantiator_fn >
anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >::Internal_function_factory ( )
privatedefault

Member Function Documentation

◆ create_func()

template<typename Instantiator_fn >
Item * anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >::create_func ( THD thd,
LEX_STRING  name,
PT_item_list item_list 
)
inlineoverridevirtual

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

Implements Create_func.

Member Data Documentation

◆ m_instantiator

template<typename Instantiator_fn >
Instantiator_fn anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >::m_instantiator
private

◆ s_singleton

template<typename Instantiator_fn >
Internal_function_factory< Instantiator_fn > anonymous_namespace{item_create.cc}::Internal_function_factory< Instantiator_fn >::s_singleton
static

The documentation for this class was generated from the following file: