MySQL 8.0.40
Source Code Documentation
|
SQL parser symbol table. More...
#include "current_thd.h"
#include "pars0sym.h"
#include "data0data.h"
#include "data0type.h"
#include "dict0dd.h"
#include "eval0eval.h"
#include "mem0mem.h"
#include "pars0grm.h"
#include "pars0pars.h"
#include "que0que.h"
#include "row0sel.h"
Functions | |
sym_tab_t * | sym_tab_create (mem_heap_t *heap) |
Creates a symbol table for a single stored procedure or query. More... | |
void | sym_tab_free_private (sym_tab_t *sym_tab) |
Frees the memory allocated dynamically AFTER parsing phase for variables etc. More... | |
sym_node_t * | sym_tab_add_int_lit (sym_tab_t *sym_tab, ulint val) |
Adds an integer literal to a symbol table. More... | |
sym_node_t * | sym_tab_add_str_lit (sym_tab_t *sym_tab, const byte *str, ulint len) |
Adds a string literal to a symbol table. More... | |
sym_node_t * | sym_tab_add_bound_lit (sym_tab_t *sym_tab, const char *name, ulint *lit_type) |
Add a bound literal to a symbol table. More... | |
sym_node_t * | sym_tab_rebind_lit (sym_node_t *node, const void *address, ulint length) |
sym_node_t * | sym_tab_add_null_lit (sym_tab_t *sym_tab) |
Adds an SQL null literal to a symbol table. More... | |
sym_node_t * | sym_tab_add_id (sym_tab_t *sym_tab, byte *name, ulint len) |
Adds an identifier to a symbol table. More... | |
sym_node_t * | sym_tab_add_bound_id (sym_tab_t *sym_tab, const char *name) |
Add a bound identifier to a symbol table. More... | |
SQL parser symbol table.
Created 12/15/1997 Heikki Tuuri
sym_node_t * sym_tab_add_bound_id | ( | sym_tab_t * | sym_tab, |
const char * | name | ||
) |
Add a bound identifier to a symbol table.
sym_tab | in: symbol table |
name | in: name of bound id |
sym_node_t * sym_tab_add_bound_lit | ( | sym_tab_t * | sym_tab, |
const char * | name, | ||
ulint * | lit_type | ||
) |
Add a bound literal to a symbol table.
sym_tab | in: symbol table |
name | in: name of bound literal |
lit_type | out: type of literal (PARS_*_LIT) |
sym_node_t * sym_tab_add_id | ( | sym_tab_t * | sym_tab, |
byte * | name, | ||
ulint | len | ||
) |
Adds an identifier to a symbol table.
sym_tab | in: symbol table |
name | in: identifier name |
len | in: identifier length |
sym_node_t * sym_tab_add_int_lit | ( | sym_tab_t * | sym_tab, |
ulint | val | ||
) |
Adds an integer literal to a symbol table.
sym_tab | in: symbol table |
val | in: integer value |
sym_node_t * sym_tab_add_null_lit | ( | sym_tab_t * | sym_tab | ) |
Adds an SQL null literal to a symbol table.
sym_tab | in: symbol table |
sym_node_t * sym_tab_add_str_lit | ( | sym_tab_t * | sym_tab, |
const byte * | str, | ||
ulint | len | ||
) |
Adds a string literal to a symbol table.
Adds an string literal to a symbol table.
sym_tab | in: symbol table |
str | in: string with no quotes around it |
len | in: string length |
sym_tab_t * sym_tab_create | ( | mem_heap_t * | heap | ) |
Creates a symbol table for a single stored procedure or query.
heap | in: memory heap where to create |
void sym_tab_free_private | ( | sym_tab_t * | sym_tab | ) |
Frees the memory allocated dynamically AFTER parsing phase for variables etc.
in the symbol table. Does not free the mem heap where the table was originally created. Frees also SQL explicit cursor definitions.
sym_tab | in, own: symbol table |
sym_node_t * sym_tab_rebind_lit | ( | sym_node_t * | node, |
const void * | address, | ||
ulint | length | ||
) |