InnoDB Plugin  1.0
Data Structures | Macros | Enumerations | Functions
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.

Data Structures

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

Macro Definition Documentation

#define SYM_CLUST_FIELD_NO   0

Index of sym_node_t::field_nos corresponding to the clustered index

#define SYM_SEC_FIELD_NO   1

Index of sym_node_t::field_nos corresponding to a secondary index

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

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
Parameters
sym_tabin: symbol table
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)
Parameters
sym_tabin: symbol table
namein: name of bound literal
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
Parameters
sym_tabin: symbol table
namein: identifier name
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
Parameters
sym_tabin: symbol table
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
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
Parameters
sym_tabin: symbol table
strin: string with no quotes around it
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
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