MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
eval0eval.cc File Reference
#include "eval0eval.h"
#include "data0data.h"
#include "row0sel.h"
#include "rem0cmp.h"
Include dependency graph for eval0eval.cc:

Go to the source code of this file.

Functions

UNIV_INLINE que_node_t * que_node_get_like_node (que_node_t *node)
UNIV_INTERN byte * eval_node_alloc_val_buf (que_node_t *node, ulint size)
UNIV_INTERN void eval_node_free_val_buf (que_node_t *node)
UNIV_INLINE ibool eval_cmp_like (que_node_t *arg1, que_node_t *arg2)
ibool eval_cmp (func_node_t *cmp_node)
UNIV_INLINE void eval_logical (func_node_t *logical_node)
UNIV_INLINE void eval_arith (func_node_t *arith_node)
UNIV_INLINE void eval_aggregate (func_node_t *node)
UNIV_INLINE void eval_notfound (func_node_t *func_node)
UNIV_INLINE void eval_substr (func_node_t *func_node)
UNIV_INLINE void eval_binary_to_number (func_node_t *func_node)
UNIV_INLINE void eval_to_binary (func_node_t *func_node)
UNIV_INLINE void eval_predefined (func_node_t *func_node)
UNIV_INTERN void eval_func (func_node_t *func_node)

Detailed Description

SQL evaluator: evaluates simple data structures, like expressions, in a query graph

Created 12/29/1997 Heikki Tuuri

Definition in file eval0eval.cc.

Function Documentation

UNIV_INLINE void eval_aggregate ( func_node_t node)

Evaluates an aggregate operation node.

Parameters
nodein: aggregate operation node

Definition at line 352 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_arith ( func_node_t arith_node)

Evaluates an arithmetic operation node.

Parameters
arith_nodein: arithmetic operation node

Definition at line 308 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_binary_to_number ( func_node_t func_node)

Evaluates a predefined function node.

Parameters
func_nodein: function node

Definition at line 655 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

ibool eval_cmp ( func_node_t cmp_node)

Evaluates a comparison node.

Returns
the result of the comparison in: comparison node
Parameters
cmp_nodein: comparison node

Definition at line 202 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN void eval_func ( func_node_t func_node)

Evaluates a function node.

Parameters
func_nodein: function node

Definition at line 875 of file eval0eval.cc.

Here is the call graph for this function:

UNIV_INLINE void eval_logical ( func_node_t logical_node)

Evaluates a logical operation node.

Parameters
logical_nodein: logical operation node

Definition at line 267 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN byte* eval_node_alloc_val_buf ( que_node_t *  node,
ulint  size 
)

Allocate a buffer from global dynamic memory for a value of a que_node. NOTE that this memory must be explicitly freed when the query graph is freed. If the node already has an allocated buffer, that buffer is freed here. NOTE that this is the only function where dynamic memory should be allocated for a query node val field.

Returns
pointer to allocated buffer
Parameters
nodein: query graph node; sets the val field data field to point to the new buffer, and len field equal to size
sizein: buffer size

Definition at line 66 of file eval0eval.cc.

Here is the call graph for this function:

UNIV_INTERN void eval_node_free_val_buf ( que_node_t *  node)

Free the buffer from global dynamic memory for a value of a que_node, if it has been allocated in the above function. The freeing for pushed column values is done in sel_col_prefetch_buf_free.

Parameters
nodein: query graph node

Definition at line 106 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_notfound ( func_node_t func_node)

Evaluates a notfound-function node.

Parameters
func_nodein: function node

Definition at line 473 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_predefined ( func_node_t func_node)

Evaluates a predefined function node.

Parameters
func_nodein: function node

Definition at line 783 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_substr ( func_node_t func_node)

Evaluates a substr-function node.

Parameters
func_nodein: function node

Definition at line 510 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void eval_to_binary ( func_node_t func_node)

Evaluates a predefined function node. If the first argument is an integer, this function looks at the second argument which is the integer length in bytes, and converts the integer to a VARCHAR. If the first argument is of some other type, this function converts it to BINARY.

Parameters
func_nodein: function node

Definition at line 739 of file eval0eval.cc.

Here is the call graph for this function:

Here is the caller graph for this function: