InnoDB Plugin  1.0
Functions
eval0eval.ic File Reference
#include "que0que.h"
#include "rem0cmp.h"
#include "pars0grm.h"
Include dependency graph for eval0eval.ic:
This graph shows which files directly or indirectly include this file:

Functions

UNIV_INTERN void eval_func (func_node_t *func_node)
UNIV_INTERN byte * eval_node_alloc_val_buf (que_node_t *node, ulint size)
UNIV_INLINE byte * eval_node_ensure_val_buf (que_node_t *node, ulint size)
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 ibool eval_node_get_ibool_val (que_node_t *node)
UNIV_INLINE void eval_node_set_ibool_val (func_node_t *func_node, ibool val)
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)

Detailed Description

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

Created 12/29/1997 Heikki Tuuri

Function Documentation

UNIV_INLINE void eval_exp ( que_node_t *  exp_node)

Evaluates an expression.

Parameters
exp_nodein: expression
UNIV_INTERN void eval_func ( func_node_t func_node)

Evaluates a function node. in: function node

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 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 in: buffer size
Parameters
nodein: query graph node; sets the val field data field to point to the new buffer, and len field equal to size
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.

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

Copies a query node value to another node.

Parameters
node1in: node to copy to
node2in: node to copy from
UNIV_INLINE byte* eval_node_ensure_val_buf ( que_node_t *  node,
ulint  size 
)

Allocates a new buffer if needed.

Returns
pointer to 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
UNIV_INLINE ibool eval_node_get_ibool_val ( que_node_t *  node)

Gets a iboolean value from a query node.

Returns
iboolean value
Parameters
nodein: query graph node
UNIV_INLINE lint eval_node_get_int_val ( que_node_t *  node)

Gets an integer non-SQL null value from an expression node.

Returns
integer value
Parameters
nodein: expression node
UNIV_INLINE void eval_node_set_ibool_val ( func_node_t func_node,
ibool  val 
)

Sets a iboolean value as the value of a function node.

Parameters
func_nodein: function node
valin: value to set
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.

Parameters
nodein: expression node
valin: value to set
UNIV_INLINE void eval_sym ( sym_node_t sym_node)

Evaluates a symbol table symbol.

Parameters
sym_nodein: symbol table node