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

[N1QL] ansi join build side is semi-random

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • 7.6.2
    • 7.6.2
    • query
    • 7.6.2-3626
    • Untriaged
    • 0
    • Unknown

    Description

      this query will pick the build side randomly due to equivalent cost

       

      EXPLAIN select * from ([{'name' : 'employee-9'},{'name': 'employee-10'},{'name': 'employee-11'},{'name': 'employee-12'}]) d 
      INNER JOIN ([{'name' : 'employee-9'},{'name' : 'employee-10'},{'name': 'employee-11'},{'name': 'employee-12'}]) d2 ON (d.name = d2.name);
       
      

       

      [
        {
          "cardinality": 1.6,
          "cost": 0.2185096679918781,
          "plan": {
            "#operator": "Sequence",
            "~children": [
              {
                "#operator": "ExpressionScan",
                "alias": "d2",
                "expr": "[{\"name\": \"employee-9\"}, {\"name\": \"employee-10\"}, {\"name\": \"employee-11\"}, {\"name\": \"employee-12\"}]",
                "optimizer_estimates": {
                  "cardinality": 4,
                  "cost": 0.032,
                  "fr_cost": 0.008,
                  "size": 64
                },
                "uncorrelated": true
              },
              {
                "#operator": "HashJoin",
                "build_aliases": [
                  "d"
                ],
                "build_exprs": [
                  "(`d`.`name`)"
                ],
                "on_clause": "(((`d`.`name`) = (`d2`.`name`)))",
                "optimizer_estimates": {
                  "cardinality": 1.6,
                  "cost": 0.20040773439350248,
                  "fr_cost": 0.14125483399593905,
                  "size": 128
                },
                "probe_exprs": [
                  "(`d2`.`name`)"
                ],
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "ExpressionScan",
                      "alias": "d",
                      "expr": "[{\"name\": \"employee-9\"}, {\"name\": \"employee-10\"}, {\"name\": \"employee-11\"}, {\"name\": \"employee-12\"}]",
                      "optimizer_estimates": {
                        "cardinality": 4,
                        "cost": 0.032,
                        "fr_cost": 0.008,
                        "size": 64
                      },
                      "uncorrelated": true
                    }
                  ]
                }
              },
              {
                "#operator": "Parallel",
                "~child": {
                  "#operator": "Sequence",
                  "~children": [
                    {
                      "#operator": "InitialProject",
                      "discard_original": true,
                      "optimizer_estimates": {
                        "cardinality": 1.6,
                        "cost": 0.2185096679918781,
                        "fr_cost": 0.1525685424949238,
                        "size": 128
                      },
                      "preserve_order": true,
                      "result_terms": [
                        {
                          "expr": "self",
                          "star": true
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "text": "select * from ([{'name' : 'employee-9'}, {'name': 'employee-10'}, {'name': 'employee-11'}, {'name': 'employee-12'}]) d INNER JOIN ([{'name' : 'employee-9'},{'name' : 'employee-10'}, {'name': 'employee-11'}, {'name': 'employee-12'}]) d2 ON (d.name = d2.name)"
        }
      ]
      

      Attachments

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

        Activity

          People

            ajay.bhullar Ajay Bhullar
            ajay.bhullar Ajay Bhullar
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty