MySQL 5.6.14 Source Code Document
|
Go to the source code of this file.
Enumerations | |
enum | fts_ast_visit_pass_t { FTS_PASS_FIRST, FTS_PASS_EXIST, FTS_PASS_IGNORE } |
enum fts_ast_visit_pass_t |
Definition at line 32 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_add_node | ( | fts_ast_node_t * | node, |
fts_ast_node_t * | elem | ||
) |
This AST takes ownership of the expr and is responsible for free'ing it.
node | in: list instance |
elem | in: node to add to list |
Definition at line 315 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_create_node_list | ( | void * | arg, |
fts_ast_node_t * | expr | ||
) |
This function takes ownership of the expr and is responsible for free'ing it.
arg | in: ast state instance |
expr | in: ast expr instance |
Definition at line 207 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_create_node_oper | ( | void * | arg, |
fts_ast_oper_t | oper | ||
) |
Create a operator fts_ast_node_t.
arg | in: ast state instance |
oper | in: ast operator |
Definition at line 63 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_create_node_subexp_list | ( | void * | arg, |
fts_ast_node_t * | expr | ||
) |
Create a sub-expression list node. This function takes ownership of expr and is responsible for deleting it.
arg | in: ast state instance |
expr | in: ast expr instance |
Definition at line 228 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_create_node_term | ( | void * | arg, |
const char * | ptr | ||
) |
This function takes ownership of the ptr and is responsible for free'ing it
arg | in: ast state instance |
ptr | in: ast term string |
Definition at line 84 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_create_node_text | ( | void * | arg, |
const char * | ptr | ||
) |
This function takes ownership of the ptr and is responsible for free'ing it.
< We ignore the actual quotes ""
< Skip copying the first quote
arg | in: ast state instance |
ptr | in: ast text string |
Definition at line 159 of file fts0ast.cc.
UNIV_INTERN fts_ast_node_t* fts_ast_free_node | ( | fts_ast_node_t * | node | ) |
Free a fts_ast_node_t instance.
node | in: the node to free |
Definition at line 267 of file fts0ast.cc.
UNIV_INTERN void fts_ast_node_print | ( | fts_ast_node_t * | node | ) |
Print an ast node.
node | in: ast node to print |
Definition at line 436 of file fts0ast.cc.
UNIV_INTERN void fts_ast_state_add_node | ( | fts_ast_state_t * | state, |
fts_ast_node_t * | node | ||
) |
For tracking node allocations, in case there is an error during parsing.
state | in: ast instance |
node | in: node to add to ast |
Definition at line 347 of file fts0ast.cc.
UNIV_INTERN void fts_ast_state_free | ( | fts_ast_state_t * | state | ) |
Free node and expr allocations.
state | in: ast state to free |
Definition at line 407 of file fts0ast.cc.
UNIV_INTERN void fts_ast_term_set_distance | ( | fts_ast_node_t * | node, |
ulint | distance | ||
) |
Set the proximity attribute of a text node.
node | in/out: text node |
distance | in: the text proximity distance |
Definition at line 391 of file fts0ast.cc.
UNIV_INTERN void fts_ast_term_set_wildcard | ( | fts_ast_node_t * | node | ) |
Set the wildcard attribute of a term.
node | in/out: set attribute of a term node |
Definition at line 366 of file fts0ast.cc.
UNIV_INTERN dberr_t fts_ast_visit | ( | fts_ast_oper_t | oper, |
fts_ast_node_t * | node, | ||
fts_ast_callback | visitor, | ||
void * | arg, | ||
bool * | has_ignore | ||
) |
Traverse the AST - in-order traversal, except for the FTX_EXIST and FTS_IGNORE nodes, which will be ignored in the first pass of each level, and visited in a second and third pass after all other nodes in the same level are visited.
oper | in: current operator |
node | in: current root node |
visitor | in: callback function |
arg | in: arg for callback |
has_ignore | out: true, if the operator was ignored during processing, currently we ignore FTS_EXIST and FTS_IGNORE operators |
Definition at line 483 of file fts0ast.cc.