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

[N1QL]Query with predicates on 3 different fields with OR clause doesnt use UnionScan

    XMLWordPrintable

Details

    • Triaged
    • Unknown

    Description

      Query issued with 3 OR clauses uses primary index.

      explain SELECT  k01  FROM default where k01 > "abc" OR k02 > 123 or k03>10;
      
      

      Indexes present:

      CREATE INDEX `k1` ON `default`(`k01`);
       CREATE INDEX `k2` ON `default`(`k02`);
      CREATE INDEX `k3` ON `default`(`k03`);
      

      Result of above query:

      [
        {
          "code": 4000,
          "msg": "No index available on keyspace default that matches your query. Use CREATE INDEX or CREATE PRIMARY INDEX to create an index, or check that your expected index is online.",
          "query_from_user": "explain SELECT  k01  FROM default where k01 > \"abc\" OR k02 > 123 or k03>10;"
        }
      ]
      

      Query issued with 2 OR clauses uses the right indexes with UnionScan:
      explain SELECT k01 FROM default where k01 > "abc" OR k02 > 123;

      [
        {
          "plan": {
            "#operator": "Sequence",
            "~children": [
              {
                "#operator": "UnionScan",
                "scans": [
                  {
                    "#operator": "IndexScan2",
                    "index": "k1",
                    "index_id": "4cc6eef9a0eea52d",
                    "index_projection": {
                      "primary_key": true
                    },
                    "keyspace": "default",
                    "namespace": "default",
                    "spans": [
                      {
                        "exact": true,
                        "range": [
                          {
                            "inclusion": 0,
                            "low": "\"abc\""
                          }
                        ]
                      }
                    ],
                    "using": "gsi"
                  },
                  {
                    "#operator": "IndexScan2",
                    "index": "k2",
                    "index_id": "c28c0476c56efeb",
                    "index_projection": {
                      "primary_key": true
                    },
                    "keyspace": "default",
                    "namespace": "default",
                    "spans": [
                      {
                        "exact": true,
                        "range": [
                          {
                            "inclusion": 0,
                            "low": "123"
                          }
                        ]
                      }
                    ],
                    "using": "gsi"
                  }
                ]
              },
              {
                "#operator": "Fetch",
                "keyspace": "default",
                "namespace": "default"
              },
              {
                "#operator": "Parallel",
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "Filter",
                      "condition": "((\"abc\" < (`default`.`k01`)) or (123 < (`default`.`k02`)))"
                    },
                    {
                      "#operator": "InitialProject",
                      "result_terms": [
                        {
                          "expr": "(`default`.`k01`)"
                        }
                      ]
                    },
                    {
                      "#operator": "FinalProject"
                    }
                  ]
                }
              }
            ]
          },
          "text": "SELECT  k01  FROM default where k01 > \"abc\" OR k02 > 123;"
        }
      ]
      

      Attachments

        Issue Links

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

          Activity

            People

              Prerna.Manaktala Prerna Manaktala (Inactive)
              Prerna.Manaktala Prerna Manaktala (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty