~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/handler/ha_innodb.cc

Merge Stewart - fix bug 587772: READ COMMITTED isolation level doesn't work (at least with InnoDB)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2555
2555
    SQL statement */
2556
2556
 
2557
2557
    trx_mark_sql_stat_end(trx);
 
2558
 
 
2559
    if (! session_test_options(session, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))
 
2560
    {
 
2561
      if (trx->conc_state != TRX_NOT_STARTED)
 
2562
      {
 
2563
        commit(session, TRUE);
 
2564
      }
 
2565
    }
2558
2566
  }
2559
2567
 
2560
2568
  trx->n_autoinc_rows = 0; /* Reset the number AUTO-INC rows required */
2569
2577
  threads: */
2570
2578
  srv_active_wake_master_thread();
2571
2579
 
 
2580
  if (trx->isolation_level <= TRX_ISO_READ_COMMITTED &&
 
2581
      trx->global_read_view)
 
2582
  {
 
2583
    /* At low transaction isolation levels we let
 
2584
       each consistent read set its own snapshot */
 
2585
    read_view_close_for_mysql(trx);
 
2586
  }
 
2587
 
2572
2588
  return(0);
2573
2589
}
2574
2590
 
2612
2628
    error = trx_rollback_last_sql_stat_for_mysql(trx);
2613
2629
  }
2614
2630
 
 
2631
  if (trx->isolation_level <= TRX_ISO_READ_COMMITTED &&
 
2632
      trx->global_read_view)
 
2633
  {
 
2634
    /* At low transaction isolation levels we let
 
2635
       each consistent read set its own snapshot */
 
2636
    read_view_close_for_mysql(trx);
 
2637
  }
 
2638
 
2615
2639
  return(convert_error_code_to_mysql(error, 0, NULL));
2616
2640
}
2617
2641
 
8166
8190
 
8167
8191
  innobase_release_stat_resources(trx);
8168
8192
 
8169
 
  if (! session_test_options(session, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))
8170
 
  {
8171
 
    if (trx->conc_state != TRX_NOT_STARTED)
8172
 
    {
8173
 
      commit(session, TRUE);
8174
 
    }
8175
 
  }
8176
 
  else
8177
 
  {
8178
 
    if (trx->isolation_level <= TRX_ISO_READ_COMMITTED &&
8179
 
        trx->global_read_view)
8180
 
    {
8181
 
      /* At low transaction isolation levels we let
8182
 
      each consistent read set its own snapshot */
8183
 
      read_view_close_for_mysql(trx);
8184
 
    }
8185
 
  }
8186
8193
}
8187
8194
 
8188
8195
/*******************************************************************//**