• unknown's avatar
    Fix for bug #34889: mysql_client_test::test_mysql_insert_id test fails · 0c1dd98e
    unknown authored
                        sporadically
    
    Under some circumstances, the mysql_insert_id() value after SELECT ...
    INSERT could return a wrong value. This could happen when the last
    SELECT ... INSERT did not involve an AUTO_INCREMENT column, but the
    value of mysql_insert_id() was changed by some previous statements.
    
    Fixed by checking the value of thd->insert_id_used in
    select_insert::send_eof() and returning 0 for mysql_insert_id() if it
    is not set.
    
    
    sql/sql_insert.cc:
      Do not return thd->last_insert_id unconditionally in
      select_insert::send_eof(). First check if thd->insert_id_used is
      non-zero, and return 0 otherwise.
    tests/mysql_client_test.c:
      Added a test case for bug #34889.
    0c1dd98e
sql_insert.cc 108 KB