Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-36204

Query not covered when query parameter avialble

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 6.5.0, Cheshire-Cat, 6.0.2
    • 7.0.0
    • query
    • Untriaged
    • Unknown

    Description

      CREATE INDEX ix20 ON default ( DISTINCT ARRAY r.bid FOR r IN responses END, _type, createdAt) ;
       
      EXPLAIN SELECT RAW meta().id
      FROM `default`
      WHERE `_type` = 'AppLead'
        AND `createdAt` >= '2019-08-28'
        AND ANY `item` IN `responses` SATISFIES `item`.`bid` = 'BidRegistration::1234' END;
       
      EXPLAIN SELECT RAW meta().id
      FROM `default`
      WHERE `_type` = $q1
        AND `createdAt` >= $q2
        AND ANY `item` IN `responses` SATISFIES `item`.`bid` = $q3 END;
       
      \set -$q1 'AppLead';
      \set -$q2 '2019-08-28';
      \set -$q3 'BidRegistration::1234';
       
      EXPLAIN SELECT RAW meta().id
      FROM `default`
      WHERE `_type` = $q1
        AND `createdAt` >= $q2
        AND ANY `item` IN `responses` SATISFIES `item`.`bid` = $q3 END;
      

      First 2 queries are covered . When query parameters are set and run query (adhoc=true) It is not choosing covering path when the Implicit Array index.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            MB-33009 has covered this case.

            Sitaram.Vemulapalli Sitaram Vemulapalli added a comment - MB-33009 has covered this case.
            bingjie.miao Bingjie Miao added a comment -

            Verified that after the fix for MB-33009 the 3rd query is also covering now.

            bingjie.miao Bingjie Miao added a comment - Verified that after the fix for MB-33009 the 3rd query is also covering now.

            Verified on build 7.0.0-4393

            {
                "requestID": "59630556-6337-4a4c-bd95-a6c43badf083",
                "signature": "json",
                "results": [
                {
                    "plan": {
                        "#operator": "Sequence",
                        "~children": [
                            {
                                "#operator": "DistinctScan",
                                "scan": {
                                    "#operator": "IndexScan3",
                                    "covers": [
                                        "cover ((distinct (array (`r`.`bid`) for `r` in (`default`.`responses`) end)))",
                                        "cover ((`default`.`_type`))",
                                        "cover ((`default`.`createdAt`))",
                                        "cover ((meta(`default`).`id`))"
                                    ],
                                    "filter": "((cover ((`default`.`_type`)) = $q1) and ($q2 <= cover ((`default`.`createdAt`))) and cover (any `item` in (`default`.`responses`) satisfies ((`item`.`bid`) = $q3) end))",
                                    "filter_covers": {
                                        "cover (any `item` in (`default`.`responses`) satisfies ((`item`.`bid`) = $q3) end)": true
                                    },
                                    "index": "ix20",
                                    "index_id": "8a27b58091729a6a",
                                    "index_projection": {
                                        "entry_keys": [
                                            1,
                                            2
                                        ],
                                        "primary_key": true
                                    },
                                    "keyspace": "default",
                                    "namespace": "default",
                                    "spans": [
                                        {
                                            "exact": true,
                                            "range": [
                                                {
                                                    "high": "$q3",
                                                    "inclusion": 3,
                                                    "low": "$q3"
                                                },
                                                {
                                                    "high": "$q1",
                                                    "inclusion": 3,
                                                    "low": "$q1"
                                                },
                                                {
                                                    "inclusion": 1,
                                                    "low": "$q2"
                                                }
                                            ]
                                        }
                                    ],
                                    "using": "gsi"
                                }
                            },
                            {
                                "#operator": "Parallel",
                                "~child": {
                                    "#operator": "Sequence",
                                    "~children": [
                                        {
                                            "#operator": "InitialProject",
                                            "raw": true,
                                            "result_terms": [
                                                {
                                                    "expr": "cover ((meta(`default`).`id`))"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "text": "SELECT RAW meta().id FROM `default` WHERE `_type` = $q1 AND `createdAt` >= $q2 AND ANY `item` IN `responses` SATISFIES `item`.`bid` = $q3 END;"
                }
                ],
                "status": "success",
                "metrics": {
                    "elapsedTime": "1.898268ms",
                    "executionTime": "1.801021ms",
                    "resultCount": 1,
                    "resultSize": 3282,
                    "serviceLoad": 6
                }
            } 

            pierre.regazzoni Pierre Regazzoni added a comment - Verified on build 7.0.0-4393 {     "requestID" : "59630556-6337-4a4c-bd95-a6c43badf083" ,     "signature" : "json" ,     "results" : [     {         "plan" : {             "#operator" : "Sequence" ,             "~children" : [                 {                     "#operator" : "DistinctScan" ,                     "scan" : {                         "#operator" : "IndexScan3" ,                         "covers" : [                             "cover ((distinct (array (`r`.`bid`) for `r` in (`default`.`responses`) end)))" ,                             "cover ((`default`.`_type`))" ,                             "cover ((`default`.`createdAt`))" ,                             "cover ((meta(`default`).`id`))"                         ],                         "filter" : "((cover ((`default`.`_type`)) = $q1) and ($q2 <= cover ((`default`.`createdAt`))) and cover (any `item` in (`default`.`responses`) satisfies ((`item`.`bid`) = $q3) end))" ,                         "filter_covers" : {                             "cover (any `item` in (`default`.`responses`) satisfies ((`item`.`bid`) = $q3) end)" : true                         },                         "index" : "ix20" ,                         "index_id" : "8a27b58091729a6a" ,                         "index_projection" : {                             "entry_keys" : [                                 1 ,                                 2                             ],                             "primary_key" : true                         },                         "keyspace" : "default" ,                         "namespace" : "default" ,                         "spans" : [                             {                                 "exact" : true ,                                 "range" : [                                     {                                         "high" : "$q3" ,                                         "inclusion" : 3 ,                                         "low" : "$q3"                                     },                                     {                                         "high" : "$q1" ,                                         "inclusion" : 3 ,                                         "low" : "$q1"                                     },                                     {                                         "inclusion" : 1 ,                                         "low" : "$q2"                                     }                                 ]                             }                         ],                         "using" : "gsi"                     }                 },                 {                     "#operator" : "Parallel" ,                     "~child" : {                         "#operator" : "Sequence" ,                         "~children" : [                             {                                 "#operator" : "InitialProject" ,                                 "raw" : true ,                                 "result_terms" : [                                     {                                         "expr" : "cover ((meta(`default`).`id`))"                                     }                                 ]                             }                         ]                     }                 }             ]         },         "text" : "SELECT RAW meta().id FROM `default` WHERE `_type` = $q1 AND `createdAt` >= $q2 AND ANY `item` IN `responses` SATISFIES `item`.`bid` = $q3 END;"     }     ],     "status" : "success" ,     "metrics" : {         "elapsedTime" : "1.898268ms" ,         "executionTime" : "1.801021ms" ,         "resultCount" : 1 ,         "resultSize" : 3282 ,         "serviceLoad" : 6     } }

            People

              pierre.regazzoni Pierre Regazzoni
              Sitaram.Vemulapalli Sitaram Vemulapalli
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty