MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pars0sym.h File Reference
#include "univ.i"
#include "que0types.h"
#include "usr0types.h"
#include "dict0types.h"
#include "pars0types.h"
#include "row0types.h"
#include "pars0sym.ic"
Include dependency graph for pars0sym.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sym_node_t
struct  sym_tab_t

Macros

#define SYM_CLUST_FIELD_NO   0
#define SYM_SEC_FIELD_NO   1

Enumerations

enum  sym_tab_entry {
  SYM_UNSET, SYM_VAR = 91, SYM_IMPLICIT_VAR, SYM_LIT,
  SYM_TABLE_REF_COUNTED, SYM_TABLE, SYM_COLUMN, SYM_CURSOR,
  SYM_PROCEDURE_NAME, SYM_INDEX, SYM_FUNCTION
}

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

Macro Definition Documentation

#define SYM_CLUST_FIELD_NO   0

Index of sym_node_t::field_nos corresponding to the clustered index

Definition at line 123 of file pars0sym.h.

#define SYM_SEC_FIELD_NO   1

Index of sym_node_t::field_nos corresponding to a secondary index

Definition at line 125 of file pars0sym.h.

Enumeration Type Documentation

Types of a symbol table node

Enumerator:
SYM_UNSET 

Unset entry.

SYM_VAR 

declared parameter or local variable of a procedure

SYM_IMPLICIT_VAR 

storage for a intermediate result of a calculation

SYM_LIT 

literal

SYM_TABLE_REF_COUNTED 

database table name, ref counted. Must be closed explicitly.

SYM_TABLE 

database table name

SYM_COLUMN 

database table name

SYM_CURSOR 

named cursor

SYM_PROCEDURE_NAME 

stored procedure name

SYM_INDEX 

database index name

SYM_FUNCTION 

user function name

Definition at line 128 of file pars0sym.h.

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 in: name of bound id

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 out: type of literal (PARS_*_LIT)

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 in: identifier length

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 in: integer value

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 in: symbol table

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 an string literal to a symbol table.

Returns
symbol table node in: string length

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 in: memory heap where to create

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. in, own: symbol table

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: