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

Query returning incorrect count :: Query SELECT * FROM bucket0 WHERE job_title == "Sales" or job_title == "Engineer"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • 4.0.0
    • 4.0.0
    • query
    • Security Level: Public
    • None
    • dev box repro, saw in build 1652 as well.
    • Untriaged
    • Yes

    Description

      With GSI

      ./testrunner -i b/resources/dev-4-nodes-xdcr_n1ql_2i.ini -t 2i.indexscans_2i.SecondaryIndexingScanTests.test_multi_create_query_explain_drop_index,groups=simple,dataset=default,use_gsi_for_primary=True,use_gsi_for_secondary=True,skip_cleanup=True,nodes_init=4,services_init=n1ql:kv-kv-kv:index-index,skip_cleanup=True,doc-per-day=10

      With VIEWS
      ./testrunner -i b/resources/dev-4-nodes-xdcr_n1ql_2i.ini -t 2i.indexscans_2i.SecondaryIndexingScanTests.test_multi_create_query_explain_drop_index,groups=simple,dataset=default,use_gsi_for_primary=True,use_gsi_for_secondary=True,skip_cleanup=True,nodes_init=4,services_init=n1ql:kv-kv-kv:index-index,skip_cleanup=True,doc-per-day=10

      Scenario Description with GSI index

      1. Create 4 node cluster (1: n1ql,kv 2: kv 3: index 4: index)
      2. Create Default bucket with 20160 items for Employee dataset
      3. Create PRIMARY INDEX using gsi, Wait till it comes online
      4. Create GSI INDEX for field job_title, wait till it comes online
      5. Run Query: Query SELECT * FROM bucket0 WHERE job_title == "Sales" or job_title == "Engineer". Verify that index is being used by looking at Explain and then verify result of the query

      With GSI
      results for query Results are incorrect.Actual num 13323. Expected num: 13440.

      EXPLAIN
      u'success', u'metrics':

      {u'elapsedTime': u'21.079431ms', u'executionTime': u'20.946151ms', u'resultSize': 3006, u'resultCount': 1}

      , u'results': [{u'#operator': u'Sequence', u'~children': [{u'#operator': u'UnionScan', u'scans': [{u'index': u'employee15c9ee9cec88437facb24f5c9f7ee5c1job_title', u'namespace': u'default', u'keyspace': u'default', u'#operator': u'IndexScan', u'limit': 9.223372036854776e+18, u'spans': [{u'Range':

      {u'High': [u'"Sales\\u0009"'], u'Low': [u'"Sales"'], u'Inclusion': 1}

      , u'Seek': None}, {u'Range':

      {u'High': [u'"Engineer\\u0009"'], u'Low': [u'"Engineer"'], u'Inclusion': 1}

      , u'Seek': None}], u'using': u'gsi'}]}, {u'#operator': u'Parallel', u'~child': {u'#operator': u'Sequence', u'~children': [

      {u'keyspace': u'default', u'#operator': u'Fetch', u'namespace': u'default'}

      ,

      {u'#operator': u'Filter', u'condition': u'(((`default`.`job_title`) = "Sales") or ((`default`.`job_title`) = "Engineer"))'}

      , {u'#operator': u'InitialProject', u'result_terms': [

      {u'star': True}

      ]},

      {u'#operator': u'FinalProject'}

      ]}}]}], u'requestID': u'cd032184-a1cc-4814-8f6a-7d33876d0659', u'signature': u'json'}

      Fails even with views. Instead of creating GSI index, create a similar view based index.

      With Views
      query Results are incorrect.Actual num 13324. Expected num: 13440.

      {u'elapsedTime': u'18.375ms', u'executionTime': u'18.3ms', u'resultSize': 3007, u'resultCount': 1}

      , u'results': [{u'#operator': u'Sequence', u'~children': [{u'#operator': u'UnionScan', u'scans': [{u'index': u'employee305fa39225c849b3a0c747e2522f0de8job_title', u'namespace': u'default', u'keyspace': u'default', u'#operator': u'IndexScan', u'limit': 9.223372036854776e+18, u'spans': [{u'Range':

      {u'High': [u'"Sales\\u0009"'], u'Low': [u'"Sales"'], u'Inclusion': 1}

      , u'Seek': None}, {u'Range':

      {u'High': [u'"Engineer\\u0009"'], u'Low': [u'"Engineer"'], u'Inclusion': 1}

      , u'Seek': None}], u'using': u'view'}]}, {u'#operator': u'Parallel', u'~child': {u'#operator': u'Sequence', u'~children': [

      {u'keyspace': u'default', u'#operator': u'Fetch', u'namespace': u'default'}

      ,

      {u'#operator': u'Filter', u'condition': u'(((`default`.`job_title`) = "Sales") or ((`default`.`job_title`) = "Engineer"))'}

      , {u'#operator': u'InitialProject', u'result_terms': [

      {u'star': True}

      ]},

      {u'#operator': u'FinalProject'}

      ]}}]}], u'requestID': u'427786a3-575b-40be-9e61-8f800acdcae7', u'signature': u'json'}

      FYI: Fails with different scan_consistency params.

      Attachments

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

        Activity

          People

            parag Parag Agarwal (Inactive)
            parag Parag Agarwal (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                PagerDuty