12. The system of claim 9 , further comprising instructions being executed for: defining a deliberately invalid cursor position to satisfy conditional constraints and to maintain join algorithm correctness if no ancestor exists for a given element position.
9. A system, comprising: at least one processor; and at least one memory unit which stores instructions operable with the at least one processor for improving XML query evaluation, the instructions being executed for: combining path indices and ancestor information to replace at least one physical index cursor with at least one virtual cursor for processing joins; given an element position p of a child query node, retrieving information describing ancestor positions of element position p and levels at which relevant ancestors appear; and finding the first ancestor position pa for which these conditions hold: (1) ancestor position pa>element position pcur, where pcur is the current element position of the virtual cursor, and (2) ancestor position pa is relevant to the virtual cursor, because ancestor position pa has an appropriate tag or text value; wherein the number of postings handled for a join is decreased by modifying the virtual cursors to ignore all postings with non-qualifying path IDs; and wherein movement of the virtual cursors never triggers index I/O operations as the need to scan postings for all internal, non-leaf posting lists is deliberately avoided.