MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pars0sym.cc File Reference
#include "pars0sym.h"
#include "mem0mem.h"
#include "data0type.h"
#include "data0data.h"
#include "pars0grm.h"
#include "pars0pars.h"
#include "que0que.h"
#include "eval0eval.h"
#include "row0sel.h"
Include dependency graph for pars0sym.cc:

Go to the source code of this file.

Functions

UNIV_INTERN sym_tab_tsym_tab_create (mem_heap_t *heap)
UNIV_INTERN void sym_tab_free_private (sym_tab_t *sym_tab)
UNIV_INTERN sym_node_tsym_tab_add_int_lit (sym_tab_t *sym_tab, ulint val)
UNIV_INTERN sym_node_tsym_tab_add_str_lit (sym_tab_t *sym_tab, const byte *str, ulint len)
UNIV_INTERN sym_node_tsym_tab_add_bound_lit (sym_tab_t *sym_tab, const char *name, ulint *lit_type)
sym_node_tsym_tab_rebind_lit (sym_node_t *node, const void *address, ulint length)
UNIV_INTERN sym_node_tsym_tab_add_null_lit (sym_tab_t *sym_tab)
UNIV_INTERN sym_node_tsym_tab_add_id (sym_tab_t *sym_tab, byte *name, ulint len)
UNIV_INTERN sym_node_tsym_tab_add_bound_id (sym_tab_t *sym_tab, const char *name)

Detailed Description

SQL parser symbol table

Created 12/15/1997 Heikki Tuuri

Definition in file pars0sym.cc.

Function Documentation

UNIV_INTERN sym_node_t* sym_tab_add_bound_id ( sym_tab_t sym_tab,
const char *  name 
)

Add a bound identifier to a symbol table.

Returns
symbol table node
Parameters
sym_tabin: symbol table
namein: name of bound id

Definition at line 403 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN 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.

Returns
symbol table node
Parameters
sym_tabin: symbol table
namein: name of bound literal
lit_typeout: type of literal (PARS_*_LIT)

Definition at line 209 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN sym_node_t* sym_tab_add_id ( sym_tab_t sym_tab,
byte *  name,
ulint  len 
)

Adds an identifier to a symbol table.

Returns
symbol table node
Parameters
sym_tabin: symbol table
namein: identifier name
lenin: identifier length

Definition at line 373 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN sym_node_t* sym_tab_add_int_lit ( sym_tab_t sym_tab,
ulint  val 
)

Adds an integer literal to a symbol table.

Returns
symbol table node
Parameters
sym_tabin: symbol table
valin: integer value

Definition at line 118 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN sym_node_t* sym_tab_add_null_lit ( sym_tab_t sym_tab)

Adds an SQL null literal to a symbol table.

Returns
symbol table node
Parameters
sym_tabin: symbol table

Definition at line 334 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN 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.

Returns
symbol table node
Parameters
sym_tabin: symbol table
strin: string with no quotes around it
lenin: string length

Definition at line 162 of file pars0sym.cc.

Here is the call graph for this function:

UNIV_INTERN sym_tab_t* sym_tab_create ( mem_heap_t heap)

Creates a symbol table for a single stored procedure or query.

Returns
own: symbol table
Parameters
heapin: memory heap where to create

Definition at line 46 of file pars0sym.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN 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.

Parameters
sym_tabin, own: symbol table

Definition at line 70 of file pars0sym.cc.

Here is the call graph for this function:

Here is the caller graph for this function: