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

'NOW_STR()' returns entire index from index scan

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • 4.5.1
    • 4.1.0
    • query
    • None

    Description

      The plan when using `NOW_STR()` is:

      cbq> EXPLAIN SELECT * FROM `default` WHERE i <= NOW_STR();
      {
          "requestID": "7676008d-5686-4a01-92da-914e9840de95",
          "signature": "json",
          "results": [
              {
                  "#operator": "Sequence",
                  "~children": [
                      {
                          "#operator": "IndexScan",
                          "index": "order-index",
                          "keyspace": "default",
                          "namespace": "default",
                          "spans": [
                              {
                                  "Range": {
                                      "Inclusion": 1,
                                      "Low": [
                                          "null"
                                      ]
                                  }
                              }
                          ],
                          "using": "gsi"
                      },
                      {
                          "#operator": "Parallel",
                          "~child": {
                              "#operator": "Sequence",
                              "~children": [
                                  {
                                      "#operator": "Fetch",
                                      "keyspace": "default",
                                      "namespace": "default"
                                  },
                                  {
                                      "#operator": "Filter",
                                      "condition": "((`default`.`i`) \u003c= now_str())"
                                  },
                                  {
                                      "#operator": "InitialProject",
                                      "result_terms": [
                                          {
                                              "expr": "self",
                                              "star": true
                                          }
                                      ]
                                  },
                                  {
                                      "#operator": "FinalProject"
                                  }
                              ]
                          }
                      }
                  ]
              }
          ],
          "status": "success",
          "metrics": {
              "elapsedTime": "2.432158ms",
              "executionTime": "2.409259ms",
              "resultCount": 1,
              "resultSize": 1865
          }
      }
      

      Where I would expect it to be more like:

      cbq> EXPLAIN SELECT * FROM `default` WHERE i <= 1400;
      {
          "requestID": "b779b00c-566b-40c8-a603-caea754333a6",
          "signature": "json",
          "results": [
              {
                  "#operator": "Sequence",
                  "~children": [
                      {
                          "#operator": "IndexScan",
                          "index": "order-index",
                          "keyspace": "default",
                          "namespace": "default",
                          "spans": [
                              {
                                  "Range": {
                                      "High": [
                                          "1400"
                                      ],
                                      "Inclusion": 2
                                  }
                              }
                          ],
                          "using": "gsi"
                      },
                      {
                          "#operator": "Parallel",
                          "~child": {
                              "#operator": "Sequence",
                              "~children": [
                                  {
                                      "#operator": "Fetch",
                                      "keyspace": "default",
                                      "namespace": "default"
                                  },
                                  {
                                      "#operator": "Filter",
                                      "condition": "((`default`.`i`) \u003c= 1400)"
                                  },
                                  {
                                      "#operator": "InitialProject",
                                      "result_terms": [
                                          {
                                              "expr": "self",
                                              "star": true
                                          }
                                      ]
                                  },
                                  {
                                      "#operator": "FinalProject"
                                  }
                              ]
                          }
                      }
                  ]
              }
          ],
          "status": "success",
          "metrics": {
              "elapsedTime": "36.593542ms",
              "executionTime": "36.569492ms",
              "resultCount": 1,
              "resultSize": 1861
          }
      }
      

      This seemingly has a performance impact

      Attachments

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

        Activity

          People

            prasanna.gholap Prasanna Gholap [X] (Inactive)
            oliver.downard Oliver Downard (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty