Drizzled Public API Documentation

eval0eval.h File Reference
#include "univ.i"
#include "que0types.h"
#include "pars0sym.h"
#include "pars0pars.h"

Go to the source code of this file.

Functions

UNIV_INTERN void eval_node_free_val_buf (que_node_t *node)
 
UNIV_INLINE void eval_sym (sym_node_t *sym_node)
 
UNIV_INLINE void eval_exp (que_node_t *exp_node)
 
UNIV_INLINE void eval_node_set_int_val (que_node_t *node, lint val)
 
UNIV_INLINE lint eval_node_get_int_val (que_node_t *node)
 
UNIV_INLINE void eval_node_copy_and_alloc_val (que_node_t *node, const byte *str, ulint len)
 
UNIV_INLINE void eval_node_copy_val (que_node_t *node1, que_node_t *node2)
 
UNIV_INLINE ibool eval_node_get_ibool_val (que_node_t *node)
 
UNIV_INTERN ibool eval_cmp (func_node_t *cmp_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.h.

Function Documentation

UNIV_INTERN ibool eval_cmp ( func_node_t cmp_node)

Evaluates a comparison node.

Returns
the result of the comparison in: comparison node

Evaluates a comparison node.

Returns
the result of the comparison
Parameters
cmp_nodein: comparison node

Definition at line 119 of file eval0eval.cc.

References func_node_struct::args, cmp_dfield_dfield(), func_node_struct::func, que_node_get_next(), que_node_get_type(), que_node_get_val(), and ut_ad.

UNIV_INLINE void eval_exp ( que_node_t *  exp_node)

Evaluates an expression. in: expression

Referenced by assign_step(), for_step(), if_step(), and while_step().

UNIV_INLINE void eval_node_copy_and_alloc_val ( que_node_t *  node,
const byte *  str,
ulint  len 
)

Copies a binary string value as the value of a query graph node. Allocates a new buffer if necessary. in: string length or UNIV_SQL_NULL

Parameters
nodein: query graph node
strin: binary string
UNIV_INLINE void eval_node_copy_val ( que_node_t *  node1,
que_node_t *  node2 
)

Copies a query node value to another node. in: node to copy from

Parameters
node1in: node to copy to

Referenced by assign_step().

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. in: query graph 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 93 of file eval0eval.cc.

References mem_free, que_node_get_type(), que_node_get_val(), que_node_get_val_buf_size(), ut_a, and ut_ad.

UNIV_INLINE ibool eval_node_get_ibool_val ( que_node_t *  node)

Gets a iboolean value from a query node.

Returns
iboolean value in: query graph node

Referenced by if_step(), and while_step().

UNIV_INLINE lint eval_node_get_int_val ( que_node_t *  node)

Gets an integer value from an expression node.

Returns
integer value in: expression node

Referenced by for_step(), and pars_column_def().

UNIV_INLINE void eval_node_set_int_val ( que_node_t *  node,
lint  val 
)

Sets an integer value as the value of an expression node. in: value to set

Parameters
nodein: expression node

Referenced by for_step().

UNIV_INLINE void eval_sym ( sym_node_t sym_node)

Evaluates a symbol table symbol. in: symbol table node