InnoDB Plugin
1.0
|
#include "univ.i"
#include "que0types.h"
#include "usr0types.h"
#include "dict0types.h"
#include "pars0types.h"
#include "row0types.h"
#include "pars0sym.ic"
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_t * | sym_tab_create (mem_heap_t *heap) |
UNIV_INTERN void | sym_tab_free_private (sym_tab_t *sym_tab) |
UNIV_INTERN sym_node_t * | sym_tab_add_int_lit (sym_tab_t *sym_tab, ulint val) |
UNIV_INTERN sym_node_t * | sym_tab_add_str_lit (sym_tab_t *sym_tab, const byte *str, ulint len) |
UNIV_INTERN sym_node_t * | sym_tab_add_bound_lit (sym_tab_t *sym_tab, const char *name, ulint *lit_type) |
sym_node_t * | sym_tab_rebind_lit (sym_node_t *node, const void *address, ulint length) |
UNIV_INTERN sym_node_t * | sym_tab_add_null_lit (sym_tab_t *sym_tab) |
UNIV_INTERN sym_node_t * | sym_tab_add_id (sym_tab_t *sym_tab, byte *name, ulint len) |
UNIV_INTERN sym_node_t * | sym_tab_add_bound_id (sym_tab_t *sym_tab, const char *name) |
SQL parser symbol table
Created 12/15/1997 Heikki Tuuri
#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
enum sym_tab_entry |
Types of a symbol table node
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.
sym_tab | in: 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.
sym_tab | in: symbol table |
name | in: 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.
sym_tab | in: symbol table |
name | in: 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.
sym_tab | in: 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.
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.
sym_tab | in: symbol table |
str | in: 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.
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