summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2020-06-07 20:39:31 +0200
committerSergei Golubchik <serg@mariadb.org>2020-06-09 14:32:43 +0200
commit89a33303c4ddcca4b3a6492a3327dd68c008c2a6 (patch)
tree618245604ca20bb46e194e1074e94af54f63411e
parent76cb2f9dd677d91df9ce135475a66db7048f7d8c (diff)
downloadmariadb-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.cc37
-rw-r--r--sql/ha_partition.h1
-rw-r--r--sql/handler.cc1
-rw-r--r--sql/handler.h38
-rw-r--r--sql/sql_base.cc4
-rw-r--r--sql/table.cc4
-rw-r--r--sql/table.h9
-rw-r--r--storage/spider/ha_spider.cc113
-rw-r--r--storage/spider/ha_spider.h10
-rw-r--r--storage/spider/spd_include.h3
-rw-r--r--storage/spider/spd_table.cc38
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);
}