mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call. include/heap.h: Added new function sql/ha_ndbcluster.cc: Updated hanlderton functions sql/ha_ndbcluster_binlog.cc: Updated handlerton functions. sql/handler.cc: Updated handlerton functions. sql/handler.h: Updated hanlderton functions sql/log.cc: Updated handlerton functions sql/mysql_priv.h: Updated handlerton functions sql/mysqld.cc: Added Legacy handlerton functions sql/partition_info.cc: Added flag support for marking engines not compatible with partitioning sql/sql_cursor.cc: Updated hanlderton functions sql/sql_show.cc: Updated hanlderton functions sql/sql_tablespace.cc: Update for handlerton functions storage/archive/ha_archive.cc: Update for hanlderton functions storage/archive/ha_archive.h: Update for handlerton functions storage/blackhole/ha_blackhole.cc: Update for handlerton functions storage/csv/ha_tina.cc: Update for handlerton functions storage/csv/ha_tina.h: Update for handlerton functions storage/federated/ha_federated.cc: Updated for handlerton functions storage/federated/ha_federated.h: Updated for handlerton functions storage/heap/ha_heap.cc: Update for handlerton functions storage/heap/hp_panic.c: Update of function name storage/heap/hp_test1.c: Update of function name storage/heap/hp_test2.c: Update of function name. storage/innobase/handler/ha_innodb.cc: Update of function name storage/innobase/handler/ha_innodb.h: Update of function name storage/myisam/ha_myisam.cc: Update of function name. storage/myisammrg/ha_myisammrg.cc: Update of function name
This commit is contained in:
@@ -45,7 +45,7 @@ class Sensitive_cursor: public Server_side_cursor
|
||||
query_id_t query_id;
|
||||
struct Engine_info
|
||||
{
|
||||
const handlerton *ht;
|
||||
handlerton *ht;
|
||||
void *read_view;
|
||||
};
|
||||
Engine_info ht_info[MAX_HA];
|
||||
@@ -318,12 +318,12 @@ Sensitive_cursor::post_open(THD *thd)
|
||||
info= &ht_info[0];
|
||||
for (handlerton **pht= thd->transaction.stmt.ht; *pht; pht++)
|
||||
{
|
||||
const handlerton *ht= *pht;
|
||||
handlerton *ht= *pht;
|
||||
close_at_commit|= test(ht->flags & HTON_CLOSE_CURSORS_AT_COMMIT);
|
||||
if (ht->create_cursor_read_view)
|
||||
{
|
||||
info->ht= ht;
|
||||
info->read_view= (ht->create_cursor_read_view)();
|
||||
info->read_view= (ht->create_cursor_read_view)(ht);
|
||||
++info;
|
||||
}
|
||||
}
|
||||
@@ -433,7 +433,7 @@ Sensitive_cursor::fetch(ulong num_rows)
|
||||
thd->set_n_backup_active_arena(this, &backup_arena);
|
||||
|
||||
for (info= ht_info; info->read_view ; info++)
|
||||
(info->ht->set_cursor_read_view)(info->read_view);
|
||||
(info->ht->set_cursor_read_view)(info->ht, info->read_view);
|
||||
|
||||
join->fetch_limit+= num_rows;
|
||||
|
||||
@@ -454,7 +454,7 @@ Sensitive_cursor::fetch(ulong num_rows)
|
||||
reset_thd(thd);
|
||||
|
||||
for (info= ht_info; info->read_view; info++)
|
||||
(info->ht->set_cursor_read_view)(0);
|
||||
(info->ht->set_cursor_read_view)(info->ht, 0);
|
||||
|
||||
if (error == NESTED_LOOP_CURSOR_LIMIT)
|
||||
{
|
||||
@@ -487,7 +487,7 @@ Sensitive_cursor::close()
|
||||
|
||||
for (Engine_info *info= ht_info; info->read_view; info++)
|
||||
{
|
||||
(info->ht->close_cursor_read_view)(info->read_view);
|
||||
(info->ht->close_cursor_read_view)(info->ht, info->read_view);
|
||||
info->read_view= 0;
|
||||
info->ht= 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user