mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 15:45:33 +02:00
InnoDB support for HANDLER
mysql-test/r/innodb.result: remove handler test from innodb.test mysql-test/t/innodb.test: remove handler test from innodb.test sql/ha_innodb.cc: HANDLER support sql/ha_innodb.h: HANDLER support sql/handler.h: HANDLER support for InnoDB sql/sql_handler.cc: HANDLER support for InnoDB
This commit is contained in:
parent
bccec2296b
commit
3f93edfa14
8 changed files with 215 additions and 22 deletions
|
|
@ -404,7 +404,6 @@ ha_innobase::update_thd(
|
|||
return(0);
|
||||
}
|
||||
|
||||
#ifdef notdefined
|
||||
/* The code here appears for documentational purposes only. Not used
|
||||
or tested yet. Will be used in 4.1. */
|
||||
/*********************************************************************
|
||||
|
|
@ -420,9 +419,6 @@ ha_innobase::init_table_handle_for_HANDLER(void)
|
|||
{
|
||||
row_prebuilt_t* prebuilt;
|
||||
|
||||
ut_a(0); /* the code has not been used or tested yet; to prevent
|
||||
inadvertent usage we assert an error here */
|
||||
|
||||
/* If current thd does not yet have a trx struct, create one.
|
||||
If the current handle does not yet have a prebuilt struct, create
|
||||
one. Update the trx pointers in the prebuilt struct. Normally
|
||||
|
|
@ -462,7 +458,6 @@ ha_innobase::init_table_handle_for_HANDLER(void)
|
|||
|
||||
prebuilt->read_just_key = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*************************************************************************
|
||||
Opens an InnoDB database. */
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class ha_innobase: public handler
|
|||
ha_innobase(TABLE *table): handler(table),
|
||||
int_table_flags(HA_REC_NOT_IN_SEQ |
|
||||
HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER |
|
||||
HA_NULL_KEY |
|
||||
HA_NULL_KEY | HA_CAN_SQL_HANDLER |
|
||||
HA_NOT_EXACT_COUNT |
|
||||
HA_NO_WRITE_DELAYED |
|
||||
HA_PRIMARY_KEY_IN_READ_INDEX |
|
||||
|
|
@ -164,8 +164,7 @@ class ha_innobase: public handler
|
|||
void free_foreign_key_create_info(char* str);
|
||||
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
||||
enum thr_lock_type lock_type);
|
||||
/* void init_table_handle_for_HANDLER(); Not tested or used yet, code
|
||||
included for documentational purposes only */
|
||||
void init_table_handle_for_HANDLER();
|
||||
longlong get_auto_increment();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -313,6 +313,8 @@ public:
|
|||
virtual void append_create_info(String *packet) {}
|
||||
virtual char* get_foreign_key_create_info()
|
||||
{ return(NULL);} /* gets foreign key create string from InnoDB */
|
||||
virtual void init_table_handle_for_HANDLER()
|
||||
{ return; } /* prepare InnoDB for HANDLER */
|
||||
virtual void free_foreign_key_create_info(char* str) {}
|
||||
/* The following can be called without an open handler */
|
||||
virtual const char *table_type() const =0;
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
|||
keyname,tables->name);
|
||||
return -1;
|
||||
}
|
||||
table->file->index_init(keyno);
|
||||
}
|
||||
|
||||
List<Item> list;
|
||||
|
|
@ -127,7 +128,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
|||
|
||||
insert_fields(thd,tables,tables->db,tables->name,&it);
|
||||
|
||||
table->file->index_init(keyno);
|
||||
table->file->init_table_handle_for_HANDLER(); // Only InnoDB requires it
|
||||
|
||||
select_limit+=offset_limit;
|
||||
send_fields(thd,list,1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue