Hierarchical data
A computer-implemented method, system and computer program product for identifying ancestor objects in hierarchical data configured for processing with a query, the query having an associated abstract syntax tree. The abstract syntax tree may be processed so as to generate an augmented abstract syntax tree which includes parent identifiers configured to identify the parent nodes of the query. In this way, a need to pre-parse the data may be alleviated. Instead, the identification of a parent node of a query may be encoded into the abstract syntax tree of the query.
1. A computer-implemented method for identifying ancestor objects in hierarchical data stored in a database configured for processing with a query according to a query language, the query having an associated abstract syntax tree, AST, the method comprising:
processing, by a processing unit of a computing device, the AST associated with the query to determine a parent node of the AST relating to the query; and
augmenting, by an augmentation component of the computing device, the AST with metadata containing a parent identifier configured to identify the determined parent node of the query so as to generate an augmented AST thereby eliminating a need to pre-parse input data,
wherein the augmenting of the AST with the parent identifier configured to identify the determined parent node so as to generate the augmented AST comprises:
adding an ancestor attribute to the parent node of the AST,
wherein the adding of the ancestor attribute to the parent node of the AST comprises:
setting a value of the ancestor attribute to a predetermined value,
wherein the predetermined value is based on a counter value, the counter value being incremented for each parent node that is identified.
2. The method as recited in claim 1 , wherein the processing of the AST associated with the query to determine the parent node of the AST relating to the query comprises:
traversing the AST to determine a node of the AST that represents a parent node of the query.
3. The method as recited in claim 1 , wherein the parent identifier is configured to instruct a query processor to save a reference to the parent node.
4. The method as recited in claim 1 further comprising:
generating the abstract syntax tree by parsing the query.
5. The method as recited in claim 1 further comprising:
storing the augmented AST; and
associating the stored augmented AST with the hierarchical data.
6. The method as recited in claim 1 , wherein the hierarchical data comprises JSON data, wherein the query language is JSONata query language.
7. The method as recited in claim 1 further comprising:
creating a uniquely named label upon encountering an operator in the AST.