Versions Compared

Key

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

...

CPS-1272

Issues & decisions

#

Json Data

CPS-PATH Syntax

Output

1

Below is the sample data ,
 Here  are ways  to use contains keyword :
Code Block
titleJson data
collapsetrue
{
   "test:bookstore":{
      "bookstore-name": "Chapters",
      "categories": [
         {
            "code": "01",
            "name": "SciFi",
            "books": [
               {
                  "authors": [
                     "Iain M. Banks"
                  ],
                  "lang": "english",
                  "price": "895",
                  "pub_year": "1994",
                  "title": "Feersum Endjinn"
               }
            ]
         },
         {
            "name": "kids",
            "code": "02",
            "books": [
               {
                  "authors": [
                     "Philip Pullman"
                  ],
                  "lang": "Science",
                  "price": "699",
                  "pub_year": "1995",
                  "title": "The Golden Compass"
               }
            ]
         }
    ]
   }
}


<cps-path>(contains'[@leafname,'<string-value>']')

Examples
  • //books[contains(@lang,'en')
  • //books[contains(@pub_year,'99')


Code Block
titleJson Response
collapsetrue
{
 "lang": "en", 
 "price": 895, 
 "title": "Feersum Endjinn", 
 "authors": [
            "Iain M. Banks"
 ], 
"pub_year":1994
}  
{
 "lang": "en", 
 "price": 699, 
 "title": "The Golden Compass", 
 "authors": [
           "Philip Pullman"
 ], 
"pub_year":1995
}            

                                                                                                    
                                                                                       

Native Query for contains keyword

...

Performance wise : As we are not making much changes for query , the performance is similar to existing query will not effect much


Implementation of Contains Operator

1.Update antlr parser to recognize this pattern
2.Implement required (native) query
3.Add db-container tests for
     a.filter on string leaf-value
     b.filter on Integer leaf-value
     c.filter on leaf-list value
4.Update documentation
5.demo to team