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

N1QL: min always using desc index on field and not having limit 1 in explain.

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Duplicate
    • Major
    • 5.0.0
    • 5.0.0
    • query
    • 5.0.0-2873

    Description

      Indexes present:
      CREATE INDEX `idx` ON `default`(`_id`,(`join_yr`[0]))
      CREATE INDEX `idx_cover_desc` ON `default`(`_id` DESC,((`VMs`[0]).`RAM`) DESC)

      Below results are always consistent:
      Query issued:
      explain select min(_id) from default use index(idx) where _id is not missing;

      {
          "plan": {
            "#operator": "Sequence",
            "~children": [
              {
                "#operator": "IndexScan2",
                "covers": [
                  "cover ((`default`.`_id`))",
                  "cover (((`default`.`join_yr`)[0]))",
                  "cover ((meta(`default`).`id`))"
                ],
                "index": "idx",
                "index_id": "f3da0dc1748af4c5",
                "index_projection": {
                  "entry_keys": [
                    0
                  ]
                },
                "keyspace": "default",
                "limit": "1",
                "namespace": "default",
                "spans": [
                  {
                    "exact": true,
                    "range": [
                      {
                        "inclusion": 0,
                        "low": "null"
                      }
                    ]
                  }
                ],
                "using": "gsi"
              },
              {
                "#operator": "Parallel",
                "maxParallelism": 1,
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "Filter",
                      "condition": "(cover ((`default`.`_id`)) is not missing)"
                    },
                    {
                      "#operator": "InitialGroup",
                      "aggregates": [
                        "min(cover ((`default`.`_id`)))"
                      ],
                      "group_keys": []
                    }
                  ]
                }
              },
              {
                "#operator": "IntermediateGroup",
                "aggregates": [
                  "min(cover ((`default`.`_id`)))"
                ],
                "group_keys": []
              },
              {
                "#operator": "FinalGroup",
                "aggregates": [
                  "min(cover ((`default`.`_id`)))"
                ],
                "group_keys": []
              },
              {
                "#operator": "Parallel",
                "maxParallelism": 1,
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "InitialProject",
                      "result_terms": [
                        {
                          "expr": "min(cover ((`default`.`_id`)))"
                        }
                      ]
                    },
                    {
                      "#operator": "FinalProject"
                    }
                  ]
                }
              }
            ]
          },
      
      

      explain select min(_id) from default where _id is not missing;

      {
          "plan": {
            "#operator": "Sequence",
            "~children": [
              {
                "#operator": "IndexScan2",
                "covers": [
                  "cover ((`default`.`_id`))",
                  "cover ((((`default`.`VMs`)[0]).`RAM`))",
                  "cover ((meta(`default`).`id`))"
                ],
                "index": "idx_cover_desc",
                "index_id": "815302bac3c810b5",
                "index_projection": {
                  "entry_keys": [
                    0
                  ]
                },
                "keyspace": "default",
                "namespace": "default",
                "spans": [
                  {
                    "exact": true,
                    "range": [
                      {
                        "inclusion": 0,
                        "low": "null"
                      }
                    ]
                  }
                ],
                "using": "gsi"
              },
              {
                "#operator": "Parallel",
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "Filter",
                      "condition": "(cover ((`default`.`_id`)) is not missing)"
                    },
                    {
                      "#operator": "InitialGroup",
                      "aggregates": [
                        "min(cover ((`default`.`_id`)))"
                      ],
                      "group_keys": []
                    }
                  ]
                }
              },
              {
                "#operator": "IntermediateGroup",
                "aggregates": [
                  "min(cover ((`default`.`_id`)))"
                ],
                "group_keys": []
              },
              {
                "#operator": "FinalGroup",
                "aggregates": [
                  "min(cover ((`default`.`_id`)))"
                ],
                "group_keys": []
              },
              {
                "#operator": "Parallel",
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "InitialProject",
                      "result_terms": [
                        {
                          "expr": "min(cover ((`default`.`_id`)))"
                        }
                      ]
                    },
                    {
                      "#operator": "FinalProject"
                    }
                  ]
                }
              }
            ]
          },
      

      Attachments

        Issue Links

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

          Activity

            People

              keshav Keshav Murthy
              Prerna.Manaktala Prerna Manaktala (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty