• unknown's avatar
    Bug #21019: First result of SELECT COUNT(*) different than consecutive runs · 035ddb82
    unknown authored
     When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're
     united into a single condition on the key and checked together the server must 
     check which value is the NULL value in a correct way : not only using ->is_null 
     but also check if the expression doesn't depend on any tables referenced in the 
     current statement. 
     This additional check must be performed because that optimization takes place 
     before the actual execution of the statement, so if the field was initialized 
     to NULL from a previous statement the optimization would be applied incorrectly.
    
    
    mysql-test/r/select.result:
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
       - test case
    mysql-test/t/select.test:
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
       - test case. 
         Note that ALTER TABLE is important here : it happens to
         leave the Field instance for t1.b set to NULL, witch is vital for
         demonstrating the problem fixed by this changeset.
    sql/sql_select.cc:
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
       - check whether a value is null taking into account its table dependency.
    035ddb82
sql_select.cc 295 KB