|
MySQL 5.6.14 Source Code Document
|


Go to the source code of this file.
Classes | |
| struct | fts_ast_term_t |
| struct | fts_ast_text_t |
| struct | fts_ast_list_t |
| struct | fts_ast_node_t |
| struct | fts_ast_state_t |
Typedefs | |
| typedef dberr_t(* | fts_ast_callback )(fts_ast_oper_t, fts_ast_node_t *, void *) |
Enumerations | |
| enum | fts_ast_type_t { FTS_AST_OPER, FTS_AST_NUMB, FTS_AST_TERM, FTS_AST_TEXT, FTS_AST_LIST, FTS_AST_SUBEXP_LIST } |
| enum | fts_ast_oper_t { FTS_NONE, FTS_IGNORE, FTS_EXIST, FTS_NEGATE, FTS_INCR_RATING, FTS_DECR_RATING, FTS_DISTANCE, FTS_IGNORE_SKIP, FTS_EXIST_SKIP } |
Variables | |
| UNIV_INTERN dberr_t | warn_unused_result |
| UNIV_INTERN fts_lexer_t | malloc |
The FTS query parser (AST) abstract syntax tree routines
Created 2007/03/16/03 Sunny Bains
Definition in file fts0ast.h.
| enum fts_ast_oper_t |
| FTS_NONE |
No operator |
| FTS_IGNORE |
Ignore rows that contain this word |
| FTS_EXIST |
Include rows that contain this word |
| FTS_NEGATE |
Include rows that contain this word but rank them lower |
| FTS_INCR_RATING |
Increase the rank for this word |
| FTS_DECR_RATING |
Decrease the rank for this word |
| FTS_DISTANCE |
Proximity distance |
| FTS_IGNORE_SKIP |
Transient node operator signifies that this is a FTS_IGNORE node, and ignored in the first pass of fts_ast_visit() |
| FTS_EXIST_SKIP |
Transient node operator signifies that this ia a FTS_EXIST node, and ignored in the first pass of fts_ast_visit() |
| enum fts_ast_type_t |
| FTS_AST_OPER |
Operator |
| FTS_AST_NUMB | |
| FTS_AST_TERM |
Term (or word) |
| FTS_AST_TEXT |
Text string |
| FTS_AST_LIST |
Expression list |
| FTS_AST_SUBEXP_LIST |
Sub-Expression list |
| fts_ast_node_t* fts_ast_add_node | ( | fts_ast_node_t * | node, |
| fts_ast_node_t * | elem | ||
| ) |
in: (sub) expr to add
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.

| fts_ast_node_t* fts_ast_create_node_list | ( | void * | arg, |
| fts_ast_node_t * | expr | ||
| ) |
in: ast 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.


| fts_ast_node_t* fts_ast_create_node_oper | ( | void * | arg, |
| fts_ast_oper_t | oper | ||
| ) |
in: ast operator
Create a operator fts_ast_node_t.
| arg | in: ast state instance |
| oper | in: ast operator |
Definition at line 63 of file fts0ast.cc.

| fts_ast_node_t* fts_ast_create_node_subexp_list | ( | void * | arg, |
| fts_ast_node_t * | expr | ||
| ) |
in: ast expr instance
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.

| fts_ast_node_t* fts_ast_create_node_term | ( | void * | arg, |
| const char * | ptr | ||
| ) |
in: term string
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.

| fts_ast_node_t* fts_ast_create_node_text | ( | void * | arg, |
| const char * | ptr | ||
| ) |
in: text string
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.
Free a fts_ast_node_t instance.
| node | in: the node to free |
Definition at line 267 of file fts0ast.cc.

| void fts_ast_node_print | ( | fts_ast_node_t * | node | ) |
in: ast node to print
Print an ast node.
| node | in: ast node to print |
Definition at line 436 of file fts0ast.cc.


| void fts_ast_state_add_node | ( | fts_ast_state_t * | state, |
| fts_ast_node_t * | node | ||
| ) |
in: node to add to state
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.

| void fts_ast_state_free | ( | fts_ast_state_t * | state | ) |
in: state instance to free
Free node and expr allocations.
| state | in: ast state to free |
Definition at line 407 of file fts0ast.cc.

| void fts_ast_term_set_distance | ( | fts_ast_node_t * | node, |
| ulint | distance | ||
| ) |
in: the text proximity 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.
| void fts_ast_term_set_wildcard | ( | fts_ast_node_t * | node | ) |
in: term to change
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.
| oper | in: FTS operator |
| node | in: instance to traverse |
| visitor | in: callback |
| arg | in: callback arg |
| has_ignore | out: whether we encounter and ignored processing an operator, currently we only ignore FTS_IGNORE operator |
| UNIV_INTERN dberr_t fts_ast_visit_sub_exp | ( | fts_ast_node_t * | node, |
| fts_ast_callback | visitor, | ||
| void * | arg | ||
| ) |
Process (nested) sub-expression, create a new result set to store the sub-expression result by processing nodes under current sub-expression list. Merge the sub-expression result with that of parent expression list.
| node | in: instance to traverse |
| visitor | in: callback |
| arg | in: callback arg |

| UNIV_INTERN fts_lexer_t* fts_lexer_create | ( | ibool | boolean_mode, |
| const byte * | query, | ||
| ulint | query_len | ||
| ) |
| boolean_mode | in: query type |
| query | in: query string |
| query_len | in: query string len |
| UNIV_INTERN void fts_lexer_free | ( | fts_lexer_t * | fts_lexer | ) |
| fts_lexer | in: lexer instance to free |
| int fts_parse | ( | fts_ast_state_t * | state | ) |
in: ast state instance.