![]() |
MySQL 8.0.43
Source Code Documentation
|
#include "sql/item_xmlfunc.h"#include <assert.h>#include <sys/types.h>#include <algorithm>#include <cstdio>#include <cstring>#include <memory>#include "m_ctype.h"#include "m_string.h"#include "my_sys.h"#include "mysql/udf_registration_types.h"#include "mysql_com.h"#include "mysqld_error.h"#include "sql/check_stack.h"#include "sql/current_thd.h"#include "sql/derror.h"#include "sql/item.h"#include "sql/item_cmpfunc.h"#include "sql/item_func.h"#include "sql/sp_pcontext.h"#include "sql/sql_class.h"#include "sql/sql_const.h"#include "sql/sql_error.h"#include "sql/sql_lex.h"Classes | |
| struct | MY_XPATH_LEX |
| struct | MY_XPATH_FLT |
| struct | MY_XPATH_FUNC |
| struct | MY_XPATH |
| class | Item_nodeset_func |
| class | Item_nodeset_func_rootelement |
| class | Item_nodeset_func_union |
| class | Item_nodeset_func_axisbyname |
| class | Item_nodeset_func_selfbyname |
| class | Item_nodeset_func_childbyname |
| class | Item_nodeset_func_descendantbyname |
| class | Item_nodeset_func_ancestorbyname |
| class | Item_nodeset_func_parentbyname |
| class | Item_nodeset_func_attributebyname |
| class | Item_nodeset_func_predicate |
| class | Item_nodeset_func_elementbyindex |
| class | Item_bool |
| class | Item_xpath_cast_bool |
| class | Item_xpath_cast_number |
| class | Item_nodeset_context_cache |
| class | Item_func_xpath_position |
| class | Item_func_xpath_count |
| class | Item_func_xpath_sum |
| class | Item_nodeset_to_const_comparator |
| struct | my_xpath_keyword_names_st |
| struct | MY_XML_USER_DATA |
Typedefs | |
| using | XPathFilter = std::vector< MY_XPATH_FLT > |
| using | ActiveNodes = std::vector< bool > |
Variables | |
| static char | simpletok [128] |
| static struct my_xpath_keyword_names_st | my_keyword_names [] |
| static struct my_xpath_keyword_names_st | my_axis_names [] |
| static struct my_xpath_keyword_names_st | my_nodetype_names [] |
| static MY_XPATH_FUNC | my_func_names3 [] |
| static MY_XPATH_FUNC | my_func_names4 [] |
| static MY_XPATH_FUNC | my_func_names5 [] |
| static MY_XPATH_FUNC | my_func_names6 [] |
| static MY_XPATH_FUNC | my_func_names [] |
| #define MAX_LEVEL 256 |
| #define MY_XPATH_AXIS_ANCESTOR 0 |
| #define MY_XPATH_AXIS_ANCESTOR_OR_SELF 1 |
| #define MY_XPATH_AXIS_ATTRIBUTE 2 |
| #define MY_XPATH_AXIS_CHILD 3 |
| #define MY_XPATH_AXIS_DESCENDANT 4 |
| #define MY_XPATH_AXIS_DESCENDANT_OR_SELF 5 |
| #define MY_XPATH_AXIS_FOLLOWING 6 |
| #define MY_XPATH_AXIS_FOLLOWING_SIBLING 7 |
| #define MY_XPATH_AXIS_NAMESPACE 8 |
| #define MY_XPATH_AXIS_PARENT 9 |
| #define MY_XPATH_AXIS_PRECEDING 10 |
| #define MY_XPATH_AXIS_PRECEDING_SIBLING 11 |
| #define MY_XPATH_AXIS_SELF 12 |
| #define MY_XPATH_LEX_AND 'C' |
| #define MY_XPATH_LEX_ASTERISK '*' |
| #define MY_XPATH_LEX_AT '@' |
| #define MY_XPATH_LEX_AXIS 'I' |
| #define MY_XPATH_LEX_COLON ':' |
| #define MY_XPATH_LEX_COMMA ',' |
| #define MY_XPATH_LEX_DIGITS 'd' |
| #define MY_XPATH_LEX_DIV 'E' |
| #define MY_XPATH_LEX_DOLLAR '$' |
| #define MY_XPATH_LEX_DOT '.' |
| #define MY_XPATH_LEX_EOF 'B' |
| #define MY_XPATH_LEX_EQ '=' |
| #define MY_XPATH_LEX_ERROR 'A' |
| #define MY_XPATH_LEX_EXCL '!' |
| #define MY_XPATH_LEX_FUNC 'G' |
| #define MY_XPATH_LEX_GE 'K' |
| #define MY_XPATH_LEX_GREATER '>' |
| #define MY_XPATH_LEX_IDENT 'i' |
| #define MY_XPATH_LEX_LB '[' |
| #define MY_XPATH_LEX_LE 'J' |
| #define MY_XPATH_LEX_LESS '<' |
| #define MY_XPATH_LEX_LP '(' |
| #define MY_XPATH_LEX_MINUS '-' |
| #define MY_XPATH_LEX_MOD 'F' |
| #define MY_XPATH_LEX_NODETYPE 'H' |
| #define MY_XPATH_LEX_OR 'D' |
| #define MY_XPATH_LEX_PLUS '+' |
| #define MY_XPATH_LEX_RB ']' |
| #define MY_XPATH_LEX_RP ')' |
| #define MY_XPATH_LEX_SLASH '/' |
| #define MY_XPATH_LEX_STRING 's' |
| #define MY_XPATH_LEX_VLINE '|' |
| #define my_xpath_parse_Expr | ( | x | ) | my_xpath_parse_OrExpr((x)) |
| #define my_xpath_parse_PredicateExpr | ( | x | ) | my_xpath_parse_Expr((x)) |
| using ActiveNodes = std::vector<bool> |
| using XPathFilter = std::vector<MY_XPATH_FLT> |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Scan Variable reference.
Implements parsing of two syntax structures:
Standard XPath syntax [36], for SP variables:
VariableReference ::= '$' QName
Finds a SP variable with the given name. If outside of a SP context, or variable with the given name doesn't exists, then error is returned.
Non-standard syntax - MySQL extension for user variables:
VariableReference ::= '$' '@' QName
Item, corresponding to the variable, is returned in xpath->item in both cases.
| xpath | pointer to XPath structure |
| 1 | Success |
| 0 | Failure |
|
static |
| int xml_enter | ( | MY_XML_PARSER * | st, |
| const char * | attr, | ||
| size_t | len | ||
| ) |
| int xml_leave | ( | MY_XML_PARSER * | st, |
| const char * | attr, | ||
| size_t | len | ||
| ) |
| int xml_value | ( | MY_XML_PARSER * | st, |
| const char * | attr, | ||
| size_t | len | ||
| ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |