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

RQG:: Secondary indexing leads to inconsistent results compared to MySQL : Select <fields> ..

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Blocker
    • 4.0.0
    • 4.0.0
    • query
    • Security Level: Public
    • dev 07/27
    • Untriaged
    • Yes

    Description

      ./testrunner -i b/resources/dev-6-nodes-xdcr_n1ql_2i.ini -t rqg.test_rqg.RQGTests.test_rqg_concurrent_with_predefined_input,database=simple_table_db,reset_database=True,concurreny_count=1,index_quota_percent=40,use_mysql=False,replicas=0,input_rqg_path=/tmp/data_dump,populate_with_replay=True,reset_database=True,skip_cleanup=True,create_secondary_indexes=True,run_query_with_primary=True

      Seeing broken results for queries in the pattern select <fields> from ...

      2015-07-27 19:54:26 | INFO | MainProcess | test_thread | [test_rqg.test_rqg_concurrent] <<<<<<<<<< TEST 2437 >>>>>>>>>>>
      keyword_list :: [' < ', 'AND', 'BY', 'IN', 'KEY', 'NOT', 'OR', 'ORDER']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 242. Expected num: 478.:: mismatch in results :: expected :: [

      {u'int_field1': 12}

      ,

      {u'int_field1': 14}

      ,

      {u'int_field1': 84}

      ,

      {u'int_field1': 106}

      ,

      {u'int_field1': 118}

      ], actual :: [

      {u'int_field1': 153}

      ,

      {u'int_field1': 230}

      ,

      {u'int_field1': 320}

      ,

      {u'int_field1': 339}

      ,

      {u'int_field1': 390}

      ]

      sql_query :: SELECT int_field1 FROM simple_table WHERE NOT ((NOT (bool_field1) OR (NOT (decimal_field1 < 5396)) AND (decimal_field1 < 5396))) GROUP BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1 ORDER BY int_field1 , primary_key_id , varchar_field1 , char_field1 ASC
      n1ql_query :: SELECT int_field1 FROM simple_table WHERE NOT ((NOT (bool_field1) OR (NOT (decimal_field1 < 5396)) AND (decimal_field1 < 5396))) GROUP BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1 ORDER BY int_field1 , primary_key_id , varchar_field1 , char_field1 ASC
      <<<<<<<<<< TEST 999 >>>>>>>>>>>
      keyword_list :: [' < ', ' = ', 'BY', 'IN', 'KEY', 'NOT', 'OR', 'ORDER', 'TRUE']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 242. Expected num: 261.:: mismatch in results :: expected :: [

      {u'datetime_field1': '1999-03-24 00:00:00', u'int_field1': 2832, u'primary_key_id': u'649', u'varchar_field1': u'dfYROXfAmp', u'decimal_field1': 8668, u'char_field1': u'N', u'bool_field1': False}

      ,

      {u'datetime_field1': '1999-05-01 00:00:00', u'int_field1': 3083, u'primary_key_id': u'329', u'varchar_field1': u'ELZxhhdXXg', u'decimal_field1': 5969, u'char_field1': u'N', u'bool_field1': False}

      ,

      {u'datetime_field1': '1999-06-17 00:00:00', u'int_field1': 1286, u'primary_key_id': u'119', u'varchar_field1': u'bVnvSAZknS', u'decimal_field1': 9416, u'char_field1': u'N', u'bool_field1': False}

      ,

      {u'datetime_field1': '2000-02-05 00:00:00', u'int_field1': 8228, u'primary_key_id': u'913', u'varchar_field1': u'HsQpqGzaMY', u'decimal_field1': 8966, u'char_field1': u'N', u'bool_field1': False}

      ,

      {u'datetime_field1': '2000-02-11 00:00:00', u'int_field1': 1885, u'primary_key_id': u'554', u'varchar_field1': u'uCXwavONIq', u'decimal_field1': 9522, u'char_field1': u'N', u'bool_field1': False}

      ], actual :: [

      {u'datetime_field1': u'1999-06-21 00:00:00', u'bool_field1': False, u'primary_key_id': u'694', u'varchar_field1': u'SxkGHnNjDf', u'decimal_field1': 2415, u'char_field1': u'O', u'int_field1': 3073}

      ,

      {u'datetime_field1': u'2000-03-13 00:00:00', u'bool_field1': False, u'primary_key_id': u'787', u'varchar_field1': u'KOxUDgRikj', u'decimal_field1': 886, u'char_field1': u'O', u'int_field1': 4990}

      ,

      {u'datetime_field1': u'2001-01-18 00:00:00', u'bool_field1': False, u'primary_key_id': u'779', u'varchar_field1': u'vfZGiMdMGr', u'decimal_field1': 740, u'char_field1': u'O', u'int_field1': 8044}

      ,

      {u'datetime_field1': u'2001-02-20 00:00:00', u'bool_field1': False, u'primary_key_id': u'640', u'varchar_field1': u'WOnuoUmCVy', u'decimal_field1': 7672, u'char_field1': u'O', u'int_field1': 3309}

      ,

      {u'datetime_field1': u'2002-05-16 00:00:00', u'bool_field1': False, u'primary_key_id': u'191', u'varchar_field1': u'ScfZFLfatU', u'decimal_field1': 8405, u'char_field1': u'O', u'int_field1': 9166}

      ]

      sql_query :: SELECT * FROM simple_table WHERE NOT ((bool_field1 = true OR char_field1 < "N")) ORDER BY int_field1 , primary_key_id , bool_field1
      n1ql_query :: SELECT * FROM simple_table WHERE NOT ((bool_field1 = true OR char_field1 < "N")) ORDER BY int_field1 , primary_key_id , bool_field1
      <<<<<<<<<< TEST 3563 >>>>>>>>>>>
      keyword_list :: [' <= ', ' >= ', 'AND', 'BETWEEN', 'BY', 'DISTINCT', 'IN', 'IS', 'NOT', 'OR']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 911. Expected num: 910.:: mismatch in results :: expected :: [

      {u'decimal_field1': 54}

      ,

      {u'decimal_field1': 59}

      ,

      {u'decimal_field1': 70}

      ,

      {u'decimal_field1': 99}

      ,

      {u'decimal_field1': 138}

      ], actual :: [

      {u'decimal_field1': 54}

      ,

      {u'decimal_field1': 59}

      ,

      {u'decimal_field1': 70}

      ,

      {u'decimal_field1': 99}

      ,

      {u'decimal_field1': 138}

      ]

      sql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE ((decimal_field1 BETWEEN 54 and 9997 AND varchar_field1 >= "ZKpvvuMHfA" AND NOT (bool_field1))) OR ((decimal_field1 <= 5396) OR (decimal_field1 >= 5396)) GROUP BY int_field1
      n1ql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE ((decimal_field1 BETWEEN 54 and 9997 AND varchar_field1 >= "ZKpvvuMHfA" AND NOT (bool_field1))) OR ((decimal_field1 <= 5396) OR (decimal_field1 >= 5396)) GROUP BY int_field1
      <<<<<<<<<< TEST 1741 >>>>>>>>>>>
      keyword_list :: ['AND', 'BY', 'DISTINCT', 'FALSE', 'IN', 'IS', 'KEY', 'NOT', 'NULL', 'OR', 'ORDER']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 454. Expected num: 455.:: mismatch in results :: expected :: [

      {u'decimal_field1': 54}

      ,

      {u'decimal_field1': 59}

      ,

      {u'decimal_field1': 138}

      ,

      {u'decimal_field1': 151}

      ,

      {u'decimal_field1': 152}

      ], actual :: [

      {u'decimal_field1': 54}

      ,

      {u'decimal_field1': 59}

      ,

      {u'decimal_field1': 138}

      ,

      {u'decimal_field1': 151}

      ,

      {u'decimal_field1': 152}

      ]

      sql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE (bool_field1 != false AND decimal_field1 IS NOT NULL) GROUP BY int_field1 ORDER BY int_field1 , primary_key_id , varchar_field1 , char_field1 , bool_field1 ASC
      n1ql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE (bool_field1 != false AND decimal_field1 IS NOT NULL) GROUP BY int_field1 ORDER BY int_field1 , primary_key_id , varchar_field1 , char_field1 , bool_field1 ASC
      <<<<<<<<<< TEST 1106 >>>>>>>>>>>
      keyword_list :: [' = ', 'BY', 'IN', 'KEY', 'NOT', 'OR', 'ORDER']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 239. Expected num: 477.:: mismatch in results :: expected :: [

      {u'primary_key_id': u'1'}

      ,

      {u'primary_key_id': u'10'}

      ,

      {u'primary_key_id': u'100'}

      ,

      {u'primary_key_id': u'101'}

      ,

      {u'primary_key_id': u'102'}

      ], actual :: [

      {u'primary_key_id': u'1'}

      ,

      {u'primary_key_id': u'100'}

      ,

      {u'primary_key_id': u'101'}

      ,

      {u'primary_key_id': u'102'}

      ,

      {u'primary_key_id': u'106'}

      ]

      sql_query :: SELECT primary_key_id FROM simple_table WHERE NOT ((NOT (bool_field1) OR int_field1 = 4988)) ORDER BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1 , bool_field1
      n1ql_query :: SELECT primary_key_id FROM simple_table WHERE NOT ((NOT (bool_field1) OR int_field1 = 4988)) ORDER BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1 , bool_field1
      <<<<<<<<<< TEST 916 >>>>>>>>>>>
      keyword_list :: [' < ', ' = ', 'BY', 'IN', 'KEY', 'NOT', 'OR', 'ORDER']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 488. Expected num: 489.:: mismatch in results :: expected :: [

      {u'primary_key_id': u'100', u'varchar_field1': u'QasVuzLAPy'}

      ,

      {u'primary_key_id': u'101', u'varchar_field1': u'WRqhcJbkSK'}

      ,

      {u'primary_key_id': u'102', u'varchar_field1': u'oMiLrbQWMv'}

      ,

      {u'primary_key_id': u'103', u'varchar_field1': u'DNtrjxWNRi'}

      ,

      {u'primary_key_id': u'105', u'varchar_field1': u'RTkTasaLQi'}

      ], actual :: [

      {u'primary_key_id': u'100', u'varchar_field1': u'QasVuzLAPy'}

      ,

      {u'primary_key_id': u'101', u'varchar_field1': u'WRqhcJbkSK'}

      ,

      {u'primary_key_id': u'102', u'varchar_field1': u'oMiLrbQWMv'}

      ,

      {u'primary_key_id': u'103', u'varchar_field1': u'DNtrjxWNRi'}

      ,

      {u'primary_key_id': u'105', u'varchar_field1': u'RTkTasaLQi'}

      ]

      sql_query :: SELECT primary_key_id , varchar_field1 FROM simple_table WHERE NOT ((int_field1 < 4988 OR char_field1 = "N")) GROUP BY int_field1 , decimal_field1 ORDER BY int_field1 DESC
      n1ql_query :: SELECT primary_key_id , varchar_field1 FROM simple_table WHERE NOT ((int_field1 < 4988 OR char_field1 = "N")) GROUP BY int_field1 , decimal_field1 ORDER BY int_field1 DESC
      <<<<<<<<<< TEST 158 >>>>>>>>>>>
      keyword_list :: [' < ', ' = ', 'BY', 'DISTINCT', 'IN', 'IS', 'NOT', 'OR']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 440. Expected num: 441.:: mismatch in results :: expected :: [

      {u'decimal_field1': 5396}

      ,

      {u'decimal_field1': 5405}

      ,

      {u'decimal_field1': 5406}

      ,

      {u'decimal_field1': 5409}

      ,

      {u'decimal_field1': 5415}

      ], actual :: [

      {u'decimal_field1': 5405}

      ,

      {u'decimal_field1': 5406}

      ,

      {u'decimal_field1': 5409}

      ,

      {u'decimal_field1': 5415}

      ,

      {u'decimal_field1': 5416}

      ]

      sql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE NOT ((decimal_field1 < 5396 OR char_field1 = "N")) GROUP BY int_field1
      n1ql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE NOT ((decimal_field1 < 5396 OR char_field1 = "N")) GROUP BY int_field1
      <<<<<<<<<< TEST 4022 >>>>>>>>>>>
      keyword_list :: [' < ', ' = ', 'BY', 'IN', 'KEY', 'NOT', 'OR']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 502. Expected num: 503.:: mismatch in results :: expected :: [

      {u'primary_key_id': u'780', u'varchar_field1': u'HxXmpDnWPu', u'decimal_field1': 54, u'int_field1': 6287}

      ,

      {u'primary_key_id': u'722', u'varchar_field1': u'lQrABxSqzJ', u'decimal_field1': 59, u'int_field1': 9436}

      ,

      {u'primary_key_id': u'246', u'varchar_field1': u'PXaQXmRwrk', u'decimal_field1': 99, u'int_field1': 6571}

      ,

      {u'primary_key_id': u'965', u'varchar_field1': u'yCHnYRgpsK', u'decimal_field1': 138, u'int_field1': 9566}

      ,

      {u'primary_key_id': u'420', u'varchar_field1': u'JbnXGeDhUn', u'decimal_field1': 152, u'int_field1': 7579}

      ], actual :: [

      {u'primary_key_id': u'780', u'varchar_field1': u'HxXmpDnWPu', u'decimal_field1': 54, u'int_field1': 6287}

      ,

      {u'primary_key_id': u'722', u'varchar_field1': u'lQrABxSqzJ', u'decimal_field1': 59, u'int_field1': 9436}

      ,

      {u'primary_key_id': u'246', u'varchar_field1': u'PXaQXmRwrk', u'decimal_field1': 99, u'int_field1': 6571}

      ,

      {u'primary_key_id': u'965', u'varchar_field1': u'yCHnYRgpsK', u'decimal_field1': 138, u'int_field1': 9566}

      ,

      {u'primary_key_id': u'420', u'varchar_field1': u'JbnXGeDhUn', u'decimal_field1': 152, u'int_field1': 7579}

      ]

      sql_query :: SELECT int_field1 , decimal_field1 , primary_key_id , varchar_field1 FROM simple_table WHERE NOT ((int_field1 < 4988 OR varchar_field1 = "ZKpvvuMHfA")) GROUP BY int_field1 , decimal_field1
      n1ql_query :: SELECT int_field1 , decimal_field1 , primary_key_id , varchar_field1 FROM simple_table WHERE NOT ((int_field1 < 4988 OR varchar_field1 = "ZKpvvuMHfA")) GROUP BY int_field1 , decimal_field1
      <<<<<<<<<< TEST 4116 >>>>>>>>>>>
      keyword_list :: [' = ', ' >= ', 'BY', 'IN', 'KEY', 'NOT', 'OR']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 0. Expected num: 237.:: mismatch in results :: expected :: [

      {u'datetime_field1': '2001-04-06 00:00:00', u'int_field1': 1988, u'primary_key_id': u'878', u'varchar_field1': u'jxBOsbYNsB', u'decimal_field1': 4851, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-06-17 00:00:00', u'int_field1': 8092, u'primary_key_id': u'975', u'varchar_field1': u'JVSMtsxqFt', u'decimal_field1': 6482, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-10-17 00:00:00', u'int_field1': 5627, u'primary_key_id': u'171', u'varchar_field1': u'YrhlPgCYaL', u'decimal_field1': 5487, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-11-06 00:00:00', u'int_field1': 8457, u'primary_key_id': u'934', u'varchar_field1': u'SSjhscUPIp', u'decimal_field1': 5351, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2003-01-01 00:00:00', u'int_field1': 1938, u'primary_key_id': u'287', u'varchar_field1': u'kbFPwLmXVj', u'decimal_field1': 5442, u'char_field1': u'A', u'bool_field1': True}

      ], actual :: []

      sql_query :: SELECT * FROM simple_table WHERE NOT ((NOT (bool_field1) OR (char_field1 = "N") OR (char_field1 >= "N"))) GROUP BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1
      n1ql_query :: SELECT * FROM simple_table WHERE NOT ((NOT (bool_field1) OR (char_field1 = "N") OR (char_field1 >= "N"))) GROUP BY int_field1 , decimal_field1 , primary_key_id , varchar_field1 , char_field1
      <<<<<<<<<< TEST 1245 >>>>>>>>>>>
      keyword_list :: [' = ', 'AND', 'BETWEEN', 'BY', 'DISTINCT', 'IN', 'IS', 'KEY', 'NOT', 'NULL', 'OR', 'ORDER', 'TRUE']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 495. Expected num: 494.:: mismatch in results :: expected :: [

      {u'decimal_field1': 70}

      ,

      {u'decimal_field1': 99}

      ,

      {u'decimal_field1': 147}

      ,

      {u'decimal_field1': 152}

      ,

      {u'decimal_field1': 198}

      ], actual :: [

      {u'decimal_field1': 70}

      ,

      {u'decimal_field1': 99}

      ,

      {u'decimal_field1': 147}

      ,

      {u'decimal_field1': 152}

      ,

      {u'decimal_field1': 198}

      ]

      sql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE ((NOT (bool_field1) AND varchar_field1 IS NOT NULL)) AND ((bool_field1 = true OR int_field1 BETWEEN 12 and 9996)) GROUP BY int_field1 ORDER BY primary_key_id , varchar_field1 , char_field1 ASC
      n1ql_query :: SELECT DISTINCT(decimal_field1) FROM simple_table WHERE ((NOT (bool_field1) AND varchar_field1 IS NOT NULL)) AND ((bool_field1 = true OR int_field1 BETWEEN 12 and 9996)) GROUP BY int_field1 ORDER BY primary_key_id , varchar_field1 , char_field1 ASC
      <<<<<<<<<< TEST 1054 >>>>>>>>>>>
      keyword_list :: [' = ', 'BY', 'IN', 'KEY', 'NOT', 'OR']
      run_result ::
      ____________________________________________________
      Scenario :: run_query_without_index_hint
      Reason :: Results are incorrect.Actual num 225. Expected num: 477.:: mismatch in results :: expected :: [

      {u'datetime_field1': '2001-04-06 00:00:00', u'int_field1': 1988, u'primary_key_id': u'878', u'varchar_field1': u'jxBOsbYNsB', u'decimal_field1': 4851, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-06-17 00:00:00', u'int_field1': 8092, u'primary_key_id': u'975', u'varchar_field1': u'JVSMtsxqFt', u'decimal_field1': 6482, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-10-17 00:00:00', u'int_field1': 5627, u'primary_key_id': u'171', u'varchar_field1': u'YrhlPgCYaL', u'decimal_field1': 5487, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2001-11-06 00:00:00', u'int_field1': 8457, u'primary_key_id': u'934', u'varchar_field1': u'SSjhscUPIp', u'decimal_field1': 5351, u'char_field1': u'A', u'bool_field1': True}

      ,

      {u'datetime_field1': '2003-01-01 00:00:00', u'int_field1': 1938, u'primary_key_id': u'287', u'varchar_field1': u'kbFPwLmXVj', u'decimal_field1': 5442, u'char_field1': u'A', u'bool_field1': True}

      ], actual :: [

      {u'datetime_field1': u'2001-04-06 00:00:00', u'bool_field1': True, u'primary_key_id': u'878', u'varchar_field1': u'jxBOsbYNsB', u'decimal_field1': 4851, u'char_field1': u'A', u'int_field1': 1988}

      ,

      {u'datetime_field1': u'2003-01-01 00:00:00', u'bool_field1': True, u'primary_key_id': u'287', u'varchar_field1': u'kbFPwLmXVj', u'decimal_field1': 5442, u'char_field1': u'A', u'int_field1': 1938}

      ,

      {u'datetime_field1': u'2006-05-27 00:00:00', u'bool_field1': True, u'primary_key_id': u'506', u'varchar_field1': u'poAMwWFzBf', u'decimal_field1': 4929, u'char_field1': u'A', u'int_field1': 7111}

      ,

      {u'datetime_field1': u'2009-01-25 00:00:00', u'bool_field1': True, u'primary_key_id': u'564', u'varchar_field1': u'sUELnHuPss', u'decimal_field1': 3197, u'char_field1': u'A', u'int_field1': 5260}

      ,

      {u'datetime_field1': u'2009-06-12 00:00:00', u'bool_field1': True, u'primary_key_id': u'508', u'varchar_field1': u'wLCdaxdPSQ', u'decimal_field1': 9071, u'char_field1': u'A', u'int_field1': 9013}

      ]

      sql_query :: SELECT * FROM simple_table WHERE NOT ((NOT (bool_field1) OR varchar_field1 = "ZKpvvuMHfA")) GROUP BY int_field1 , primary_key_id , varchar_field1 , char_field1
      n1ql_query :: SELECT * FROM simple_table WHERE NOT ((NOT (bool_field1) OR varchar_field1 = "ZKpvvuMHfA")) GROUP BY int_field1 , primary_key_id , varchar_field1 , char_field1

      All these queries run fine with primary indexes

      Attachments

        1. data_dump.tar.gz
          574 kB
        2. logs.latest.tar.gz
          89.34 MB
        3. more_failures_data_dump.tar.gz
          436 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            isha Isha Kandaswamy (Inactive)
            parag Parag Agarwal (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