MySQL 8.0.39
Source Code Documentation
|
SQL evaluator: evaluates simple data structures, like expressions, in a query graph. More...
Functions | |
static que_node_t * | que_node_get_like_node (que_node_t *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. More... | |
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. More... | |
static bool | eval_cmp_like (que_node_t *arg1, que_node_t *arg2) |
bool | eval_cmp (func_node_t *cmp_node) |
Evaluates a comparison node. More... | |
static void | eval_logical (func_node_t *logical_node) |
Evaluates a logical operation node. More... | |
static void | eval_arith (func_node_t *arith_node) |
Evaluates an arithmetic operation node. More... | |
static void | eval_aggregate (func_node_t *node) |
Evaluates an aggregate operation node. More... | |
static void | eval_notfound (func_node_t *func_node) |
Evaluates a notfound-function node. More... | |
static void | eval_substr (func_node_t *func_node) |
Evaluates a substr-function node. More... | |
static void | eval_instr (func_node_t *func_node) |
Evaluates an instr-function node. More... | |
static void | eval_concat (func_node_t *func_node) |
Evaluates a predefined function node. More... | |
static void | eval_to_binary (func_node_t *func_node) |
Evaluates a predefined function node. More... | |
static void | eval_length (func_node_t *func_node) |
Evaluate the predefined LENGTH function. More... | |
void | eval_func (func_node_t *func_node) |
Evaluates a function node. More... | |
Variables | |
static byte | eval_dummy |
Dummy address used when we should allocate a buffer of size 0 in eval_node_alloc_val_buf. More... | |
SQL evaluator: evaluates simple data structures, like expressions, in a query graph.
Created 12/29/1997 Heikki Tuuri
|
inlinestatic |
Evaluates an aggregate operation node.
node | in: aggregate operation node |
|
inlinestatic |
Evaluates an arithmetic operation node.
arith_node | in: arithmetic operation node |
bool eval_cmp | ( | func_node_t * | cmp_node | ) |
Evaluates a comparison node.
cmp_node | in: comparison node |
|
inlinestatic |
|
static |
Evaluates a predefined function node.
func_node | in: function node |
void eval_func | ( | func_node_t * | func_node | ) |
Evaluates a function node.
in: function node
func_node | in: function node |
|
static |
Evaluates an instr-function node.
func_node | in: function node |
|
inlinestatic |
Evaluate the predefined LENGTH function.
func_node | in: function node |
|
inlinestatic |
Evaluates a logical operation node.
logical_node | in: logical operation 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 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 |
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.
node | in: query graph node |
|
inlinestatic |
Evaluates a notfound-function node.
func_node | in: function node |
|
inlinestatic |
Evaluates a substr-function node.
func_node | in: function node |
|
inlinestatic |
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.
func_node | in: function node |
|
inlinestatic |
|
static |
Dummy address used when we should allocate a buffer of size 0 in eval_node_alloc_val_buf.