mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Improved fix for HPUX compile failure.
This commit is contained in:
@ -1605,13 +1605,14 @@ public:
|
||||
lock(0)
|
||||
{}
|
||||
int prepare(List<Item> &list, SELECT_LEX_UNIT *u);
|
||||
friend class select_create_prepare_hooks;
|
||||
|
||||
void binlog_show_create_table(TABLE **tables, uint count);
|
||||
void store_values(List<Item> &values);
|
||||
void send_error(uint errcode,const char *err);
|
||||
bool send_eof();
|
||||
void abort();
|
||||
// Needed for access from local class MY_HOOKS in prepare(), since thd is proteted.
|
||||
THD *get_thd(void) { return thd; }
|
||||
};
|
||||
|
||||
#include <myisam.h>
|
||||
|
@ -2498,15 +2498,17 @@ bool select_insert::send_eof()
|
||||
CREATE TABLE (SELECT) ...
|
||||
***************************************************************************/
|
||||
|
||||
/* HPUX compiler bug prevents this from being a local class, since then it
|
||||
does not have access to protected member select_create::thd.
|
||||
*/
|
||||
class select_create_prepare_hooks : public TABLEOP_HOOKS {
|
||||
int
|
||||
select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
||||
{
|
||||
DBUG_ENTER("select_create::prepare");
|
||||
|
||||
class MY_HOOKS : public TABLEOP_HOOKS {
|
||||
public:
|
||||
select_create_prepare_hooks(select_create *x) : ptr(x) { }
|
||||
MY_HOOKS(select_create *x) : ptr(x) { }
|
||||
virtual void do_prelock(TABLE **tables, uint count)
|
||||
{
|
||||
if (ptr->thd->current_stmt_binlog_row_based)
|
||||
if (ptr->get_thd()->current_stmt_binlog_row_based)
|
||||
ptr->binlog_show_create_table(tables, count);
|
||||
}
|
||||
|
||||
@ -2514,12 +2516,7 @@ private:
|
||||
select_create *ptr;
|
||||
};
|
||||
|
||||
int
|
||||
select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
||||
{
|
||||
DBUG_ENTER("select_create::prepare");
|
||||
|
||||
select_create_prepare_hooks hooks(this);
|
||||
MY_HOOKS hooks(this);
|
||||
|
||||
unit= u;
|
||||
table= create_table_from_items(thd, create_info, create_table,
|
||||
|
Reference in New Issue
Block a user