Uploaded image for project: 'S2Graph'
  1. S2Graph
  2. S2GRAPH-18

Query Option "interval" is Broken

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Done
    • Major
    • Resolution: Done
    • None
    • None
    • None
    • None

    Description

      Problem
      The interval option doesn't seem to work on secondary indices.

      Steps to Reproduce Issue
      1. Create service.

        curl -XPOST localhost:9000/graphs/createService -H 'Content-Type: Application/json' -d '
        {
          "serviceName": "interval",
          "hTableName": "interval-dev"
        }
        '
        

      2. Create label with more than multiple indices.

        curl -XPOST localhost:9000/graphs/createLabel -H 'Content-Type: Application/json' -d '
        {
          "label": "interval_test",
          "srcServiceName": "interval",
          "srcColumnName": "ad_id",
          "srcColumnType": "string",
          "tgtServiceName": "interval",
          "tgtColumnName": "url",
          "tgtColumnType": "string",
        "isDirected": "true",
        "indices": [
            {
                "name": "_PK",
                "propNames": [
                    "_timestamp"
                ]
            },
            {
                "name": "IDX_ACTION_TYPE",
                "propNames": [
                    "actionType",
                    "_timestamp"
                ]
            }
        ],
        "props": [
            {
                "name": "serviceName",
                "defaultValue": "",
                "dataType": "string"
            },
            {
                "name": "actionType",
                "defaultValue": "",
                "dataType": "string"
            }
        ],
        "consistencyLevel": "strong"
        }
        '
        

      3. Insert test data.

        curl -XPOST -H 'Content-Type: application/json' localhost:9000/graphs/edges/insert -d '
        [
           {
               "from": "jojo",
               "to": "www.kakaocorp.com",
               "label": "interval_test",
               "props": {"serviceName": "talk-scrap", "actionType": "share"},
               "timestamp": 1433495457557
           }
        ]
        '
        

      4. Query with interval on primary index. => This works! (edge returned)

        curl -XPOST localhost:9000/graphs/getEdges -H 'Content-type: Application/json' -d '
        {
            "srcVertices": [
                {
                    "serviceName": "interval",
                    "columnName": "ad_id",
                    "id": "jojo"
                }
            ],
            "steps": [
                {
                    "step": [
                        {
                            "label": "interval_test",
                            "index": "_PK",
                            "interval": {
                                "from": [
                                    {
                                        "_timestamp": 1433495457556
                                    }
                                ],
                                "to": [
                                    {
                                        "_timestamp": 1433495457558
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
        '
        

      5. Query with interval on secondary index. => Doesn't work!! (empty result..)

        curl -XPOST localhost:9000/graphs/getEdges -H 'Content-type: Application/json' -d '
        {
            "srcVertices": [
                {
                    "serviceName": "interval",
                    "columnName": "ad_id",
                    "id": "jojo"
                }
            ],
            "steps": [
                {
                    "step": [
                        {
                            "label": "interval_test",
                            "index": "IDX_ACTION_TYPE",
                            "interval": {
                                "from": [
                                    {
                                        "actionType": "share"
                                    }
                                ],
                                "to": [
                                    {
                                        "actionType": "share"
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
        '
        

      Cause of Issue
      The function interval() in QueryParam.scala uses labelOrderSeq witch is currently not set at time of function call. In function parseQueryParam() of RequestParser.scala, .interval(interval) should come after .labelOrderSeq(indexSeq).

      Attachments

        Activity

          People

            daewon Daewon Jeong
            hyunsung.jo Hyunsung Jo
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: