mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22
into quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-rpl mysql-test/suite/ndb/r/ndb_dd_basic.result: Auto merged sql/field.cc: Auto merged sql/handler.cc: Auto merged sql/log.cc: Auto merged sql/log_event_old.cc: Auto merged sql/mysqld.cc: Auto merged sql/rpl_record.cc: Auto merged sql/rpl_record.h: Auto merged sql/rpl_utility.cc: Auto merged sql/rpl_utility.h: Auto merged sql/sp_head.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_string.cc: Auto merged sql/sql_table.cc: Auto merged sql/unireg.h: Auto merged sql/log_event.cc: Manual merge. sql/log_event.h: Manual merge. sql/log_event_old.h: Manual merge.
This commit is contained in:
@ -217,7 +217,7 @@ public:
|
||||
WL#3915) or needs to advance the pointer for the fields in the raw
|
||||
data from the master to a specific column.
|
||||
*/
|
||||
uint32 calc_field_size(uint col, uchar *master_data);
|
||||
uint32 calc_field_size(uint col, uchar *master_data) const;
|
||||
|
||||
/**
|
||||
Decide if the table definition is compatible with a table.
|
||||
@ -258,4 +258,44 @@ struct RPL_TABLE_LIST
|
||||
table_def m_tabledef;
|
||||
};
|
||||
|
||||
|
||||
/* Anonymous namespace for template functions/classes */
|
||||
namespace {
|
||||
|
||||
/*
|
||||
Smart pointer that will automatically call my_afree (a macro) when
|
||||
the pointer goes out of scope. This is used so that I do not have
|
||||
to remember to call my_afree() before each return. There is no
|
||||
overhead associated with this, since all functions are inline.
|
||||
|
||||
I (Matz) would prefer to use the free function as a template
|
||||
parameter, but that is not possible when the "function" is a
|
||||
macro.
|
||||
*/
|
||||
template <class Obj>
|
||||
class auto_afree_ptr
|
||||
{
|
||||
Obj* m_ptr;
|
||||
public:
|
||||
auto_afree_ptr(Obj* ptr) : m_ptr(ptr) { }
|
||||
~auto_afree_ptr() { if (m_ptr) my_afree(m_ptr); }
|
||||
void assign(Obj* ptr) {
|
||||
/* Only to be called if it hasn't been given a value before. */
|
||||
DBUG_ASSERT(m_ptr == NULL);
|
||||
m_ptr= ptr;
|
||||
}
|
||||
Obj* get() { return m_ptr; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#define DBUG_PRINT_BITSET(N,FRM,BS) \
|
||||
do { \
|
||||
char buf[256]; \
|
||||
for (uint i = 0 ; i < (BS)->n_bits ; ++i) \
|
||||
buf[i] = bitmap_is_set((BS), i) ? '1' : '0'; \
|
||||
buf[(BS)->n_bits] = '\0'; \
|
||||
DBUG_PRINT((N), ((FRM), buf)); \
|
||||
} while (0)
|
||||
|
||||
#endif /* RPL_UTILITY_H */
|
||||
|
Reference in New Issue
Block a user