MySQL 9.1.0
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_string.h"
#include "my_sys.h"
#include "mysql/strings/m_ctype.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 |