diff options
author | Sergei Golubchik <serg@mariadb.org> | 2020-06-07 20:39:31 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2020-06-09 14:32:43 +0200 |
commit | 89a33303c4ddcca4b3a6492a3327dd68c008c2a6 (patch) | |
tree | 618245604ca20bb46e194e1074e94af54f63411e | |
parent | 76cb2f9dd677d91df9ce135475a66db7048f7d8c (diff) | |
download | mariadb-git-89a33303c4ddcca4b3a6492a3327dd68c008c2a6.tar.gz |
remove dead code
reduce the amount of engine-specific code in the server,
particularly as it does not serve any purpose now.
may be needed for VP engine,
to be reconsidered in MDEV-7795
-rw-r--r-- | sql/ha_partition.cc | 37 | ||||
-rw-r--r-- | sql/ha_partition.h | 1 | ||||
-rw-r--r-- | sql/handler.cc | 1 | ||||
-rw-r--r-- | sql/handler.h | 38 | ||||
-rw-r--r-- | sql/sql_base.cc | 4 | ||||
-rw-r--r-- | sql/table.cc | 4 | ||||
-rw-r--r-- | sql/table.h | 9 | ||||
-rw-r--r-- | storage/spider/ha_spider.cc | 113 | ||||
-rw-r--r-- | storage/spider/ha_spider.h | 10 | ||||
-rw-r--r-- | storage/spider/spd_include.h | 3 | ||||
-rw-r--r-- | storage/spider/spd_table.cc | 38 |
11 files changed, 10 insertions, 248 deletions
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index 123e89f8846..9700810f3b8 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -7241,8 +7241,6 @@ bool ha_partition::check_parallel_search() if (order_field && order_field->table == table_list->table) { Field *part_field= m_part_info->full_part_field_array[0]; - if (set_top_table_fields) - order_field= top_table_field[order_field->field_index]; DBUG_PRINT("info",("partition order_field: %p", order_field)); DBUG_PRINT("info",("partition part_field: %p", part_field)); if (part_field == order_field) @@ -7286,8 +7284,6 @@ bool ha_partition::check_parallel_search() if (group_field && group_field->table == table_list->table) { Field *part_field= m_part_info->full_part_field_array[0]; - if (set_top_table_fields) - group_field= top_table_field[group_field->field_index]; DBUG_PRINT("info",("partition group_field: %p", group_field)); DBUG_PRINT("info",("partition part_field: %p", part_field)); if (part_field == group_field) @@ -11223,22 +11219,6 @@ const COND *ha_partition::cond_push(const COND *cond) COND *res_cond= NULL; DBUG_ENTER("ha_partition::cond_push"); - if (set_top_table_fields) - { - /* - We want to do this in a separate loop to not come into a situation - where we have only done cond_push() to some of the tables - */ - do - { - if (((*file)->set_top_table_and_fields(top_table, - top_table_field, - top_table_fields))) - DBUG_RETURN(cond); // Abort cond push, no error - } while (*(++file)); - file= m_file; - } - do { if ((*file)->pushed_cond != cond) @@ -11870,23 +11850,6 @@ int ha_partition::info_push(uint info_type, void *info) } -void ha_partition::clear_top_table_fields() -{ - handler **file; - DBUG_ENTER("ha_partition::clear_top_table_fields"); - - if (set_top_table_fields) - { - set_top_table_fields= FALSE; - top_table= NULL; - top_table_field= NULL; - top_table_fields= 0; - for (file= m_file; *file; file++) - (*file)->clear_top_table_fields(); - } - DBUG_VOID_RETURN; -} - bool ha_partition::can_convert_string(const Field_string* field, const Column_definition& new_type) const diff --git a/sql/ha_partition.h b/sql/ha_partition.h index f7da67562ae..120d5cb2b30 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -1552,7 +1552,6 @@ public: */ const COND *cond_push(const COND *cond) override; void cond_pop() override; - void clear_top_table_fields() override; int info_push(uint info_type, void *info) override; private: diff --git a/sql/handler.cc b/sql/handler.cc index eac029fd5ac..1af0157783e 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -6581,7 +6581,6 @@ int handler::ha_reset() cancel_pushed_idx_cond(); /* Reset information about pushed index conditions */ cancel_pushed_rowid_filter(); - clear_top_table_fields(); if (lookup_handler != this) { lookup_handler->ha_external_unlock(table->in_use); diff --git a/sql/handler.h b/sql/handler.h index 1fd9a1c6fe0..f592c635c5d 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -3238,12 +3238,6 @@ public: /** End a batch started with @c start_psi_batch_mode. */ void end_psi_batch_mode(); - bool set_top_table_fields; - - struct TABLE *top_table; - Field **top_table_field; - uint top_table_fields; - /* If we have row logging enabled for this table */ bool row_logging, row_logging_init; /* If the row logging should be done in transaction cache */ @@ -3292,8 +3286,6 @@ public: m_psi_batch_mode(PSI_BATCH_MODE_NONE), m_psi_numrows(0), m_psi_locker(NULL), - set_top_table_fields(FALSE), top_table(0), - top_table_field(0), top_table_fields(0), row_logging(0), row_logging_init(0), m_lock_type(F_UNLCK), ha_share(NULL), m_prev_insert_id(0) { @@ -4336,36 +4328,6 @@ public: virtual int info_push(uint info_type, void *info) { return 0; }; /** - This function is used to get correlating of a parent (table/column) - and children (table/column). When conditions are pushed down to child - table (like child of myisam_merge), child table needs to know about - which table/column is my parent for understanding conditions. - */ - virtual int set_top_table_and_fields(TABLE *top_table, - Field **top_table_field, - uint top_table_fields) - { - if (!set_top_table_fields) - { - set_top_table_fields= TRUE; - this->top_table= top_table; - this->top_table_field= top_table_field; - this->top_table_fields= top_table_fields; - } - return 0; - } - virtual void clear_top_table_fields() - { - if (set_top_table_fields) - { - set_top_table_fields= FALSE; - top_table= NULL; - top_table_field= NULL; - top_table_fields= 0; - } - } - - /** Push down an index condition to the handler. The server will use this method to push down a condition it wants diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 1567df7d537..090ced59f60 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1978,13 +1978,11 @@ retry_share: MYF(MY_WME)))) goto err_lock; - table_list->intention_table= table; error= open_table_from_share(thd, share, &table_list->alias, HA_OPEN_KEYFILE | HA_TRY_READ_ONLY, EXTRA_RECORD, thd->open_options, table, FALSE, - IF_PARTITIONING(table_list->partition_names,0), - table_list); + IF_PARTITIONING(table_list->partition_names,0)); if (unlikely(error)) { diff --git a/sql/table.cc b/sql/table.cc index ddf870f44d9..8c8145c431c 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -3868,8 +3868,7 @@ bool copy_keys_from_share(TABLE *outparam, MEM_ROOT *root) enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share, const LEX_CSTRING *alias, uint db_stat, uint prgflag, uint ha_open_flags, TABLE *outparam, - bool is_create_table, List<String> *partitions_to_open, - TABLE_LIST *table_list) + bool is_create_table, List<String> *partitions_to_open) { enum open_frm_error error; uint records, i, bitmap_size, bitmap_count; @@ -3891,7 +3890,6 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share, outparam->s= share; outparam->db_stat= db_stat; outparam->write_row_record= NULL; - outparam->intention_pos_in_table_list= table_list; if (share->incompatible_version && !(ha_open_flags & (HA_OPEN_FOR_ALTER | HA_OPEN_FOR_REPAIR))) diff --git a/sql/table.h b/sql/table.h index 18a5c776434..f2fad6c19b2 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1289,9 +1289,6 @@ public: /* Table's triggers, 0 if there are no of them */ Table_triggers_list *triggers; TABLE_LIST *pos_in_table_list;/* Element referring to this table */ - /* This is same as pos_in_table_list, but it is set as soon as possible when - TABLE is allocated */ - TABLE_LIST *intention_pos_in_table_list; /* Position in thd->locked_table_list under LOCK TABLES */ TABLE_LIST *pos_in_locked_tables; /* Tables used in DEFAULT and CHECK CONSTRAINT (normally sequence tables) */ @@ -2265,9 +2262,6 @@ struct TABLE_LIST /* Index names in a "... JOIN ... USE/IGNORE INDEX ..." clause. */ List<Index_hint> *index_hints; TABLE *table; /* opened table */ - /* This is same as table, but it is set as soon as possible when - TABLE is allocated */ - TABLE *intention_table; ulonglong table_id; /* table id (from binlog) for opened table */ /* select_result for derived table to pass it from table creation to table @@ -3113,8 +3107,7 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share, const LEX_CSTRING *alias, uint db_stat, uint prgflag, uint ha_open_flags, TABLE *outparam, bool is_create_table, - List<String> *partitions_to_open= NULL, - TABLE_LIST *table_list= NULL); + List<String> *partitions_to_open= NULL); bool copy_keys_from_share(TABLE *outparam, MEM_ROOT *root); bool fix_session_vcol_expr(THD *thd, Virtual_column_info *vcol); bool fix_session_vcol_expr_for_read(THD *thd, Field *field, diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index bbb7434825b..ce9447a61a9 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -424,15 +424,7 @@ int ha_spider::open( wide_handler->rnd_write_bitmap = rnd_write_bitmap; wide_handler->owner = owner; if (table_share->tmp_table == NO_TMP_TABLE) - { - TABLE_LIST *top = spider_get_parent_table_list(this); - if (top->intention_table) - { - wide_handler->top_share = top->intention_table->s; - } else { - wide_handler->top_share = top->table->s; - } - } + wide_handler->top_share = table->s; owner->wide_handler_owner = TRUE; memset(wide_handler->ft_discard_bitmap, 0xFF, no_bytes_in_map(table->read_set)); @@ -12059,80 +12051,6 @@ bool ha_spider::is_fatal_error( DBUG_RETURN(TRUE); } -int ha_spider::set_top_table_and_fields( - TABLE *top_table, - Field **top_table_field, - uint top_table_fields -) { - DBUG_ENTER("ha_spider::set_top_table_and_fields"); -#ifdef WITH_PARTITION_STORAGE_ENGINE - if ( - wide_handler->stage == SPD_HND_STAGE_SET_TOP_TABLE_AND_FIELDS && - wide_handler->stage_executor != this) - { - DBUG_RETURN(0); - } - wide_handler->stage = SPD_HND_STAGE_SET_TOP_TABLE_AND_FIELDS; - wide_handler->stage_executor = this; -#endif - if (!wide_handler->set_top_table_fields) - { - wide_handler->set_top_table_fields = TRUE; - wide_handler->top_table = top_table; - wide_handler->top_table_field = top_table_field; - wide_handler->top_table_fields = top_table_fields; - } - DBUG_RETURN(0); -} -void ha_spider::clear_top_table_fields() -{ - DBUG_ENTER("ha_spider::clear_top_table_fields"); -#ifdef WITH_PARTITION_STORAGE_ENGINE - if ( - wide_handler->stage == SPD_HND_STAGE_CLEAR_TOP_TABLE_FIELDS && - wide_handler->stage_executor != this) - { - DBUG_VOID_RETURN; - } - wide_handler->stage = SPD_HND_STAGE_CLEAR_TOP_TABLE_FIELDS; - wide_handler->stage_executor = this; -#endif - if (wide_handler->set_top_table_fields) - { - wide_handler->set_top_table_fields = FALSE; - wide_handler->top_table = NULL; - wide_handler->top_table_field = NULL; - wide_handler->top_table_fields = 0; - } - DBUG_VOID_RETURN; -} - -Field *ha_spider::get_top_table_field( - uint16 field_index -) { - Field *field; - DBUG_ENTER("ha_spider::get_top_table_field"); -#ifdef HA_CAN_BULK_ACCESS - if (is_bulk_access_clone) - { - DBUG_RETURN(pt_clone_source_handler->get_top_table_field(field_index)); - } -#endif - DBUG_PRINT("info",("spider field_index=%u", field_index)); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - if (wide_handler->set_top_table_fields) - { - field = wide_handler->top_table->field[field_index]; - } else { -#endif - field = table->field[field_index]; -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - } -#endif - DBUG_PRINT("info",("spider out field=%p", field)); - DBUG_RETURN(field); -} - Field *ha_spider::field_exchange( Field *field ) { @@ -12145,22 +12063,9 @@ Field *ha_spider::field_exchange( #endif DBUG_PRINT("info",("spider in field=%p", field)); DBUG_PRINT("info",("spider in field->table=%p", field->table)); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - if (wide_handler->set_top_table_fields) - { - DBUG_PRINT("info",("spider top_table=%p", wide_handler->top_table)); - if (field->table != wide_handler->top_table) - DBUG_RETURN(NULL); - if (!(field = wide_handler->top_table_field[field->field_index])) - DBUG_RETURN(NULL); - } else { -#endif - DBUG_PRINT("info",("spider table=%p", table)); - if (field->table != table) - DBUG_RETURN(NULL); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - } -#endif + DBUG_PRINT("info",("spider table=%p", table)); + if (field->table != table) + DBUG_RETURN(NULL); DBUG_PRINT("info",("spider out field=%p", field)); DBUG_RETURN(field); } @@ -12513,16 +12418,6 @@ TABLE *ha_spider::get_table() DBUG_RETURN(table); } -TABLE *ha_spider::get_top_table() -{ - DBUG_ENTER("ha_spider::get_top_table"); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - if (set_top_table_fields) - DBUG_RETURN(top_table); -#endif - DBUG_RETURN(table); -} - void ha_spider::set_ft_discard_bitmap() { DBUG_ENTER("ha_spider::set_ft_discard_bitmap"); diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 13bbacf0b0e..db184baf682 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -855,15 +855,6 @@ public: int error_num, uint flags ); - int set_top_table_and_fields( - TABLE *top_table, - Field **top_table_field, - uint top_table_fields - ); - void clear_top_table_fields(); - Field *get_top_table_field( - uint16 field_index - ); Field *field_exchange( Field *field ); @@ -879,7 +870,6 @@ public: void return_record_by_parent(); #endif TABLE *get_table(); - TABLE *get_top_table(); void set_ft_discard_bitmap(); void set_searched_bitmap(); void set_clone_searched_bitmap(); diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index 0fe1a45dd27..31c75b68d6e 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -726,8 +726,6 @@ typedef struct st_spider_wide_handler List<Item> *direct_update_fields; List<Item> *direct_update_values; #endif - TABLE *top_table; - Field **top_table_field; TABLE_SHARE *top_share; enum thr_lock_type lock_type; uchar lock_table_type; @@ -773,7 +771,6 @@ typedef struct st_spider_wide_handler bool write_can_replace; bool insert_with_update; bool cond_check; - bool set_top_table_fields; #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET) #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool hs_increment; diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 94b1ca543ad..1607dd07902 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -8743,28 +8743,9 @@ void spider_free_tmp_dbton_handler( TABLE_LIST *spider_get_parent_table_list( ha_spider *spider ) { - TABLE *table = spider->get_top_table(); - TABLE_LIST *current, *parent; + TABLE *table = spider->get_table(); DBUG_ENTER("spider_get_parent_table_list"); - DBUG_PRINT("info",("spider table=%p", table)); - if (table->pos_in_table_list) - { - current = table->pos_in_table_list; - } else { - current = table->intention_pos_in_table_list; - } -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - if (!spider->set_top_table_fields) - { -#endif - while ((parent = current->parent_l)) - { - current = parent; - } -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - } -#endif - DBUG_RETURN(current); + DBUG_RETURN(table->pos_in_table_list); } List<Index_hint> *spider_get_index_hints( @@ -9087,7 +9068,7 @@ bool spider_check_direct_order_limit( longlong select_limit; longlong offset_limit; DBUG_ENTER("spider_check_direct_order_limit"); - if (spider_check_index_merge(spider->get_top_table(), + if (spider_check_index_merge(spider->get_table(), spider_get_select_lex(spider))) { DBUG_PRINT("info",("spider set use_index_merge")); @@ -9343,22 +9324,9 @@ Field *spider_field_exchange( #endif DBUG_PRINT("info",("spider in field=%p", field)); DBUG_PRINT("info",("spider in field->table=%p", field->table)); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - if (handler->set_top_table_fields) - { - DBUG_PRINT("info",("spider top_table=%p", handler->top_table)); - if (field->table != handler->top_table) - DBUG_RETURN(NULL); - if (!(field = handler->top_table_field[field->field_index])) - DBUG_RETURN(NULL); - } else { -#endif DBUG_PRINT("info",("spider table=%p", handler->get_table())); if (field->table != handler->get_table()) DBUG_RETURN(NULL); -#ifdef HANDLER_HAS_TOP_TABLE_FIELDS - } -#endif DBUG_PRINT("info",("spider out field=%p", field)); DBUG_RETURN(field); } |