diff options
Diffstat (limited to 'sql/table.cc')
-rw-r--r-- | sql/table.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sql/table.cc b/sql/table.cc index 90ff98b55bf..a7d330636c9 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -2698,9 +2698,22 @@ partititon_err: bzero((char*) bitmaps, bitmap_size*3); #endif - outparam->no_replicate= outparam->file && - test(outparam->file->ha_table_flags() & - HA_HAS_OWN_BINLOGGING); + if (share->table_category == TABLE_CATEGORY_LOG) + { + outparam->no_replicate= TRUE; + } + else if (outparam->file) + { + handler::Table_flags flags= outparam->file->ha_table_flags(); + outparam->no_replicate= ! test(flags & (HA_BINLOG_STMT_CAPABLE + | HA_BINLOG_ROW_CAPABLE)) + || test(flags & HA_HAS_OWN_BINLOGGING); + } + else + { + outparam->no_replicate= FALSE; + } + thd->status_var.opened_tables++; thd->lex->context_analysis_only= save_context_analysis_only; |