Loading client/mysqltest.c +1 −0 Original line number Diff line number Diff line Loading @@ -3736,6 +3736,7 @@ static void fix_win_paths(const char* val, int len) { const char** pattern= dynamic_element(&patterns, i, const char**); DBUG_PRINT("info", ("pattern: %s", *pattern)); if (strlen(*pattern) == 0) continue; /* Search for the path in string */ while ((p= strstr(val, *pattern))) { Loading sql/ha_partition.cc +40 −1 Original line number Diff line number Diff line Loading @@ -218,6 +218,7 @@ void ha_partition::init_handler_variables() m_engine_array= NULL; m_file= NULL; m_reorged_file= NULL; m_new_file= NULL; m_reorged_parts= 0; m_added_file= NULL; m_tot_parts= 0; Loading Loading @@ -4680,11 +4681,13 @@ int ha_partition::extra(enum ha_extra_function operation) } /* Category 3), used by MyISAM handlers */ case HA_EXTRA_PREPARE_FOR_DELETE: DBUG_RETURN(prepare_for_delete()); break; case HA_EXTRA_NORMAL: case HA_EXTRA_QUICK: case HA_EXTRA_NO_READCHECK: case HA_EXTRA_PREPARE_FOR_UPDATE: case HA_EXTRA_PREPARE_FOR_DELETE: case HA_EXTRA_FORCE_REOPEN: case HA_EXTRA_FLUSH_CACHE: { Loading Loading @@ -4793,6 +4796,41 @@ void ha_partition::prepare_extra_cache(uint cachesize) } /* Prepares our new and reorged handlers for rename or delete SYNOPSIS prepare_for_delete() RETURN VALUE >0 Error code 0 Success */ int ha_partition::prepare_for_delete() { int result= 0, tmp; handler **file; DBUG_ENTER("ha_partition::prepare_for_delete()"); if (m_new_file != NULL) { for (file= m_new_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; for (file= m_reorged_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; } else { for (file= m_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; } DBUG_RETURN(result); } /* Call extra on all partitions Loading @@ -4810,6 +4848,7 @@ int ha_partition::loop_extra(enum ha_extra_function operation) int result= 0, tmp; handler **file; DBUG_ENTER("ha_partition::loop_extra()"); /* TODO, 5.2: this is where you could possibly add optimisations to add the bitmap _if_ a SELECT. Loading sql/ha_partition.h +1 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,7 @@ class ha_partition :public handler DBUG_RETURN(0); } private: int prepare_for_delete(); int copy_partitions(ulonglong *copied, ulonglong *deleted); void cleanup_new_partition(uint part_count); int prepare_new_partition(TABLE *table, HA_CREATE_INFO *create_info, Loading Loading
client/mysqltest.c +1 −0 Original line number Diff line number Diff line Loading @@ -3736,6 +3736,7 @@ static void fix_win_paths(const char* val, int len) { const char** pattern= dynamic_element(&patterns, i, const char**); DBUG_PRINT("info", ("pattern: %s", *pattern)); if (strlen(*pattern) == 0) continue; /* Search for the path in string */ while ((p= strstr(val, *pattern))) { Loading
sql/ha_partition.cc +40 −1 Original line number Diff line number Diff line Loading @@ -218,6 +218,7 @@ void ha_partition::init_handler_variables() m_engine_array= NULL; m_file= NULL; m_reorged_file= NULL; m_new_file= NULL; m_reorged_parts= 0; m_added_file= NULL; m_tot_parts= 0; Loading Loading @@ -4680,11 +4681,13 @@ int ha_partition::extra(enum ha_extra_function operation) } /* Category 3), used by MyISAM handlers */ case HA_EXTRA_PREPARE_FOR_DELETE: DBUG_RETURN(prepare_for_delete()); break; case HA_EXTRA_NORMAL: case HA_EXTRA_QUICK: case HA_EXTRA_NO_READCHECK: case HA_EXTRA_PREPARE_FOR_UPDATE: case HA_EXTRA_PREPARE_FOR_DELETE: case HA_EXTRA_FORCE_REOPEN: case HA_EXTRA_FLUSH_CACHE: { Loading Loading @@ -4793,6 +4796,41 @@ void ha_partition::prepare_extra_cache(uint cachesize) } /* Prepares our new and reorged handlers for rename or delete SYNOPSIS prepare_for_delete() RETURN VALUE >0 Error code 0 Success */ int ha_partition::prepare_for_delete() { int result= 0, tmp; handler **file; DBUG_ENTER("ha_partition::prepare_for_delete()"); if (m_new_file != NULL) { for (file= m_new_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; for (file= m_reorged_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; } else { for (file= m_file; *file; file++) if ((tmp= (*file)->extra(HA_EXTRA_PREPARE_FOR_DELETE))) result= tmp; } DBUG_RETURN(result); } /* Call extra on all partitions Loading @@ -4810,6 +4848,7 @@ int ha_partition::loop_extra(enum ha_extra_function operation) int result= 0, tmp; handler **file; DBUG_ENTER("ha_partition::loop_extra()"); /* TODO, 5.2: this is where you could possibly add optimisations to add the bitmap _if_ a SELECT. Loading
sql/ha_partition.h +1 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,7 @@ class ha_partition :public handler DBUG_RETURN(0); } private: int prepare_for_delete(); int copy_partitions(ulonglong *copied, ulonglong *deleted); void cleanup_new_partition(uint part_count); int prepare_new_partition(TABLE *table, HA_CREATE_INFO *create_info, Loading