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)
|
lock(0)
|
||||||
{}
|
{}
|
||||||
int prepare(List<Item> &list, SELECT_LEX_UNIT *u);
|
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 binlog_show_create_table(TABLE **tables, uint count);
|
||||||
void store_values(List<Item> &values);
|
void store_values(List<Item> &values);
|
||||||
void send_error(uint errcode,const char *err);
|
void send_error(uint errcode,const char *err);
|
||||||
bool send_eof();
|
bool send_eof();
|
||||||
void abort();
|
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>
|
#include <myisam.h>
|
||||||
|
@ -2498,28 +2498,25 @@ bool select_insert::send_eof()
|
|||||||
CREATE TABLE (SELECT) ...
|
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 {
|
|
||||||
public:
|
|
||||||
select_create_prepare_hooks(select_create *x) : ptr(x) { }
|
|
||||||
virtual void do_prelock(TABLE **tables, uint count)
|
|
||||||
{
|
|
||||||
if (ptr->thd->current_stmt_binlog_row_based)
|
|
||||||
ptr->binlog_show_create_table(tables, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
select_create *ptr;
|
|
||||||
};
|
|
||||||
|
|
||||||
int
|
int
|
||||||
select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("select_create::prepare");
|
DBUG_ENTER("select_create::prepare");
|
||||||
|
|
||||||
select_create_prepare_hooks hooks(this);
|
class MY_HOOKS : public TABLEOP_HOOKS {
|
||||||
|
public:
|
||||||
|
MY_HOOKS(select_create *x) : ptr(x) { }
|
||||||
|
virtual void do_prelock(TABLE **tables, uint count)
|
||||||
|
{
|
||||||
|
if (ptr->get_thd()->current_stmt_binlog_row_based)
|
||||||
|
ptr->binlog_show_create_table(tables, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
select_create *ptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
MY_HOOKS hooks(this);
|
||||||
|
|
||||||
unit= u;
|
unit= u;
|
||||||
table= create_table_from_items(thd, create_info, create_table,
|
table= create_table_from_items(thd, create_info, create_table,
|
||||||
|
Reference in New Issue
Block a user