Commit 4a40438e authored by mats@mysql.com's avatar mats@mysql.com

The ha_*_row() function shall not be virtual since they represent

public interface for handler users. Virtual keyword removed for 
those functions.
parent 23e84337
...@@ -1101,9 +1101,17 @@ class handler :public Sql_alloc ...@@ -1101,9 +1101,17 @@ class handler :public Sql_alloc
uint get_index(void) const { return active_index; } uint get_index(void) const { return active_index; }
virtual int open(const char *name, int mode, uint test_if_locked)=0; virtual int open(const char *name, int mode, uint test_if_locked)=0;
virtual int close(void)=0; virtual int close(void)=0;
virtual int ha_write_row(byte * buf);
virtual int ha_update_row(const byte * old_data, byte * new_data); /*
virtual int ha_delete_row(const byte * buf); These functions represent the public interface to *users* of the
handler class, hence they are *not* virtual. For the inheritance
interface, see the (private) functions write_row(), update_row(),
and delete_row() below.
*/
int ha_write_row(byte * buf);
int ha_update_row(const byte * old_data, byte * new_data);
int ha_delete_row(const byte * buf);
/* /*
SYNOPSIS SYNOPSIS
start_bulk_update() start_bulk_update()
...@@ -1472,28 +1480,27 @@ class handler :public Sql_alloc ...@@ -1472,28 +1480,27 @@ class handler :public Sql_alloc
{ return COMPATIBLE_DATA_NO; } { return COMPATIBLE_DATA_NO; }
private: private:
friend int ndb_add_binlog_index(THD *, void *);
/* /*
Row-level primitives for storage engines. Row-level primitives for storage engines. These should be
These should be overridden by the storage engine class. To call overridden by the storage engine class. To call these methods, use
these methods, use the corresponding 'ha_*' method above. the corresponding 'ha_*' method above.
*/ */
friend int ndb_add_binlog_index(THD *, void *); virtual int write_row(byte *buf __attribute__((unused)))
{
virtual int write_row(byte *buf __attribute__((unused))) return HA_ERR_WRONG_COMMAND;
{
return HA_ERR_WRONG_COMMAND;
} }
virtual int update_row(const byte *old_data __attribute__((unused)), virtual int update_row(const byte *old_data __attribute__((unused)),
byte *new_data __attribute__((unused))) byte *new_data __attribute__((unused)))
{ {
return HA_ERR_WRONG_COMMAND; return HA_ERR_WRONG_COMMAND;
} }
virtual int delete_row(const byte *buf __attribute__((unused))) virtual int delete_row(const byte *buf __attribute__((unused)))
{ {
return HA_ERR_WRONG_COMMAND; return HA_ERR_WRONG_COMMAND;
} }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment