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

[BP to 7.1.5/7.2.1 MB-56988] - wrong results with non-IndexScan on constant false condition

    XMLWordPrintable

Details

    • Untriaged
    • 0
    • Unknown

    Description

      Issue Resolution
      Incorrect results were returned for a non-IndexScan on a constant false condition. This was due to incorrect handling of a FALSE WHERE clause. The FALSE WHERE clause is now correctly handled.

      insert into default values ("k01",{"a":1});
      

      explain delete from default use keys "k01" where 1=1;
      

      As where is true no-fetch , no-filter that is optimal in 7.50
      In Pre 7.50 these not are not optimal (it does fetch unnecessary and can impact TCO). See linked CBSE.

      In 7.50 If it false no-filter blindly goes deletes. vs one can change keyScan to empty or add filter.

      explain delete from default use keys "k01" where 1=0;
      {
          "requestID": "8981d310-2b2f-4157-9be1-3627ba62bde2",
          "signature": "json",
          "results": [
          {
              "plan": {
                  "#operator": "Sequence",
                  "~children": [
                      {
                          "#operator": "KeyScan",
                          "distinct": true,
                          "keys": "\"k01\""
                      },
                      {
                          "#operator": "Parallel",
                          "maxParallelism": 1,
                          "~child": {
                              "#operator": "Sequence",
                              "~children": [
                                  {
                                      "#operator": "DummyFetch",
                                      "keyspace": "default",
                                      "namespace": "default"
                                  },
                                  {
                                      "#operator": "SendDelete",
                                      "alias": "default",
                                      "fast_discard": true,
                                      "keyspace": "default",
                                      "namespace": "default"
                                  }
                              ]
                          }
                      }
                  ]
              },
              "text": "delete from default use keys \"k01\" where 1=0;"
          }
          ],
          "status": "success",
          "metrics": {
              "elapsedTime": "738.971µs",
              "executionTime": "585.06µs",
              "resultCount": 1,
              "resultSize": 1192,
              "serviceLoad": 2
          }
      }
      

      explain update default use keys "k01" set a = 1  where 1=0;
      {
          "requestID": "e0656d7d-78c7-46eb-8a69-528970c69e8a",
          "signature": "json",
          "results": [
          {
              "plan": {
                  "#operator": "Sequence",
                  "~children": [
                      {
                          "#operator": "KeyScan",
                          "distinct": true,
                          "keys": "\"k01\""
                      },
                      {
                          "#operator": "Parallel",
                          "maxParallelism": 1,
                          "~child": {
                              "#operator": "Sequence",
                              "~children": [
                                  {
                                      "#operator": "Fetch",
                                      "keyspace": "default",
                                      "namespace": "default"
                                  },
                                  {
                                      "#operator": "Clone"
                                  },
                                  {
                                      "#operator": "Set",
                                      "set_terms": [
                                          {
                                              "path": "(`default`.`a`)",
                                              "value": "1"
                                          }
                                      ]
                                  },
                                  {
                                      "#operator": "SendUpdate",
                                      "alias": "default",
                                      "fast_discard": true,
                                      "keyspace": "default",
                                      "namespace": "default"
                                  }
                              ]
                          }
                      }
                  ]
              },
              "text": "update default use keys \"k01\" set a = 1  where 1=0;"
          }
          ],
          "status": "success",
          "metrics": {
              "elapsedTime": "3.77195ms",
              "executionTime": "3.624303ms",
              "resultCount": 1,
              "resultSize": 1697,
              "serviceLoad": 2
          }
      }
      

      select * from default use keys "k01" where 1=0;
      {
          "requestID": "1d82b63e-eebc-4f93-a2e9-0b663afa0470",
          "signature": {
              "*": "*"
          },
          "results": [
          {
              "default": {
                  "a": 1
              }
          }
          ],
          "status": "success",
          "metrics": {
              "elapsedTime": "915.43µs",
              "executionTime": "780.081µs",
              "resultCount": 1,
              "resultSize": 57,
              "serviceLoad": 2
          }
      }
      

      Attachments

        For Gerrit Dashboard: MB-57024
        # Subject Branch Project Status CR V

        Activity

          People

            ajay.bhullar Ajay Bhullar
            bingjie.miao Bingjie Miao
            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