MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / xml_enter

Function xml_enter

sql/item_xmlfunc.cc:2650–2668  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2648extern "C" int xml_enter(MY_XML_PARSER *st,const char *attr, size_t len);
2649
2650int xml_enter(MY_XML_PARSER *st,const char *attr, size_t len)
2651{
2652 MY_XML_USER_DATA *data= (MY_XML_USER_DATA*)st->user_data;
2653 uint numnodes= data->pxml->length() / sizeof(MY_XML_NODE);
2654 MY_XML_NODE node;
2655
2656 node.parent= data->parent; // Set parent for the new node to old parent
2657 data->parent= numnodes; // Remember current node as new parent
2658 DBUG_ASSERT(data->level <= MAX_LEVEL);
2659 data->pos[data->level]= numnodes;
2660 if (data->level < MAX_LEVEL)
2661 node.level= data->level++;
2662 else
2663 return MY_XML_ERROR;
2664 node.type= st->current_node_type; // TAG or ATTR
2665 node.beg= attr;
2666 node.end= attr + len;
2667 return append_node(data->pxml, &node) ? MY_XML_ERROR : MY_XML_OK;
2668}
2669
2670
2671/*

Callers 1

parse_xmlMethod · 0.85

Calls 2

append_nodeFunction · 0.85
lengthMethod · 0.45

Tested by

no test coverage detected