MySQL 8.0.40
Source Code Documentation
|
SQL evaluator: evaluates simple data structures, like expressions, in a query graph. More...
Functions | |
void | eval_func (func_node_t *func_node) |
Evaluates a function node. More... | |
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. More... | |
static byte * | eval_node_ensure_val_buf (que_node_t *node, ulint size) |
Allocates a new buffer if needed. More... | |
static void | eval_sym (sym_node_t *sym_node) |
Evaluates a symbol table symbol. More... | |
static void | eval_exp (que_node_t *exp_node) |
Evaluates an expression. More... | |
static void | eval_node_set_int_val (que_node_t *node, lint val) |
Sets an integer value as the value of an expression node. More... | |
static lint | eval_node_get_int_val (que_node_t *node) |
Gets an integer non-SQL null value from an expression node. More... | |
static bool | eval_node_get_bool_val (que_node_t *node) |
Gets a boolean value from a query node. More... | |
static void | eval_node_set_bool_val (func_node_t *func_node, bool val) |
Sets a boolean value as the value of a function node. More... | |
static 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. More... | |
static void | eval_node_copy_val (que_node_t *node1, que_node_t *node2) |
Copies a query node value to another node. More... | |
SQL evaluator: evaluates simple data structures, like expressions, in a query graph.
Created 12/29/1997 Heikki Tuuri
|
inlinestatic |
Evaluates an expression.
exp_node | in: expression |
void eval_func | ( | func_node_t * | func_node | ) |
Evaluates a function node.
in: function node
func_node | in: function node |
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.
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.
node | in: query graph node; sets the val field data field to point to the new buffer, and len field equal to size |
size | in: buffer size |
|
inlinestatic |
Copies a binary string value as the value of a query graph node.
Allocates a new buffer if necessary.
node | in: query graph node |
str | in: binary string |
len | in: string length or UNIV_SQL_NULL |
|
inlinestatic |
Copies a query node value to another node.
node1 | in: node to copy to |
node2 | in: node to copy from |
|
inlinestatic |
Allocates a new buffer if needed.
node | in: query graph node; sets the val field data field to point to the new buffer, and len field equal to size |
size | in: buffer size |
|
inlinestatic |
Gets a boolean value from a query node.
node | in: query graph node |
|
inlinestatic |
Gets an integer non-SQL null value from an expression node.
node | in: expression node |
|
inlinestatic |
Sets a boolean value as the value of a function node.
func_node | in: function node |
val | in: value to set |
|
inlinestatic |
Sets an integer value as the value of an expression node.
node | in: expression node |
val | in: value to set |
|
inlinestatic |
Evaluates a symbol table symbol.
sym_node | in: symbol table node |