this function reports two types of information on dtd elements:
1) the loops in dtd and elements on a specific loop; and
2) the number of paths going from the root element to a specific element
this function only removes (1) the identifiers of paths
from the accepting states of the NFA without changing
the structure of the NFA; and (2) the data structure
containing query predicates from the list of queries.
DocumentHandler :: end element:
now evaluating paths and finding accepts is a job here after
attribute checking when the element is read
and data value checking when the data is read;
need to pop the current element context and drop back to the previous one
this function finds element pair between which there is a single path
this information is complementory to elementOnLoop and multiplePathElement
1) if the start or end element in on a loop, the answer is no
2) if the end element is not a multiplePathElement, the answer is yes
ignoring these trivial cases, this functions for the case that the start
element is not on a loop and the end element is a multiplePathElement but
not on a loop.
fn_position -
Static variable in class edu.berkeley.cs.db.yfilterplus.queryparser.xpathparser.sym
fn_text -
Static variable in class edu.berkeley.cs.db.yfilterplus.queryparser.xpathparser.sym
in memory representation of a query:
all the paths are already indexed in QueryIndex:m_nodes
this data structure is the element type of QueryIndex:m_queries
for each path, it contains all predicates and their selectivities,
path nodes (literally), braching levels for nested paths, joins, etc.
compatibility between NFAExecLevel and outputLevel
nfa\output NONE BOOLEAN ONE ALL
NFALevel=0 y n n n
NFALevel=1 y y y n
NFALevel=2 y y y y
NOTE: outputLevel overwrites NFAExecLevel when conflicts occur
so set the output level first and then the compatible NFA execution level
DocumentHandler :: start element:
here we need to check all of our current states
to see which ones match this element and push
the resulting set of states onto the execution
stack.