~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_delete.cc

  • Committer: Brian Aker
  • Date: 2008-12-07 01:52:46 UTC
  • Revision ID: brian@tangent.org-20081207015246-debwl881w1y1s6zb
Updating new replication positions in code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
317
317
  /* See similar binlogging code in sql_update.cc, for comments */
318
318
  if ((error < 0) || session->transaction.stmt.modified_non_trans_table)
319
319
  {
320
 
    if (drizzle_bin_log.is_open())
321
 
    {
322
 
      if (error < 0)
323
 
        session->clear_error();
324
 
      /*
325
 
        [binlog]: If 'handler::delete_all_rows()' was called and the
326
 
        storage engine does not inject the rows itself, we replicate
327
 
        statement-based; otherwise, 'ha_delete_row()' was used to
328
 
        delete specific rows which we might log row-based.
329
 
      */
330
 
      int log_result= session->binlog_query(Session::ROW_QUERY_TYPE,
331
 
                                        session->query, session->query_length,
332
 
                                        transactional_table, false, killed_status);
333
 
 
334
 
      if (log_result && transactional_table)
335
 
      {
336
 
        error=1;
337
 
      }
338
 
    }
339
320
    if (session->transaction.stmt.modified_non_trans_table)
340
321
      session->transaction.all.modified_non_trans_table= true;
341
322
  }
678
659
 
679
660
  if (session->transaction.stmt.modified_non_trans_table)
680
661
  {
681
 
    /*
682
 
       there is only side effects; to binlog with the error
683
 
    */
684
 
    if (drizzle_bin_log.is_open())
685
 
    {
686
 
      session->binlog_query(Session::ROW_QUERY_TYPE,
687
 
                        session->query, session->query_length,
688
 
                        transactional_tables, false);
689
 
    }
690
662
    session->transaction.all.modified_non_trans_table= true;
691
663
  }
692
664
  return;
786
758
 
787
759
  if ((local_error == 0) || session->transaction.stmt.modified_non_trans_table)
788
760
  {
789
 
    if (drizzle_bin_log.is_open())
790
 
    {
791
 
      if (local_error == 0)
792
 
        session->clear_error();
793
 
      if (session->binlog_query(Session::ROW_QUERY_TYPE,
794
 
                            session->query, session->query_length,
795
 
                            transactional_tables, false, killed_status) &&
796
 
          !normal_tables)
797
 
      {
798
 
        local_error=1;  // Log write failed: roll back the SQL statement
799
 
      }
800
 
    }
801
761
    if (session->transaction.stmt.modified_non_trans_table)
802
762
      session->transaction.all.modified_non_trans_table= true;
803
763
  }