Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

Query data node using cps-path

...

Table of Contents

References

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1215

...

In order to search across given json the Json data here with multiple attributes under different lists OR condition support this implementationis used.

we can combine two leaf elements using “OR” condition this would give result. Below are the examples:

  • Here cps-path //books[@pub_year=1994 or @price=1099]]
    • Since, pub_year=1994 and price=1099 are under different list it gives the required response

...

  • Here cps-path //books[@pub_year=1994 or @price=895 or @title="Far Horizons"]
    • multiple attributes pub_year=1994 and price=895 and title=Far Horizons  are under different list it gives the required response                                                        

...

  • Also cps-path //books[@price=895 or @title="xyz"]
    •  price attribute has  non-json value price=895 and title=xyz  which non-json value "  

//books[@pub_year=1994 or @price=895 or @title="Far Horizons"]

Implementation of OR Operator

1.Update antlr parser to recognize OR in leaf-condition
2.Implement required (native) query
3.Add Integration tests for
     a.filter on  mix of string and integer leaf-values
     b.filter on non-json data
     c.filter on combination of multiple AND's as well as OR's
4.Update documentation
5.demo to team 

  Query used  : SELECT * FROM FRAGMENT WHERE anchor_id = :anchorId AND xpath ~ :xpathRegex AND ( attributes @> '{"price":895}' or  attributes @> '{"title":"Far Horizons"}')

Limitations

...

1.Since leaf are stored in Hashmap same keys are not supported, unique keys only supports.

2.Only leaves can be used, leaf-list are not supported

3.Only string and integer values are supported, boolean and float values are not supported.

...