From 024a18dbcb7f9c44094db03daa013fd8ba3c58b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 6 Sep 2024 14:29:09 +0300 Subject: [PATCH 01/25] MDEV-34823 Invalid arguments in ib_push_warning() In the bug report MDEV-32817 it occurred that the function row_mysql_get_table_status() is outputting a fil_space_t* as if it were a numeric tablespace identifier. ib_push_warning(): Remove. Let us invoke push_warning_printf() directly. innodb_decryption_failed(): Report a decryption failure and set the dict_table_t::file_unreadable flag. This code was being duplicated in very many places. We return the constant value DB_DECRYPTION_FAILED in order to avoid code duplication in the callers and to allow tail calls. innodb_fk_error(): Report a FOREIGN KEY error. dict_foreign_def_get(), dict_foreign_def_get_fields(): Remove. This code was being used in dict_create_add_foreign_to_dictionary() in an apparently uncovered code path. That ib_push_warning() call would pass the integer i+1 instead of a pointer to NUL terminated string ("%s"), and therefore the call should have resulted in a crash. dict_print_info_on_foreign_key_in_create_format(), innobase_quote_identifier(): Add const qualifiers. row_mysql_get_table_error(): Replaces row_mysql_get_table_status(). Display no message on DB_CORRUPTION; it should be properly reported at the SQL layer anyway. --- .../suite/innodb/r/innodb-fk-warnings.result | 2 +- storage/innobase/btr/btr0btr.cc | 11 +- storage/innobase/btr/btr0cur.cc | 53 ++----- storage/innobase/dict/dict0crea.cc | 145 +----------------- storage/innobase/dict/dict0dict.cc | 11 +- storage/innobase/handler/ha_innodb.cc | 96 +++++------- storage/innobase/include/dict0crea.h | 10 -- storage/innobase/include/dict0dict.h | 16 +- storage/innobase/include/ha_prototypes.h | 38 +++-- storage/innobase/row/row0ins.cc | 9 +- storage/innobase/row/row0merge.cc | 10 +- storage/innobase/row/row0mysql.cc | 61 +++----- storage/innobase/row/row0sel.cc | 9 +- 13 files changed, 108 insertions(+), 363 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb-fk-warnings.result b/mysql-test/suite/innodb/r/innodb-fk-warnings.result index c85dcf22c06..b58d21b0914 100644 --- a/mysql-test/suite/innodb/r/innodb-fk-warnings.result +++ b/mysql-test/suite/innodb/r/innodb-fk-warnings.result @@ -16,7 +16,7 @@ CONSTRAINT test FOREIGN KEY (b) REFERENCES t2 (id) ERROR HY000: Can't create table `test`.`t2` (errno: 121 "Duplicate key on write or update") show warnings; Level Code Message -Warning 121 Create or Alter table `test`.`t2` with foreign key constraint failed. Foreign key constraint `test`.`test` already exists on data dictionary. Foreign key constraint names need to be unique in database. Error in foreign key definition: CONSTRAINT `test` FOREIGN KEY (`b`) REFERENCES `test`.`t2` (`id`). +Warning 121 CREATE or ALTER TABLE `test`.`t2` failed: duplicate name, CONSTRAINT `test` FOREIGN KEY (`b`) REFERENCES `t2` (`id`) Error 1005 Can't create table `test`.`t2` (errno: 121 "Duplicate key on write or update") Warning 1022 Can't write; duplicate key in table 't2' drop table t1; diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index db57d31dd15..104b3511fd0 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -228,16 +228,7 @@ btr_root_block_get( mtr); if (!block) { - index->table->file_unreadable = true; - - ib_push_warning( - static_cast(NULL), DB_DECRYPTION_FAILED, - "Table %s in file %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name, - UT_LIST_GET_FIRST(index->table->space->chain)->name); - + innodb_decryption_failed(nullptr, index->table); return NULL; } diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index bfea89b1762..2cda73900f6 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -1617,13 +1617,7 @@ retry_page_get: if (err != DB_SUCCESS) { ut_ad(block == NULL); if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, index->table); } goto func_exit; @@ -1729,13 +1723,8 @@ retry_page_get: if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, + index->table); } goto func_exit; @@ -1759,13 +1748,8 @@ retry_page_get: if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, + index->table); } goto func_exit; @@ -2634,13 +2618,8 @@ btr_cur_open_at_index_side_func( if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, + index->table); } goto exit_loop; @@ -2976,13 +2955,8 @@ btr_cur_open_at_rnd_pos_func( if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, + index->table); } break; @@ -6136,13 +6110,8 @@ btr_estimate_n_rows_in_range_on_level( if (!block) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning((void *)NULL, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(nullptr, + index->table); } mtr_commit(&mtr); diff --git a/storage/innobase/dict/dict0crea.cc b/storage/innobase/dict/dict0crea.cc index f5c852bb8d0..e904c2e3e86 100644 --- a/storage/innobase/dict/dict0crea.cc +++ b/storage/innobase/dict/dict0crea.cc @@ -1726,104 +1726,6 @@ dict_create_add_foreign_field_to_dictionary( table_name, foreign->id, trx)); } -/********************************************************************//** -Construct foreign key constraint defintion from data dictionary information. -*/ -UNIV_INTERN -char* -dict_foreign_def_get( -/*=================*/ - dict_foreign_t* foreign,/*!< in: foreign */ - trx_t* trx) /*!< in: trx */ -{ - char* fk_def = (char *)mem_heap_alloc(foreign->heap, 4*1024); - const char* tbname; - char tablebuf[MAX_TABLE_NAME_LEN + 1] = ""; - unsigned i; - char* bufend; - - tbname = dict_remove_db_name(foreign->id); - bufend = innobase_convert_name(tablebuf, MAX_TABLE_NAME_LEN, - tbname, strlen(tbname), trx->mysql_thd); - tablebuf[bufend - tablebuf] = '\0'; - - sprintf(fk_def, - (char *)"CONSTRAINT %s FOREIGN KEY (", (char *)tablebuf); - - for(i = 0; i < foreign->n_fields; i++) { - char buf[MAX_TABLE_NAME_LEN + 1] = ""; - innobase_convert_name(buf, MAX_TABLE_NAME_LEN, - foreign->foreign_col_names[i], - strlen(foreign->foreign_col_names[i]), - trx->mysql_thd); - strcat(fk_def, buf); - if (i < static_cast(foreign->n_fields-1)) { - strcat(fk_def, (char *)","); - } - } - - strcat(fk_def,(char *)") REFERENCES "); - - bufend = innobase_convert_name(tablebuf, MAX_TABLE_NAME_LEN, - foreign->referenced_table_name, - strlen(foreign->referenced_table_name), - trx->mysql_thd); - tablebuf[bufend - tablebuf] = '\0'; - - strcat(fk_def, tablebuf); - strcat(fk_def, " ("); - - for(i = 0; i < foreign->n_fields; i++) { - char buf[MAX_TABLE_NAME_LEN + 1] = ""; - bufend = innobase_convert_name(buf, MAX_TABLE_NAME_LEN, - foreign->referenced_col_names[i], - strlen(foreign->referenced_col_names[i]), - trx->mysql_thd); - buf[bufend - buf] = '\0'; - strcat(fk_def, buf); - if (i < (uint)foreign->n_fields-1) { - strcat(fk_def, (char *)","); - } - } - strcat(fk_def, (char *)")"); - - return fk_def; -} - -/********************************************************************//** -Convert foreign key column names from data dictionary to SQL-layer. -*/ -static -void -dict_foreign_def_get_fields( -/*========================*/ - dict_foreign_t* foreign,/*!< in: foreign */ - trx_t* trx, /*!< in: trx */ - char** field, /*!< out: foreign column */ - char** field2, /*!< out: referenced column */ - ulint col_no) /*!< in: column number */ -{ - char* bufend; - char* fieldbuf = (char *)mem_heap_alloc(foreign->heap, MAX_TABLE_NAME_LEN+1); - char* fieldbuf2 = (char *)mem_heap_alloc(foreign->heap, MAX_TABLE_NAME_LEN+1); - - bufend = innobase_convert_name(fieldbuf, MAX_TABLE_NAME_LEN, - foreign->foreign_col_names[col_no], - strlen(foreign->foreign_col_names[col_no]), - trx->mysql_thd); - - fieldbuf[bufend - fieldbuf] = '\0'; - - bufend = innobase_convert_name(fieldbuf2, MAX_TABLE_NAME_LEN, - foreign->referenced_col_names[col_no], - strlen(foreign->referenced_col_names[col_no]), - trx->mysql_thd); - - fieldbuf2[bufend - fieldbuf2] = '\0'; - *field = fieldbuf; - *field2 = fieldbuf2; -} - /********************************************************************//** Add a foreign key definition to the data dictionary tables. @return error code or DB_SUCCESS */ @@ -1865,29 +1767,8 @@ dict_create_add_foreign_to_dictionary( , name, foreign->id, trx); if (error != DB_SUCCESS) { - - if (error == DB_DUPLICATE_KEY) { - char buf[MAX_TABLE_NAME_LEN + 1] = ""; - char tablename[MAX_TABLE_NAME_LEN + 1] = ""; - char* fk_def; - - innobase_convert_name(tablename, MAX_TABLE_NAME_LEN, - name, strlen(name), trx->mysql_thd); - - innobase_convert_name(buf, MAX_TABLE_NAME_LEN, - foreign->id, strlen(foreign->id), trx->mysql_thd); - - fk_def = dict_foreign_def_get((dict_foreign_t*)foreign, trx); - - ib_push_warning(trx, error, - "Create or Alter table %s with foreign key constraint" - " failed. Foreign key constraint %s" - " already exists on data dictionary." - " Foreign key constraint names need to be unique in database." - " Error in foreign key definition: %s.", - tablename, buf, fk_def); - } - +err_exit: + innodb_fk_error(trx, error, name, *foreign); DBUG_RETURN(error); } @@ -1896,27 +1777,7 @@ dict_create_add_foreign_to_dictionary( i, name, foreign, trx); if (error != DB_SUCCESS) { - char buf[MAX_TABLE_NAME_LEN + 1] = ""; - char tablename[MAX_TABLE_NAME_LEN + 1] = ""; - char* field=NULL; - char* field2=NULL; - char* fk_def; - - innobase_convert_name(tablename, MAX_TABLE_NAME_LEN, - name, strlen(name), trx->mysql_thd); - innobase_convert_name(buf, MAX_TABLE_NAME_LEN, - foreign->id, strlen(foreign->id), trx->mysql_thd); - fk_def = dict_foreign_def_get((dict_foreign_t*)foreign, trx); - dict_foreign_def_get_fields((dict_foreign_t*)foreign, trx, &field, &field2, i); - - ib_push_warning(trx, error, - "Create or Alter table %s with foreign key constraint" - " failed. Error adding foreign key constraint name %s" - " fields %s or %s to the dictionary." - " Error in foreign key definition: %s.", - tablename, buf, i+1, fk_def); - - DBUG_RETURN(error); + goto err_exit; } } diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index a4ddf35aba6..d44b017b32f 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -3949,15 +3949,10 @@ dict_index_calc_min_rec_len( return(sum); } -/**********************************************************************//** -Outputs info on a foreign key of a table in a format suitable for -CREATE TABLE. */ std::string -dict_print_info_on_foreign_key_in_create_format( -/*============================================*/ - trx_t* trx, /*!< in: transaction */ - dict_foreign_t* foreign, /*!< in: foreign key constraint */ - ibool add_newline) /*!< in: whether to add a newline */ +dict_print_info_on_foreign_key_in_create_format(const trx_t *trx, + const dict_foreign_t *foreign, + bool add_newline) { const char* stripped_id; ulint i; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index d249cb205f4..689cf76e1ce 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -2921,7 +2921,7 @@ innobase_invalidate_query_cache( void innobase_quote_identifier( FILE* file, - trx_t* trx, + const trx_t* trx, const char* id) { const int q = trx != NULL && trx->mysql_thd != NULL @@ -2951,7 +2951,7 @@ innobase_quote_identifier( std::string innobase_quote_identifier( /*======================*/ - trx_t* trx, + const trx_t* trx, const char* id) { std::string quoted_identifier; @@ -21447,66 +21447,46 @@ static void innodb_remember_check_sysvar_funcs() check_sysvar_int = MYSQL_SYSVAR_NAME(flush_log_at_timeout).check; } -static const size_t MAX_BUF_SIZE = 4 * 1024; - -/********************************************************************//** -Helper function to push warnings from InnoDB internals to SQL-layer. */ -UNIV_INTERN -void -ib_push_warning( - trx_t* trx, /*!< in: trx */ - dberr_t error, /*!< in: error code to push as warning */ - const char *format,/*!< in: warning message */ - ...) +/** Report that a table cannot be decrypted. +@param thd connection context +@param table table that cannot be decrypted +@retval DB_DECRYPTION_FAILED (always) */ +ATTRIBUTE_COLD +dberr_t innodb_decryption_failed(THD *thd, dict_table_t *table) { - if (trx && trx->mysql_thd) { - THD *thd = (THD *)trx->mysql_thd; - va_list args; - char *buf; - - va_start(args, format); - buf = (char *)my_malloc(PSI_INSTRUMENT_ME, MAX_BUF_SIZE, MYF(MY_WME)); - buf[MAX_BUF_SIZE - 1] = 0; - vsnprintf(buf, MAX_BUF_SIZE - 1, format, args); - - push_warning_printf( - thd, Sql_condition::WARN_LEVEL_WARN, - uint(convert_error_code_to_mysql(error, 0, thd)), buf); - my_free(buf); - va_end(args); - } + table->file_unreadable= true; + if (!thd) + thd= current_thd; + const int dblen= int(table->name.dblen()); + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + HA_ERR_DECRYPTION_FAILED, + "Table %`.*s.%`s in tablespace " UINT32PF + " (file %s) cannot be decrypted.", + dblen, table->name.m_name, + table->name.m_name + dblen + 1, + uint32_t(table->space_id), + UT_LIST_GET_FIRST(table->space->chain)->name); + return DB_DECRYPTION_FAILED; } -/********************************************************************//** -Helper function to push warnings from InnoDB internals to SQL-layer. */ -UNIV_INTERN -void -ib_push_warning( - void* ithd, /*!< in: thd */ - dberr_t error, /*!< in: error code to push as warning */ - const char *format,/*!< in: warning message */ - ...) +/** Report a foreign key error. +@param error error to report +@param name table name +@param foreign constraint */ +ATTRIBUTE_COLD +void innodb_fk_error(const trx_t *trx, dberr_t err, const char *name, + const dict_foreign_t& foreign) { - va_list args; - THD *thd = (THD *)ithd; - char *buf; - - if (ithd == NULL) { - thd = current_thd; - } - - if (thd) { - va_start(args, format); - buf = (char *)my_malloc(PSI_INSTRUMENT_ME, MAX_BUF_SIZE, MYF(MY_WME)); - buf[MAX_BUF_SIZE - 1] = 0; - vsnprintf(buf, MAX_BUF_SIZE - 1, format, args); - - push_warning_printf( - thd, Sql_condition::WARN_LEVEL_WARN, - uint(convert_error_code_to_mysql(error, 0, thd)), buf); - my_free(buf); - va_end(args); - } + const int dblen= int(table_name_t(const_cast(name)).dblen()); + std::string fk= dict_print_info_on_foreign_key_in_create_format + (trx, &foreign, false); + push_warning_printf(trx->mysql_thd, Sql_condition::WARN_LEVEL_WARN, + convert_error_code_to_mysql(err, 0, nullptr), + "CREATE or ALTER TABLE %`.*s.%`s failed%s%.*s", + dblen, name, name + dblen + 1, + err == DB_DUPLICATE_KEY + ? ": duplicate name" : "", + int(fk.length()), fk.data()); } /** Helper function to push warnings from InnoDB internals to SQL-layer. diff --git a/storage/innobase/include/dict0crea.h b/storage/innobase/include/dict0crea.h index 50f7f34a8e8..c82ab7d44db 100644 --- a/storage/innobase/include/dict0crea.h +++ b/storage/innobase/include/dict0crea.h @@ -209,16 +209,6 @@ dict_create_add_foreign_to_dictionary( trx_t* trx) /*!< in/out: dictionary transaction */ MY_ATTRIBUTE((nonnull, warn_unused_result)); -/********************************************************************//** -Construct foreign key constraint defintion from data dictionary information. -*/ -UNIV_INTERN -char* -dict_foreign_def_get( -/*=================*/ - dict_foreign_t* foreign,/*!< in: foreign */ - trx_t* trx); /*!< in: trx */ - /* Table create node structure */ struct tab_node_t{ que_common_t common; /*!< node type: QUE_NODE_TABLE_CREATE */ diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index 65b88a65185..6bfd774b941 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -577,15 +577,15 @@ dict_print_info_on_foreign_keys( trx_t* trx, /*!< in: transaction */ dict_table_t* table); /*!< in: table */ -/**********************************************************************//** -Outputs info on a foreign key of a table in a format suitable for -CREATE TABLE. */ +/** Output info on a foreign key of a table in a format suitable for +CREATE TABLE. +@param trx transaction +@param foreign constraint +@param add_newline whether to add a newline */ std::string -dict_print_info_on_foreign_key_in_create_format( -/*============================================*/ - trx_t* trx, /*!< in: transaction */ - dict_foreign_t* foreign, /*!< in: foreign key constraint */ - ibool add_newline); /*!< in: whether to add a newline */ +dict_print_info_on_foreign_key_in_create_format(const trx_t *trx, + const dict_foreign_t *foreign, + bool add_newline); /*********************************************************************//** Tries to find an index whose first fields are the columns in the array, diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index 04e1ec96b73..c86e5e01c5c 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -37,6 +37,9 @@ simple headers. /* Forward declarations */ class THD; class Field; +struct dict_table_t; +struct dict_foreign_t; +struct table_name_t; // JAN: TODO missing features: #undef MYSQL_FT_INIT_EXT @@ -83,7 +86,7 @@ innobase_invalidate_query_cache( void innobase_quote_identifier( FILE* file, - trx_t* trx, + const trx_t* trx, const char* id); /** Quote an standard SQL identifier like tablespace, index or column name. @@ -93,7 +96,7 @@ Return the string as an std:string object. @return a std::string with id properly quoted. */ std::string innobase_quote_identifier( - trx_t* trx, + const trx_t* trx, const char* id); /*****************************************************************//** @@ -456,25 +459,20 @@ innobase_convert_to_filename_charset( const char* from, /* in: identifier to convert */ ulint len); /* in: length of 'to', in bytes */ -/********************************************************************//** -Helper function to push warnings from InnoDB internals to SQL-layer. */ -UNIV_INTERN -void -ib_push_warning( - trx_t* trx, /*!< in: trx */ - dberr_t error, /*!< in: error code to push as warning */ - const char *format,/*!< in: warning message */ - ...); +/** Report that a table cannot be decrypted. +@param thd connection context +@param table table that cannot be decrypted +@retval DB_DECRYPTION_FAILED (always) */ +ATTRIBUTE_COLD +dberr_t innodb_decryption_failed(THD *thd, dict_table_t *table); -/********************************************************************//** -Helper function to push warnings from InnoDB internals to SQL-layer. */ -UNIV_INTERN -void -ib_push_warning( - void* ithd, /*!< in: thd */ - dberr_t error, /*!< in: error code to push as warning */ - const char *format,/*!< in: warning message */ - ...); +/** Report a foreign key error. +@param error error to report +@param name table name +@param foreign constraint */ +ATTRIBUTE_COLD +void innodb_fk_error(const trx_t *trx, dberr_t err, const char *name, + const dict_foreign_t& foreign); /********************************************************************//** Helper function to push warnings from InnoDB internals to SQL-layer. */ diff --git a/storage/innobase/row/row0ins.cc b/storage/innobase/row/row0ins.cc index 2fdd259e932..350a002f83f 100644 --- a/storage/innobase/row/row0ins.cc +++ b/storage/innobase/row/row0ins.cc @@ -3043,13 +3043,8 @@ row_ins_sec_index_entry_low( if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning(thr_get_trx(thr)->mysql_thd, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - index->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(thr_get_trx(thr)->mysql_thd, + index->table); } goto func_exit; } diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index defeb39d2f4..9a44bb7d314 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -4473,13 +4473,9 @@ row_merge_build_indexes( /* Do not continue if we can't encrypt table pages */ if (!old_table->is_readable() || !new_table->is_readable()) { - error = DB_DECRYPTION_FAILED; - ib_push_warning(trx->mysql_thd, DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - !old_table->is_readable() ? old_table->name.m_name : - new_table->name.m_name); + error = innodb_decryption_failed(trx->mysql_thd, + !old_table->is_readable() + ? old_table : new_table); goto func_exit; } diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index ba11bea75c4..4e7cd6b0b37 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -68,7 +68,7 @@ Created 9/17/2000 Heikki Tuuri #include #include #include - +#include "log.h" /** Provide optional 4.x backwards compatibility for 5.0 and above */ ibool row_rollback_on_timeout = FALSE; @@ -1257,51 +1257,26 @@ run_again: return(err); } -/** Determine is tablespace encrypted but decryption failed, is table corrupted -or is tablespace .ibd file missing. -@param[in] table Table -@param[in] trx Transaction -@param[in] push_warning true if we should push warning to user +/** Report an error for a failure to access a table. +@param table unreadable table +@param trx transaction @retval DB_DECRYPTION_FAILED table is encrypted but decryption failed @retval DB_CORRUPTION table is corrupted @retval DB_TABLESPACE_NOT_FOUND tablespace .ibd file not found */ -static -dberr_t -row_mysql_get_table_status( - const dict_table_t* table, - trx_t* trx, - bool push_warning = true) +ATTRIBUTE_COLD +static dberr_t row_mysql_get_table_error(trx_t *trx, dict_table_t *table) { - dberr_t err; - if (const fil_space_t* space = table->space) { - if (space->crypt_data && space->crypt_data->is_encrypted()) { - // maybe we cannot access the table due to failing - // to decrypt - if (push_warning) { - ib_push_warning(trx, DB_DECRYPTION_FAILED, - "Table %s in tablespace %lu encrypted." - "However key management plugin or used key_id is not found or" - " used encryption algorithm or method does not match.", - table->name.m_name, table->space); - } + if (const fil_space_t *space= table->space) + { + if (space->crypt_data && space->crypt_data->is_encrypted()) + return innodb_decryption_failed(trx->mysql_thd, table); + return DB_CORRUPTION; + } - err = DB_DECRYPTION_FAILED; - } else { - if (push_warning) { - ib_push_warning(trx, DB_CORRUPTION, - "Table %s in tablespace %lu corrupted.", - table->name.m_name, table->space); - } - - err = DB_CORRUPTION; - } - } else { - ib::error() << ".ibd file is missing for table " - << table->name; - err = DB_TABLESPACE_NOT_FOUND; - } - - return(err); + const int dblen= int(table->name.dblen()); + sql_print_error("InnoDB .ibd file is missing for table %`.*s.%`s", + dblen, table->name.m_name, table->name.m_name + dblen + 1); + return DB_TABLESPACE_NOT_FOUND; } /** Does an insert for MySQL. @@ -1339,7 +1314,7 @@ row_insert_for_mysql( return(DB_TABLESPACE_DELETED); } else if (!prebuilt->table->is_readable()) { - return(row_mysql_get_table_status(prebuilt->table, trx, true)); + return row_mysql_get_table_error(trx, prebuilt->table); } else if (high_level_read_only) { return(DB_READ_ONLY); } @@ -1726,7 +1701,7 @@ row_update_for_mysql(row_prebuilt_t* prebuilt) ut_ad(table->stat_initialized); if (!table->is_readable()) { - return(row_mysql_get_table_status(table, trx, true)); + return row_mysql_get_table_error(trx, table); } if (high_level_read_only) { diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index 2a34685e7cc..d1ccedcbeca 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -4753,13 +4753,8 @@ wait_table_again: if (err != DB_SUCCESS) { if (err == DB_DECRYPTION_FAILED) { - ib_push_warning(trx->mysql_thd, - DB_DECRYPTION_FAILED, - "Table %s is encrypted but encryption service or" - " used key_id is not available. " - " Can't continue reading table.", - prebuilt->table->name.m_name); - index->table->file_unreadable = true; + innodb_decryption_failed(trx->mysql_thd, + index->table); } rec = NULL; goto page_read_error; From f06060f5ed3f293763e034c011da6c6cf42ae3d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 6 Sep 2024 14:31:55 +0300 Subject: [PATCH 02/25] Cleanup: Remove the function dict_remove_db_name() --- storage/innobase/dict/dict0dict.cc | 15 --------------- storage/innobase/include/dict0dict.h | 12 +++--------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index d44b017b32f..1df848d259c 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -185,21 +185,6 @@ dict_tables_have_same_db( return(FALSE); } -/********************************************************************//** -Return the end of table name where we have removed dbname and '/'. -@return table name */ -const char* -dict_remove_db_name( -/*================*/ - const char* name) /*!< in: table name in the form - dbname '/' tablename */ -{ - const char* s = strchr(name, '/'); - ut_a(s); - - return(s + 1); -} - /** Open a persistent table. @param[in] table_id persistent table identifier @param[in] ignore_err errors to ignore diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index 6bfd774b941..412c41d2188 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -101,15 +101,9 @@ dict_table_is_partition(const dict_table_t* table) return (strstr(table->name.m_name, "#p#") || strstr(table->name.m_name, "#P#")); } -/********************************************************************//** -Return the end of table name where we have removed dbname and '/'. -@return table name */ -const char* -dict_remove_db_name( -/*================*/ - const char* name) /*!< in: table name in the form - dbname '/' tablename */ - MY_ATTRIBUTE((nonnull, warn_unused_result)); + +#define dict_remove_db_name(name) \ + (table_name_t{const_cast(name)}.dbend() + 1) /** Operation to perform when opening a table */ enum dict_table_op_t { From 05fafaf82d29310302de2072eddd54520b4665b5 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:22:59 +0800 Subject: [PATCH 03/25] MDEV-27646 remove SPIDER_HAS_HASH_VALUE_TYPE unifdef -DSPIDER_HAS_HASH_VALUE_TYPE -m storage/spider/spd_* storage/spider/ha_spider.* storage/spider/hs_client/* --- storage/spider/ha_spider.cc | 43 ----------------- storage/spider/spd_conn.cc | 55 --------------------- storage/spider/spd_conn.h | 2 - storage/spider/spd_db_conn.cc | 2 - storage/spider/spd_db_mysql.cc | 15 ------ storage/spider/spd_db_mysql.h | 2 - storage/spider/spd_db_oracle.cc | 15 ------ storage/spider/spd_db_oracle.h | 2 - storage/spider/spd_direct_sql.cc | 19 -------- storage/spider/spd_include.h | 26 ---------- storage/spider/spd_ping_table.cc | 22 --------- storage/spider/spd_table.cc | 82 -------------------------------- storage/spider/spd_table.h | 12 ----- storage/spider/spd_trx.cc | 16 ------- 14 files changed, 313 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index afa3732c577..fa6568a9f65 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -49,9 +49,7 @@ extern handlerton *spider_hton_ptr; extern SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE]; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE extern HASH spider_open_tables; -#endif extern pthread_mutex_t spider_lgtm_tblhnd_share_mutex; /* UTC time zone for timestamp columns */ @@ -10705,16 +10703,11 @@ int ha_spider::create( memset((void*)&tmp_share, 0, sizeof(SPIDER_SHARE)); tmp_share.table_name = (char*) name; tmp_share.table_name_length = strlen(name); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE tmp_share.table_name_hash_value = my_calc_hash(&trx->trx_alter_table_hash, (uchar*) tmp_share.table_name, tmp_share.table_name_length); tmp_share.lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( name, tmp_share.table_name_length, tmp_share.table_name_hash_value, FALSE, TRUE, &error_num); -#else - tmp_share.lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( - name, tmp_share.table_name_length, FALSE, TRUE, &error_num); -#endif if (!tmp_share.lgtm_tblhnd_share) { goto error; @@ -10787,16 +10780,10 @@ int ha_spider::create( spider_free_trx_alter_table(trx); trx->query_id = thd->query_id; } -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(alter_table = (SPIDER_ALTER_TABLE*) my_hash_search_using_hash_value( &trx->trx_alter_table_hash, tmp_share.table_name_hash_value, (uchar*) tmp_share.table_name, tmp_share.table_name_length))) -#else - if (!(alter_table = - (SPIDER_ALTER_TABLE*) my_hash_search(&trx->trx_alter_table_hash, - (uchar*) tmp_share.table_name, tmp_share.table_name_length))) -#endif { if ((error_num = spider_create_trx_alter_table(trx, &tmp_share, TRUE))) goto error; @@ -10921,12 +10908,10 @@ int ha_spider::rename_table( ) { int error_num, roop_count, old_link_count, from_len = strlen(from), to_len = strlen(to), tmp_error_num; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type from_hash_value = my_calc_hash(&spider_open_tables, (uchar*) from, from_len); my_hash_value_type to_hash_value = my_calc_hash(&spider_open_tables, (uchar*) to, to_len); -#endif THD *thd = ha_thd(); uint sql_command = thd_sql_command(thd); SPIDER_TRX *trx; @@ -11094,22 +11079,12 @@ int ha_spider::rename_table( } pthread_mutex_lock(&spider_lgtm_tblhnd_share_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE from_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( from, from_len, from_hash_value, TRUE, FALSE, &error_num); -#else - from_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( - from, from_len, TRUE, FALSE, &error_num); -#endif if (from_lgtm_tblhnd_share) { -#ifdef SPIDER_HAS_HASH_VALUE_TYPE to_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( to, to_len, to_hash_value, TRUE, TRUE, &error_num); -#else - to_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( - to, to_len, TRUE, TRUE, &error_num); -#endif if (!to_lgtm_tblhnd_share) { pthread_mutex_unlock(&spider_lgtm_tblhnd_share_mutex); @@ -11135,13 +11110,8 @@ error: spider_close_sys_table(current_thd, table_tables, &open_tables_backup, need_lock); pthread_mutex_lock(&spider_lgtm_tblhnd_share_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE to_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( to, to_len, to_hash_value, TRUE, FALSE, &tmp_error_num); -#else - to_lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( - to, to_len, TRUE, FALSE, &tmp_error_num); -#endif if (to_lgtm_tblhnd_share) spider_free_lgtm_tblhnd_share_alloc(to_lgtm_tblhnd_share, TRUE); pthread_mutex_unlock(&spider_lgtm_tblhnd_share_mutex); @@ -11189,22 +11159,14 @@ int ha_spider::delete_table( { SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share; int roop_count, old_link_count = 0, name_len = strlen(name); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&spider_open_tables, (uchar*) name, name_len); -#endif if ( sql_command == SQLCOM_ALTER_TABLE && -#ifdef SPIDER_HAS_HASH_VALUE_TYPE (alter_table = (SPIDER_ALTER_TABLE*) my_hash_search_using_hash_value( &trx->trx_alter_table_hash, hash_value, (uchar*) name, name_len)) && -#else - (alter_table = - (SPIDER_ALTER_TABLE*) my_hash_search(&trx->trx_alter_table_hash, - (uchar*) name, name_len)) && -#endif alter_table->now_create ) DBUG_RETURN(0); @@ -11255,13 +11217,8 @@ int ha_spider::delete_table( } pthread_mutex_lock(&spider_lgtm_tblhnd_share_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( name, name_len, hash_value, TRUE, FALSE, &error_num); -#else - lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share( - name, name_len, TRUE, FALSE, &error_num); -#endif if (lgtm_tblhnd_share) spider_free_lgtm_tblhnd_share_alloc(lgtm_tblhnd_share, TRUE); pthread_mutex_unlock(&spider_lgtm_tblhnd_share_mutex); diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 5549b30caa4..5912a2336d0 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -484,9 +484,7 @@ SPIDER_CONN *spider_create_conn( conn->conn_key = tmp_name; memcpy(conn->conn_key, share->conn_keys[link_idx], share->conn_keys_lengths[link_idx]); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE conn->conn_key_hash_value = share->conn_keys_hash_value[link_idx]; -#endif spider_memcpy_or_null(&conn->tgt_host, tmp_host, share->tgt_hosts[link_idx], &conn->tgt_host_length, share->tgt_hosts_lengths[link_idx]); @@ -599,14 +597,9 @@ SPIDER_CONN *spider_create_conn( pthread_mutex_unlock(&spider_conn_id_mutex); pthread_mutex_lock(&spider_ipport_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search_using_hash_value( &spider_ipport_conns, conn->conn_key_hash_value, (uchar*)conn->conn_key, conn->conn_key_length))) -#else - if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search( - &spider_ipport_conns, (uchar*)conn->conn_key, conn->conn_key_length))) -#endif { /* exists, +1 */ pthread_mutex_unlock(&spider_ipport_conn_mutex); pthread_mutex_lock(&ip_port_conn->mutex); @@ -679,7 +672,6 @@ SPIDER_CONN *spider_get_conn( #ifdef DBUG_TRACE spider_print_keys(conn_key, share->conn_keys_lengths[link_idx]); #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ( (another && !(conn = (SPIDER_CONN*) my_hash_search_using_hash_value( @@ -692,16 +684,6 @@ SPIDER_CONN *spider_get_conn( share->conn_keys_hash_value[link_idx], (uchar*) conn_key, share->conn_keys_lengths[link_idx]))) ) -#else - if ( - (another && - !(conn = (SPIDER_CONN*) my_hash_search(&trx->trx_another_conn_hash, - (uchar*) conn_key, share->conn_keys_lengths[link_idx]))) || - (!another && - !(conn = (SPIDER_CONN*) my_hash_search(&trx->trx_conn_hash, - (uchar*) conn_key, share->conn_keys_lengths[link_idx]))) - ) -#endif { if ( !trx->thd || @@ -711,16 +693,10 @@ SPIDER_CONN *spider_get_conn( ) ) { pthread_mutex_lock(&spider_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(conn = (SPIDER_CONN*) my_hash_search_using_hash_value( &spider_open_connections, share->conn_keys_hash_value[link_idx], (uchar*) share->conn_keys[link_idx], share->conn_keys_lengths[link_idx]))) -#else - if (!(conn = (SPIDER_CONN*) my_hash_search(&spider_open_connections, - (uchar*) share->conn_keys[link_idx], - share->conn_keys_lengths[link_idx]))) -#endif { pthread_mutex_unlock(&spider_conn_mutex); if (spider_param_max_connections()) @@ -1140,16 +1116,10 @@ int spider_conn_queue_and_merge_loop_check( SPIDER_CONN_LOOP_CHECK *lcqptr, *lcrptr; DBUG_ENTER("spider_conn_queue_and_merge_loop_check"); DBUG_PRINT("info", ("spider conn=%p", conn)); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(lcqptr = (SPIDER_CONN_LOOP_CHECK *) my_hash_search_using_hash_value(&conn->loop_check_queue, lcptr->hash_value_to, (uchar *) lcptr->to_name.str, lcptr->to_name.length))) -#else - if (unlikely(!(lcqptr = (SPIDER_CONN_LOOP_CHECK *) my_hash_search( - &conn->loop_check_queue, - (uchar *) lcptr->to_name.str, lcptr->to_name.length)))) -#endif { /* Construct the right hand side: @@ -1196,9 +1166,7 @@ int spider_conn_queue_and_merge_loop_check( TODO: the new lcrptr has the same cur_name, to_name, full_name and from_value as lcqptr, but they do not seem to be relevant. */ -#ifdef SPIDER_HAS_HASH_VALUE_TYPE lcrptr->hash_value_to = lcqptr->hash_value_to; -#endif lcrptr->cur_name.str = cur_name; lcrptr->cur_name.length = lcqptr->cur_name.length; memcpy(cur_name, lcqptr->cur_name.str, lcqptr->cur_name.length + 1); @@ -1439,19 +1407,12 @@ int spider_conn_queue_loop_check( memcpy(tmp_name, to_str.str, to_str.length); tmp_name += to_str.length; *tmp_name = '\0'; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&conn->loop_checked, (uchar *) loop_check_buf, buf_sz - 1); -#endif pthread_mutex_lock(&conn->loop_check_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE lcptr = (SPIDER_CONN_LOOP_CHECK *) my_hash_search_using_hash_value(&conn->loop_checked, hash_value, (uchar *) loop_check_buf, buf_sz - 1); -#else - lcptr = (SPIDER_CONN_LOOP_CHECK *) my_hash_search( - &conn->loop_checked, (uchar *) loop_check_buf, buf_sz - 1); -#endif if ( !lcptr || ( @@ -1506,10 +1467,8 @@ int spider_conn_queue_loop_check( spider_conn_queue_and_merge_loop_check() */ lcptr->merged_value.str = merged_value; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE lcptr->hash_value_to = my_calc_hash(&conn->loop_check_queue, (uchar *) to_str.str, to_str.length); -#endif /* Mark as checked. It will be added to loop_check_queue in spider_conn_queue_and_merge_loop_check() below for checking @@ -4240,15 +4199,9 @@ SPIDER_CONN* spider_get_conn_from_idle_connection( set_timespec(abstime, 0); pthread_mutex_lock(&spider_ipport_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search_using_hash_value( &spider_ipport_conns, share->conn_keys_hash_value[link_idx], (uchar*) share->conn_keys[link_idx], share->conn_keys_lengths[link_idx]))) -#else - if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search( - &spider_ipport_conns, - (uchar*) share->conn_keys[link_idx], share->conn_keys_lengths[link_idx]))) -#endif { /* exists */ pthread_mutex_unlock(&spider_ipport_conn_mutex); pthread_mutex_lock(&ip_port_conn->mutex); @@ -4287,16 +4240,10 @@ SPIDER_CONN* spider_get_conn_from_idle_connection( } pthread_mutex_lock(&spider_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((conn = (SPIDER_CONN*) my_hash_search_using_hash_value( &spider_open_connections, share->conn_keys_hash_value[link_idx], (uchar*) share->conn_keys[link_idx], share->conn_keys_lengths[link_idx]))) -#else - if ((conn = (SPIDER_CONN*) my_hash_search(&spider_open_connections, - (uchar*) share->conn_keys[link_idx], - share->conn_keys_lengths[link_idx]))) -#endif { /* get conn from spider_open_connections, then delete conn in spider_open_connections */ #ifdef HASH_UPDATE_WITH_HASH_VALUE @@ -4389,9 +4336,7 @@ SPIDER_IP_PORT_CONN* spider_create_ipport_conn(SPIDER_CONN *conn) ret->conn_id = conn->conn_id; ret->ip_port_count = 1; // init -#ifdef SPIDER_HAS_HASH_VALUE_TYPE ret->key_hash_value = conn->conn_key_hash_value; -#endif DBUG_RETURN(ret); err_malloc_key: spider_my_free(ret, MYF(0)); diff --git a/storage/spider/spd_conn.h b/storage/spider/spd_conn.h index c9eeb9d66d4..ef0c304c89f 100644 --- a/storage/spider/spd_conn.h +++ b/storage/spider/spd_conn.h @@ -50,10 +50,8 @@ typedef struct st_spider_conn_loop_check SPIDER_LOP_CHK_IGNORED */ uint flag; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE /* hash value of to_name, used for the hash conn->loop_checked */ my_hash_value_type hash_value_to; -#endif /* The fully qualified name of the current spider table, which will also be used to construct the user var name to set in the data diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index 401774ed508..7ecd356873b 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -60,9 +60,7 @@ extern SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE]; #define SPIDER_SQL_PING_TABLE_STR "spider_ping_table(" #define SPIDER_SQL_PING_TABLE_LEN (sizeof(SPIDER_SQL_PING_TABLE_STR) - 1) -#ifdef SPIDER_HAS_HASH_VALUE_TYPE extern HASH spider_open_connections; -#endif pthread_mutex_t spider_open_conn_mutex; const char spider_dig_upper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 04f4bfd22ee..c41379e26d5 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -7139,9 +7139,7 @@ spider_mbase_share::spider_mbase_share( table_names_str(NULL), db_names_str(NULL), db_table_str(NULL), -#ifdef SPIDER_HAS_HASH_VALUE_TYPE db_table_str_hash_value(NULL), -#endif table_nm_max_length(0), db_nm_max_length(0), column_name_str(NULL), @@ -7228,10 +7226,8 @@ int spider_mbase_share::init() __func__, __FILE__, __LINE__, MYF(MY_WME | MY_ZEROFILL), &key_select_pos, sizeof(int) * keys, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE &db_table_str_hash_value, sizeof(my_hash_value_type) * spider_share->all_link_count, -#endif NullS)) ) { DBUG_RETURN(HA_ERR_OUT_OF_MEM); @@ -7511,10 +7507,8 @@ int spider_mbase_share::create_table_names_str() if ((error_num = append_table_name(str, roop_count))) goto error; } -#ifdef SPIDER_HAS_HASH_VALUE_TYPE db_table_str_hash_value[roop_count] = my_calc_hash( &spider_open_connections, (uchar*) str->ptr(), str->length()); -#endif } DBUG_RETURN(0); @@ -8358,10 +8352,8 @@ int spider_mbase_handler::init() link_for_hash[roop_count].link_idx = roop_count; link_for_hash[roop_count].db_table_str = &mysql_share->db_table_str[roop_count]; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE link_for_hash[roop_count].db_table_str_hash_value = mysql_share->db_table_str_hash_value[roop_count]; -#endif } DBUG_RETURN(0); } @@ -13153,7 +13145,6 @@ int spider_mbase_handler::append_lock_tables_list( &mysql_share->db_table_str[conn_link_idx]; DBUG_PRINT("info",("spider db_table_str=%s", tmp_link_for_hash2->db_table_str->c_ptr_safe())); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE tmp_link_for_hash2->db_table_str_hash_value = mysql_share->db_table_str_hash_value[conn_link_idx]; if (!(tmp_link_for_hash = (SPIDER_LINK_FOR_HASH *) @@ -13162,12 +13153,6 @@ int spider_mbase_handler::append_lock_tables_list( tmp_link_for_hash2->db_table_str_hash_value, (uchar*) tmp_link_for_hash2->db_table_str->ptr(), tmp_link_for_hash2->db_table_str->length()))) -#else - if (!(tmp_link_for_hash = (SPIDER_LINK_FOR_HASH *) my_hash_search( - &db_conn->lock_table_hash, - (uchar*) tmp_link_for_hash2->db_table_str->ptr(), - tmp_link_for_hash2->db_table_str->length()))) -#endif { if ((error_num = insert_lock_tables_list(conn, link_idx))) DBUG_RETURN(error_num); diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index 0a133267e0e..9d86b837b32 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -622,9 +622,7 @@ public: spider_string *db_names_str; /* fixme: this field looks useless */ spider_string *db_table_str; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type *db_table_str_hash_value; -#endif uint table_nm_max_length; uint db_nm_max_length; spider_string *column_name_str; diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index 362a77536ae..82216714a25 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -4475,9 +4475,7 @@ spider_oracle_share::spider_oracle_share( db_names_str(NULL), db_table_str(NULL), nextval_str(NULL), -#ifdef SPIDER_HAS_HASH_VALUE_TYPE db_table_str_hash_value(NULL), -#endif table_nm_max_length(0), db_nm_max_length(0), nextval_max_length(0), @@ -4530,10 +4528,8 @@ int spider_oracle_share::init() __func__, __FILE__, __LINE__, MYF(MY_WME | MY_ZEROFILL), &key_select_pos, sizeof(int) * keys, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE &db_table_str_hash_value, sizeof(my_hash_value_type) * spider_share->all_link_count, -#endif NullS)) ) { DBUG_RETURN(HA_ERR_OUT_OF_MEM); @@ -4811,10 +4807,8 @@ int spider_oracle_share::create_table_names_str() if ((error_num = append_table_name(str, roop_count))) goto error; } -#ifdef SPIDER_HAS_HASH_VALUE_TYPE db_table_str_hash_value[roop_count] = my_calc_hash( &spider_open_connections, (uchar*) str->ptr(), str->length()); -#endif } DBUG_RETURN(0); @@ -5498,10 +5492,8 @@ int spider_oracle_handler::init() link_for_hash[roop_count].link_idx = roop_count; link_for_hash[roop_count].db_table_str = &oracle_share->db_table_str[roop_count]; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE link_for_hash[roop_count].db_table_str_hash_value = oracle_share->db_table_str_hash_value[roop_count]; -#endif } DBUG_RETURN(0); } @@ -10357,7 +10349,6 @@ int spider_oracle_handler::append_lock_tables_list( tmp_link_for_hash2 = &link_for_hash[link_idx]; tmp_link_for_hash2->db_table_str = &oracle_share->db_table_str[conn_link_idx]; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE tmp_link_for_hash2->db_table_str_hash_value = oracle_share->db_table_str_hash_value[conn_link_idx]; if (!(tmp_link_for_hash = (SPIDER_LINK_FOR_HASH *) @@ -10366,12 +10357,6 @@ int spider_oracle_handler::append_lock_tables_list( tmp_link_for_hash2->db_table_str_hash_value, (uchar*) tmp_link_for_hash2->db_table_str->ptr(), tmp_link_for_hash2->db_table_str->length()))) -#else - if (!(tmp_link_for_hash = (SPIDER_LINK_FOR_HASH *) my_hash_search( - &db_conn->lock_table_hash, - (uchar*) tmp_link_for_hash2->db_table_str->ptr(), - tmp_link_for_hash2->db_table_str->length()))) -#endif { if ((error_num = insert_lock_tables_list(conn, link_idx))) DBUG_RETURN(error_num); diff --git a/storage/spider/spd_db_oracle.h b/storage/spider/spd_db_oracle.h index 357fee35c67..f9eff649692 100644 --- a/storage/spider/spd_db_oracle.h +++ b/storage/spider/spd_db_oracle.h @@ -523,9 +523,7 @@ public: spider_string *db_names_str; spider_string *db_table_str; spider_string *nextval_str; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type *db_table_str_hash_value; -#endif uint table_nm_max_length; uint db_nm_max_length; uint nextval_max_length; diff --git a/storage/spider/spd_direct_sql.cc b/storage/spider/spd_direct_sql.cc index 0a242787e8f..49a6edc6d26 100644 --- a/storage/spider/spd_direct_sql.cc +++ b/storage/spider/spd_direct_sql.cc @@ -275,10 +275,8 @@ int spider_udf_direct_sql_create_conn_key( spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_default_group); spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_dsn); tmp_name++; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE direct_sql->conn_key_hash_value = my_calc_hash(&spider_open_connections, (uchar*) direct_sql->conn_key, direct_sql->conn_key_length); -#endif DBUG_RETURN(0); } @@ -443,14 +441,9 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn( pthread_mutex_unlock(&spider_conn_id_mutex); pthread_mutex_lock(&spider_ipport_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search_using_hash_value( &spider_ipport_conns, conn->conn_key_hash_value, (uchar*)conn->conn_key, conn->conn_key_length))) -#else - if ((ip_port_conn = (SPIDER_IP_PORT_CONN*) my_hash_search( - &spider_ipport_conns, (uchar*)conn->conn_key, conn->conn_key_length))) -#endif { /* exists, +1 */ pthread_mutex_unlock(&spider_ipport_conn_mutex); pthread_mutex_lock(&ip_port_conn->mutex); @@ -507,18 +500,11 @@ SPIDER_CONN *spider_udf_direct_sql_get_conn( SPIDER_CONN *conn = NULL; DBUG_ENTER("spider_udf_direct_sql_get_conn"); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ( !(conn = (SPIDER_CONN*) my_hash_search_using_hash_value( &trx->trx_conn_hash, direct_sql->conn_key_hash_value, (uchar*) direct_sql->conn_key, direct_sql->conn_key_length)) ) -#else - if ( - !(conn = (SPIDER_CONN*) my_hash_search(&trx->trx_conn_hash, - (uchar*) direct_sql->conn_key, direct_sql->conn_key_length)) - ) -#endif { if ( ( @@ -527,14 +513,9 @@ SPIDER_CONN *spider_udf_direct_sql_get_conn( ) ) { pthread_mutex_lock(&spider_conn_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(conn = (SPIDER_CONN*) my_hash_search_using_hash_value( &spider_open_connections, direct_sql->conn_key_hash_value, (uchar*) direct_sql->conn_key, direct_sql->conn_key_length))) -#else - if (!(conn = (SPIDER_CONN*) my_hash_search(&spider_open_connections, - (uchar*) direct_sql->conn_key, direct_sql->conn_key_length))) -#endif { pthread_mutex_unlock(&spider_conn_mutex); DBUG_PRINT("info",("spider create new conn")); diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index 1d190ec2348..9190692223e 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -128,8 +128,6 @@ #define SPIDER_item_name_length(A) (A)->name.length const LEX_CSTRING SPIDER_empty_string = {"", 0}; -#define SPIDER_HAS_HASH_VALUE_TYPE - #define SPIDER_date_mode_t(A) date_mode_t(A) #define SPIDER_str_to_datetime(A,B,C,D,E) str_to_datetime_or_date(A,B,C,D,E) #define SPIDER_get_linkage(A) A->get_linkage() @@ -498,9 +496,7 @@ typedef struct st_spider_link_for_hash ha_spider *spider; int link_idx; spider_string *db_table_str; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type db_table_str_hash_value; -#endif } SPIDER_LINK_FOR_HASH; /* alter table */ @@ -510,9 +506,7 @@ typedef struct st_spider_alter_table char *table_name; uint table_name_length; char *tmp_char; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type table_name_hash_value; -#endif longlong tmp_priority; uint link_count; uint all_link_count; @@ -606,9 +600,7 @@ typedef struct st_spider_conn uint conn_kind; char *conn_key; uint conn_key_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type conn_key_hash_value; -#endif int link_idx; spider_db_conn *db_conn; uint opened_handlers; @@ -817,9 +809,7 @@ typedef struct st_spider_lgtm_tblhnd_share { char *table_name; uint table_name_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type table_path_hash_value; -#endif pthread_mutex_t auto_increment_mutex; volatile bool auto_increment_init; volatile ulonglong auto_increment_lclval; @@ -842,9 +832,7 @@ typedef struct st_spider_wide_share { char *table_name; uint table_name_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type table_path_hash_value; -#endif uint use_count; THR_LOCK lock; pthread_mutex_t sts_mutex; @@ -951,9 +939,7 @@ typedef struct st_spider_transaction bool updated_in_this_trx; THD *thd; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type thd_hash_value; -#endif XID xid; HASH trx_conn_hash; uint trx_conn_hash_id; @@ -1048,11 +1034,9 @@ typedef struct st_spider_share pthread_mutex_t crd_mutex; TABLE_SHARE *table_share; SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type table_name_hash_value; #ifdef WITH_PARTITION_STORAGE_ENGINE my_hash_value_type table_path_hash_value; -#endif #endif volatile bool init; @@ -1227,9 +1211,7 @@ typedef struct st_spider_share char *bka_engine; int bka_engine_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type *conn_keys_hash_value; -#endif char **server_names; char **tgt_table_names; char **tgt_dbs; @@ -1390,9 +1372,7 @@ typedef struct st_spider_init_error_table { char *table_name; uint table_name_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type table_name_hash_value; -#endif bool init_error_with_message; char init_error_msg[MYSQL_ERRMSG_SIZE]; volatile int init_error; @@ -1469,9 +1449,7 @@ typedef struct st_spider_direct_sql uint tgt_dsn_length; uint conn_key_length; uint dbton_id; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type conn_key_hash_value; -#endif pthread_mutex_t *bg_mutex; pthread_cond_t *bg_cond; @@ -1510,9 +1488,7 @@ typedef struct st_spider_table_mon_list { char *key; uint key_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type key_hash_value; -#endif uint use_count; uint mutex_hash; @@ -1667,9 +1643,7 @@ char *spider_create_string( typedef struct st_spider_ip_port_conn { char *key; size_t key_len; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type key_hash_value; -#endif char *remote_ip_str; long remote_port; ulong ip_port_count; diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc index 8327a2c9fea..30f2814f8e1 100644 --- a/storage/spider/spd_ping_table.cc +++ b/storage/spider/spd_ping_table.cc @@ -105,9 +105,7 @@ SPIDER_TABLE_MON_LIST *spider_get_ping_table_mon_list( SPIDER_TABLE_MON_LIST *table_mon_list; MEM_ROOT mem_root; ulonglong mon_table_cache_version; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value; -#endif DBUG_ENTER("spider_get_ping_table_mon_list"); /* Reset the cache if the version does not match the requirement */ if (spider_mon_table_cache_version != spider_mon_table_cache_version_req) @@ -129,27 +127,17 @@ SPIDER_TABLE_MON_LIST *spider_get_ping_table_mon_list( spider_param_udf_table_mon_mutex_count()); DBUG_PRINT("info",("spider hash key=%s", str->c_ptr())); DBUG_PRINT("info",("spider hash key length=%u", str->length())); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value = my_calc_hash( &spider_udf_table_mon_list_hash[mutex_hash], (uchar*) str->c_ptr(), str->length()); -#endif pthread_mutex_lock(&spider_udf_table_mon_mutexes[mutex_hash]); mon_table_cache_version = (ulonglong) spider_mon_table_cache_version; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(table_mon_list = (SPIDER_TABLE_MON_LIST *) my_hash_search_using_hash_value( &spider_udf_table_mon_list_hash[mutex_hash], hash_value, (uchar*) str->c_ptr(), str->length())) || table_mon_list->mon_table_cache_version != mon_table_cache_version ) -#else - if (!(table_mon_list = (SPIDER_TABLE_MON_LIST *) my_hash_search( - &spider_udf_table_mon_list_hash[mutex_hash], - (uchar*) str->c_ptr(), str->length())) || - table_mon_list->mon_table_cache_version != mon_table_cache_version - ) -#endif { /* If table_mon_list is found but the cache version does not match, remove it from the hash and free it. */ @@ -171,9 +159,7 @@ SPIDER_TABLE_MON_LIST *spider_get_ping_table_mon_list( table_mon_list->mon_table_cache_version = mon_table_cache_version; uint old_elements = spider_udf_table_mon_list_hash[mutex_hash].array.max_element; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE table_mon_list->key_hash_value = hash_value; -#endif #ifdef HASH_UPDATE_WITH_HASH_VALUE if (my_hash_insert_with_hash_value( &spider_udf_table_mon_list_hash[mutex_hash], @@ -280,22 +266,14 @@ int spider_release_ping_table_mon_list( mutex_hash = spider_udf_calc_hash(conv_name_str.c_ptr_safe(), spider_param_udf_table_mon_mutex_count()); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash( &spider_udf_table_mon_list_hash[mutex_hash], (uchar*) conv_name_str.c_ptr(), conv_name_str.length()); -#endif pthread_mutex_lock(&spider_udf_table_mon_mutexes[mutex_hash]); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((table_mon_list = (SPIDER_TABLE_MON_LIST *) my_hash_search_using_hash_value( &spider_udf_table_mon_list_hash[mutex_hash], hash_value, (uchar*) conv_name_str.c_ptr(), conv_name_str.length()))) -#else - if ((table_mon_list = (SPIDER_TABLE_MON_LIST *) my_hash_search( - &spider_udf_table_mon_list_hash[mutex_hash], - (uchar*) conv_name_str.c_ptr(), conv_name_str.length()))) -#endif spider_release_ping_table_mon_list_loop(mutex_hash, table_mon_list); pthread_mutex_unlock(&spider_udf_table_mon_mutexes[mutex_hash]); my_afree(buf); diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index c1166c4e7d5..e6947fe3d6f 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -3938,10 +3938,8 @@ int spider_create_conn_keys( __func__, __FILE__, __LINE__, MYF(MY_WME | MY_ZEROFILL), &share->conn_keys, sizeof(char *) * share->all_link_count, &share->conn_keys_lengths, length_base, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE &share->conn_keys_hash_value, sizeof(my_hash_value_type) * share->all_link_count, -#endif &tmp_name, sizeof(char) * share->conn_keys_charlen, &share->sql_dbton_ids, length_base, NullS)) @@ -4001,11 +3999,9 @@ int spider_create_conn_keys( spider_create_conn_key_add_one(&counter, &tmp_name, share->tgt_dsns[roop_count]); tmp_name++; tmp_name++; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE share->conn_keys_hash_value[roop_count] = my_calc_hash( &spider_open_connections, (uchar*) share->conn_keys[roop_count], share->conn_keys_lengths[roop_count]); -#endif } for (roop_count2 = 0; roop_count2 < SPIDER_DBTON_SIZE; roop_count2++) { @@ -4028,9 +4024,7 @@ SPIDER_SHARE *spider_create_share( #ifdef WITH_PARTITION_STORAGE_ENGINE partition_info *part_info, #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value, -#endif int *error_num ) { int bitmap_size, roop_count; @@ -4079,13 +4073,11 @@ SPIDER_SHARE *spider_create_share( share->table_mon_mutex_bitmap = tmp_table_mon_mutex_bitmap; share->bitmap_size = bitmap_size; share->table_share = table_share; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE share->table_name_hash_value = hash_value; #ifdef WITH_PARTITION_STORAGE_ENGINE share->table_path_hash_value = my_calc_hash(&spider_open_tables, (uchar*) table_share->path.str, table_share->path.length); #endif -#endif #ifndef WITHOUT_SPIDER_BG_SEARCH share->table.s = table_share; share->table.field = table_share->field; @@ -4158,14 +4150,9 @@ SPIDER_SHARE *spider_create_share( goto error_init_crd_mutex; } -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(share->lgtm_tblhnd_share = spider_get_lgtm_tblhnd_share(tmp_name, length, hash_value, FALSE, TRUE, error_num))) -#else - if (!(share->lgtm_tblhnd_share = - spider_get_lgtm_tblhnd_share(tmp_name, length, FALSE, TRUE, error_num))) -#endif { goto error_get_lgtm_tblhnd_share; } @@ -4280,10 +4267,8 @@ SPIDER_SHARE *spider_get_share( DBUG_ENTER("spider_get_share"); top_share = spider->wide_handler->top_share; length = (uint) strlen(table_name); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&spider_open_tables, (uchar*) table_name, length); -#endif if (top_share) { lex_str.length = top_share->path.length + SPIDER_SQL_LOP_CHK_PRM_PRF_LEN; @@ -4328,22 +4313,15 @@ SPIDER_SHARE *spider_get_share( my_afree(loop_check_buf); } pthread_mutex_lock(&spider_tbl_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(share = (SPIDER_SHARE*) my_hash_search_using_hash_value( &spider_open_tables, hash_value, (uchar*) table_name, length))) -#else - if (!(share = (SPIDER_SHARE*) my_hash_search(&spider_open_tables, - (uchar*) table_name, length))) -#endif { if (!(share = spider_create_share( table_name, table_share, #ifdef WITH_PARTITION_STORAGE_ENGINE table->part_info, #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif error_num ))) { goto error_alloc_share; @@ -5422,19 +5400,12 @@ void spider_update_link_status_for_share( SPIDER_SHARE *share; DBUG_ENTER("spider_update_link_status_for_share"); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&spider_open_tables, (uchar*) table_name, table_name_length); -#endif pthread_mutex_lock(&spider_tbl_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((share = (SPIDER_SHARE*) my_hash_search_using_hash_value( &spider_open_tables, hash_value, (uchar*) table_name, table_name_length))) -#else - if ((share = (SPIDER_SHARE*) my_hash_search(&spider_open_tables, - (uchar*) table_name, table_name_length))) -#endif { DBUG_PRINT("info", ("spider share->link_status_init=%s", share->link_status_init ? "TRUE" : "FALSE")); @@ -5449,7 +5420,6 @@ void spider_update_link_status_for_share( DBUG_VOID_RETURN; } -#ifdef SPIDER_HAS_HASH_VALUE_TYPE SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( const char *table_name, uint table_name_length, @@ -5458,15 +5428,6 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( bool need_to_create, int *error_num ) -#else -SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( - const char *table_name, - uint table_name_length, - bool locked, - bool need_to_create, - int *error_num -) -#endif { SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share; char *tmp_name; @@ -5474,16 +5435,10 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( if (!locked) pthread_mutex_lock(&spider_lgtm_tblhnd_share_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(lgtm_tblhnd_share = (SPIDER_LGTM_TBLHND_SHARE*) my_hash_search_using_hash_value( &spider_lgtm_tblhnd_share_hash, hash_value, (uchar*) table_name, table_name_length))) -#else - if (!(lgtm_tblhnd_share = (SPIDER_LGTM_TBLHND_SHARE*) my_hash_search( - &spider_lgtm_tblhnd_share_hash, - (uchar*) table_name, table_name_length))) -#endif { DBUG_PRINT("info",("spider create new lgtm tblhnd share")); if (!(lgtm_tblhnd_share = (SPIDER_LGTM_TBLHND_SHARE *) @@ -5500,9 +5455,7 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( lgtm_tblhnd_share->table_name = tmp_name; memcpy(lgtm_tblhnd_share->table_name, table_name, lgtm_tblhnd_share->table_name_length); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE lgtm_tblhnd_share->table_path_hash_value = hash_value; -#endif if (mysql_mutex_init(spd_key_mutex_share_auto_increment, &lgtm_tblhnd_share->auto_increment_mutex, MY_MUTEX_INIT_FAST)) @@ -5578,16 +5531,10 @@ SPIDER_WIDE_SHARE *spider_get_wide_share( DBUG_ENTER("spider_get_wide_share"); pthread_mutex_lock(&spider_wide_share_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(wide_share = (SPIDER_WIDE_SHARE*) my_hash_search_using_hash_value( &spider_open_wide_share, share->table_path_hash_value, (uchar*) table_share->path.str, table_share->path.length))) -#else - if (!(wide_share = (SPIDER_WIDE_SHARE*) my_hash_search( - &spider_open_wide_share, - (uchar*) table_share->path.str, table_share->path.length))) -#endif { DBUG_PRINT("info",("spider create new wide share")); if (!(wide_share = (SPIDER_WIDE_SHARE *) @@ -5607,9 +5554,7 @@ SPIDER_WIDE_SHARE *spider_get_wide_share( wide_share->table_name = tmp_name; memcpy(wide_share->table_name, table_share->path.str, wide_share->table_name_length); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE wide_share->table_path_hash_value = share->table_path_hash_value; -#endif wide_share->cardinality = tmp_cardinality; wide_share->crd_get_time = wide_share->sts_get_time = @@ -7243,16 +7188,10 @@ SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table( char *tmp_name; DBUG_ENTER("spider_get_init_error_table"); pthread_mutex_lock(&spider_init_error_tbl_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (!(spider_init_error_table = (SPIDER_INIT_ERROR_TABLE *) my_hash_search_using_hash_value( &spider_init_error_tables, share->table_name_hash_value, (uchar*) share->table_name, share->table_name_length))) -#else - if (!(spider_init_error_table = (SPIDER_INIT_ERROR_TABLE *) my_hash_search( - &spider_init_error_tables, - (uchar*) share->table_name, share->table_name_length))) -#endif { if (!create) { @@ -7271,10 +7210,8 @@ SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table( memcpy(tmp_name, share->table_name, share->table_name_length); spider_init_error_table->table_name = tmp_name; spider_init_error_table->table_name_length = share->table_name_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE spider_init_error_table->table_name_hash_value = share->table_name_hash_value; -#endif uint old_elements = spider_init_error_tables.array.max_element; #ifdef HASH_UPDATE_WITH_HASH_VALUE if (my_hash_insert_with_hash_value(&spider_init_error_tables, @@ -7305,20 +7242,13 @@ void spider_delete_init_error_table( ) { SPIDER_INIT_ERROR_TABLE *spider_init_error_table; uint length = strlen(name); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&spider_open_tables, (uchar*) name, length); -#endif DBUG_ENTER("spider_delete_init_error_table"); pthread_mutex_lock(&spider_init_error_tbl_mutex); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((spider_init_error_table = (SPIDER_INIT_ERROR_TABLE *) my_hash_search_using_hash_value(&spider_init_error_tables, hash_value, (uchar*) name, length))) -#else - if ((spider_init_error_table = (SPIDER_INIT_ERROR_TABLE *) my_hash_search( - &spider_init_error_tables, (uchar*) name, length))) -#endif { #ifdef HASH_UPDATE_WITH_HASH_VALUE my_hash_delete_with_hash_value(&spider_init_error_tables, @@ -8422,10 +8352,8 @@ int spider_discover_table_structure( #ifdef WITH_PARTITION_STORAGE_ENGINE str_len = str.length(); #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(&spider_open_tables, (uchar*) table_name, table_name_length); -#endif if (!(trx = spider_get_trx(thd, TRUE, &error_num))) { DBUG_PRINT("info",("spider spider_get_trx error")); @@ -8442,9 +8370,7 @@ int spider_discover_table_structure( #ifdef WITH_PARTITION_STORAGE_ENGINE NULL, #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif &error_num ))) { DBUG_RETURN(error_num); @@ -8503,9 +8429,7 @@ int spider_discover_table_structure( DBUG_PRINT("info",("spider tmp_name=%s", tmp_name)); if (!(spider_share = spider_create_share(tmp_name, share, part_info, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif &error_num ))) { DBUG_RETURN(error_num); @@ -8531,9 +8455,7 @@ int spider_discover_table_structure( DBUG_PRINT("info",("spider tmp_name=%s", tmp_name)); if (!(spider_share = spider_create_share(tmp_name, share, part_info, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif &error_num ))) { DBUG_RETURN(error_num); @@ -8574,9 +8496,7 @@ int spider_discover_table_structure( DBUG_PRINT("info",("spider tmp_name=%s", tmp_name)); if (!(spider_share = spider_create_share(tmp_name, share, part_info, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif &error_num ))) { DBUG_RETURN(error_num); @@ -8612,9 +8532,7 @@ int spider_discover_table_structure( DBUG_PRINT("info",("spider tmp_name=%s", tmp_name)); if (!(spider_share = spider_create_share(tmp_name, share, part_info, -#ifdef SPIDER_HAS_HASH_VALUE_TYPE hash_value, -#endif &error_num ))) { DBUG_RETURN(error_num); diff --git a/storage/spider/spd_table.h b/storage/spider/spd_table.h index b444ba2d3d9..8bca3c047fa 100644 --- a/storage/spider/spd_table.h +++ b/storage/spider/spd_table.h @@ -175,7 +175,6 @@ int spider_create_conn_keys( SPIDER_SHARE *share ); -#ifdef SPIDER_HAS_HASH_VALUE_TYPE SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( const char *table_name, uint table_name_length, @@ -184,15 +183,6 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( bool need_to_create, int *error_num ); -#else -SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( - const char *table_name, - uint table_name_length, - bool locked, - bool need_to_create, - int *error_num -); -#endif void spider_free_lgtm_tblhnd_share_alloc( SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share, @@ -205,9 +195,7 @@ SPIDER_SHARE *spider_create_share( #ifdef WITH_PARTITION_STORAGE_ENGINE partition_info *part_info, #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value, -#endif int *error_num ); diff --git a/storage/spider/spd_trx.cc b/storage/spider/spd_trx.cc index dabec76f4dd..05a6fead947 100644 --- a/storage/spider/spd_trx.cc +++ b/storage/spider/spd_trx.cc @@ -587,11 +587,9 @@ int spider_create_trx_alter_table( alter_table->table_name = tmp_name; memcpy(alter_table->table_name, share->table_name, share->table_name_length); alter_table->table_name_length = share->table_name_length; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE DBUG_PRINT("info",("spider table_name_hash_value=%u", share->table_name_hash_value)); alter_table->table_name_hash_value = share->table_name_hash_value; -#endif alter_table->tmp_priority = share->priority; alter_table->link_count = share->link_count; alter_table->all_link_count = share->all_link_count; @@ -1189,13 +1187,11 @@ SPIDER_TRX *spider_get_trx( trx->trx_ha_hash.array.size_of_element); trx->thd = (THD*) thd; -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if (thd) trx->thd_hash_value = my_calc_hash(&spider_allocated_thds, (uchar*) thd, sizeof(THD *)); else trx->thd_hash_value = 0; -#endif pthread_mutex_lock(&spider_thread_id_mutex); trx->spider_thread_id = spider_thread_id; ++spider_thread_id; @@ -1526,13 +1522,11 @@ static int spider_xa_lock( DBUG_ENTER("spider_xa_lock"); #ifdef SPIDER_XID_USES_xid_cache_iterate #else -#ifdef SPIDER_HAS_HASH_VALUE_TYPE my_hash_value_type hash_value = my_calc_hash(spd_db_att_xid_cache, (uchar*) xid_state->xid.key(), xid_state->xid.key_length()); #ifdef XID_CACHE_IS_SPLITTED uint idx = hash_value % *spd_db_att_xid_cache_split_num; #endif -#endif #endif old_proc_info = thd_proc_info(thd, "Locking xid by Spider"); #ifdef SPIDER_XID_USES_xid_cache_iterate @@ -1548,17 +1542,12 @@ static int spider_xa_lock( #else pthread_mutex_lock(spd_db_att_LOCK_xid_cache); #endif -#ifdef SPIDER_HAS_HASH_VALUE_TYPE #ifdef XID_CACHE_IS_SPLITTED if (my_hash_search_using_hash_value(&spd_db_att_xid_cache[idx], hash_value, xid_state->xid.key(), xid_state->xid.key_length())) #else if (my_hash_search_using_hash_value(spd_db_att_xid_cache, hash_value, xid_state->xid.key(), xid_state->xid.key_length())) -#endif -#else - if (my_hash_search(spd_db_att_xid_cache, - xid_state->xid.key(), xid_state->xid.key_length())) #endif { error_num = ER_SPIDER_XA_LOCKED_NUM; @@ -3869,14 +3858,9 @@ SPIDER_TRX_HA *spider_check_trx_ha( link_bitmap_size, which is an indication of a share that has been freed. Delete the trx_ha and return NULL on mismatch. */ -#ifdef SPIDER_HAS_HASH_VALUE_TYPE if ((trx_ha = (SPIDER_TRX_HA *) my_hash_search_using_hash_value( &trx->trx_ha_hash, share->table_name_hash_value, (uchar*) share->table_name, share->table_name_length))) -#else - if ((trx_ha = (SPIDER_TRX_HA *) my_hash_search(&trx->trx_ha_hash, - (uchar*) share->table_name, share->table_name_length))) -#endif { if (trx_ha->share == share && trx_ha->link_count == share->link_count && trx_ha->link_bitmap_size == share->link_bitmap_size) From ba9bebd7194a6bf0145c2dba4dd243baa0826088 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:33:33 +0800 Subject: [PATCH 04/25] MDEV-28892 remove #ifdef SPIDER_Item_args_arg_count_IS_PROTECTED arg_count was protected since 2015 in commit afa17734395f842f728e2539145854d3eb7cd9a8 --- storage/spider/spd_db_oracle.cc | 4 ---- storage/spider/spd_include.h | 2 -- 2 files changed, 6 deletions(-) diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index 82216714a25..a4bccda1d71 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -3092,11 +3092,7 @@ int spider_db_oracle_util::open_item_func( { if ( !strncasecmp("rand", func_name, func_name_length) && -#ifdef SPIDER_Item_args_arg_count_IS_PROTECTED !item_func->argument_count() -#else - !item_func->arg_count -#endif ) { if (str) str->length(str->length() - SPIDER_SQL_OPEN_PAREN_LEN); diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index 9190692223e..a99dc7e96dd 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -90,8 +90,6 @@ #define SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON #define SPIDER_XID_USES_xid_cache_iterate -#define SPIDER_Item_args_arg_count_IS_PROTECTED - #define SPIDER_Item_func_conv_charset_conv_charset collation.collation #define SPIDER_WITHOUT_HA_STATISTIC_INCREMENT From 64581c83e8c9414cfde39f9405285ba1c93604ab Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:34:30 +0800 Subject: [PATCH 05/25] MDEV-28893 Spider: remove #ifdef SPIDER_NET_HAS_THD net has thd since 2015 in 56aa19989f5800df8a398173727558bfb3ea1251 for MDEV-6152 --- storage/spider/spd_db_mysql.cc | 2 -- storage/spider/spd_environ.h | 1 - 2 files changed, 3 deletions(-) diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index c41379e26d5..8fc3f8a6295 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -2032,9 +2032,7 @@ int spider_db_mbase::connect( connect_retry_count--; my_sleep((ulong) connect_retry_interval); } else { -#ifdef SPIDER_NET_HAS_THD db_conn->net.thd = NULL; -#endif if (connect_mutex) pthread_mutex_unlock(&spider_open_conn_mutex); break; diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 826362d24c4..356dffcb6da 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -23,7 +23,6 @@ #define SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE -#define SPIDER_NET_HAS_THD #define HANDLER_HAS_TOP_TABLE_FIELDS #define HANDLER_HAS_DIRECT_UPDATE_ROWS From de3dd942c006a2e04f025716aaa2185be3957e64 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:35:05 +0800 Subject: [PATCH 06/25] MDEV-28894 Spider: remove #ifdef HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN HA_EXTRA_STARTING_ORDERED_INDEX_SCAN was added latest 2018: 921c5e93145 --- storage/spider/ha_spider.cc | 4 ---- storage/spider/spd_environ.h | 1 - 2 files changed, 5 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index fa6568a9f65..f8e5efc0f55 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -1436,10 +1436,7 @@ int ha_spider::extra( if (!(wide_handler->trx = spider_get_trx(ha_thd(), TRUE, &error_num))) DBUG_RETURN(error_num); break; -#if defined(HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN) || defined(HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF) -#ifdef HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN case HA_EXTRA_STARTING_ORDERED_INDEX_SCAN: -#endif #ifdef HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF case HA_EXTRA_USE_CMP_REF: #endif @@ -1470,7 +1467,6 @@ int ha_spider::extra( } } break; -#endif default: break; } diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 356dffcb6da..a0810955a91 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -28,7 +28,6 @@ #define HANDLER_HAS_DIRECT_UPDATE_ROWS #define HANDLER_HAS_DIRECT_AGGREGATE #define PARTITION_HAS_GET_PART_SPEC -#define HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC #define HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT From d5d65b948b608b5d1c041a03a4dde27b742e1ad9 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:36:03 +0800 Subject: [PATCH 07/25] MDEV-26178 Spider: remove HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF HA_EXTRA_USE_CMP_REF is undefined, and remains so as of 11.5 c96b23f99409cad9c0dac5040561136211486995 --- storage/spider/ha_spider.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index f8e5efc0f55..24c4f26d732 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -1437,9 +1437,6 @@ int ha_spider::extra( DBUG_RETURN(error_num); break; case HA_EXTRA_STARTING_ORDERED_INDEX_SCAN: -#ifdef HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF - case HA_EXTRA_USE_CMP_REF: -#endif DBUG_PRINT("info",("spider HA_EXTRA_STARTING_ORDERED_INDEX_SCAN")); if (table_share->primary_key != MAX_KEY) { From 0650c87d9bbf76bf4e34355979245dd4d738b86b Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:36:48 +0800 Subject: [PATCH 08/25] MDEV-27647 Spider: remove HANDLER_HAS_DIRECT_UPDATE_ROWS --- storage/spider/ha_spider.cc | 75 -------------------------- storage/spider/ha_spider.h | 14 ----- storage/spider/spd_conn.cc | 2 - storage/spider/spd_db_conn.cc | 14 ----- storage/spider/spd_db_conn.h | 6 --- storage/spider/spd_db_include.cc | 2 - storage/spider/spd_db_include.h | 4 -- storage/spider/spd_db_mysql.cc | 8 --- storage/spider/spd_db_mysql.h | 4 -- storage/spider/spd_db_oracle.cc | 2 - storage/spider/spd_db_oracle.h | 2 - storage/spider/spd_environ.h | 1 - storage/spider/spd_group_by_handler.cc | 2 - storage/spider/spd_include.h | 4 -- storage/spider/spd_param.cc | 4 -- 15 files changed, 144 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 24c4f26d732..306e223a16e 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -96,9 +96,7 @@ ha_spider::ha_spider( dml_inited = FALSE; use_pre_call = FALSE; use_pre_action = FALSE; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif #ifdef HA_CAN_BULK_ACCESS is_bulk_access_clone = FALSE; synced_from_clone_source = FALSE; @@ -181,9 +179,7 @@ ha_spider::ha_spider( dml_inited = FALSE; use_pre_call = FALSE; use_pre_action = FALSE; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif #ifdef HA_CAN_BULK_ACCESS is_bulk_access_clone = FALSE; synced_from_clone_source = FALSE; @@ -793,22 +789,7 @@ void ha_spider::check_access_kind( wide_handler->sql_command = thd_sql_command(thd); DBUG_PRINT("info",("spider sql_command=%u", wide_handler->sql_command)); DBUG_PRINT("info",("spider thd->query_id=%lld", thd->query_id)); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS wide_handler->update_request = FALSE; -#else - if ( - wide_handler->sql_command == SQLCOM_UPDATE || - wide_handler->sql_command == SQLCOM_UPDATE_MULTI || - /* for triggers */ - wide_handler->sql_command == SQLCOM_INSERT || - wide_handler->sql_command == SQLCOM_INSERT_SELECT || - wide_handler->sql_command == SQLCOM_DELETE || - wide_handler->sql_command == SQLCOM_DELETE_MULTI - ) - wide_handler->update_request = TRUE; - else - wide_handler->update_request = FALSE; -#endif DBUG_VOID_RETURN; } @@ -1263,9 +1244,7 @@ int ha_spider::reset() wide_handler->condition = tmp_cond; } wide_handler->cond_check = FALSE; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS wide_handler->direct_update_fields = NULL; -#endif #ifdef INFO_KIND_FORCE_LIMIT_BEGIN wide_handler->info_limit = 9223372036854775807LL; #endif @@ -1343,9 +1322,7 @@ int ha_spider::reset() ft_count = 0; ft_init_without_index_init = FALSE; sql_kinds = 0; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif prev_index_rnd_init = SPD_NONE; result_list.have_sql_kind_backup = FALSE; result_list.direct_order_limit = FALSE; @@ -1421,11 +1398,9 @@ int ha_spider::extra( case HA_EXTRA_WRITE_CANNOT_REPLACE: wide_handler->write_can_replace = FALSE; break; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS case HA_EXTRA_INSERT_WITH_UPDATE: wide_handler->insert_with_update = TRUE; break; -#endif case HA_EXTRA_ATTACH_CHILDREN: DBUG_PRINT("info",("spider HA_EXTRA_ATTACH_CHILDREN")); if (!(wide_handler->trx = spider_get_trx(ha_thd(), TRUE, &error_num))) @@ -1616,9 +1591,7 @@ int ha_spider::index_read_map_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ( find_flag >= HA_READ_MBR_CONTAIN && find_flag <= HA_READ_MBR_EQUAL @@ -2088,9 +2061,7 @@ int ha_spider::index_read_last_map_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = index_handler_init())) DBUG_RETURN(check_error_mode_eof(error_num)); if (is_clone) @@ -2546,9 +2517,7 @@ int ha_spider::index_first_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = index_handler_init())) DBUG_RETURN(check_error_mode_eof(error_num)); if (is_clone) @@ -2920,9 +2889,7 @@ int ha_spider::index_last_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = index_handler_init())) DBUG_RETURN(check_error_mode_eof(error_num)); if (is_clone) @@ -3347,9 +3314,7 @@ int ha_spider::read_range_first_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ( start_key && start_key->flag >= HA_READ_MBR_CONTAIN && @@ -3935,9 +3900,7 @@ int ha_spider::read_multi_range_first_internal( my_error(ER_QUERY_INTERRUPTED, MYF(0)); DBUG_RETURN(ER_QUERY_INTERRUPTED); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = index_handler_init())) DBUG_RETURN(check_error_mode_eof(error_num)); if (is_clone) @@ -6809,9 +6772,7 @@ int ha_spider::rnd_next_internal( /* do not copy table data at alter table */ if (wide_handler->sql_command == SQLCOM_ALTER_TABLE) DBUG_RETURN(HA_ERR_END_OF_FILE); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if (rnd_scan_and_first) { @@ -9274,12 +9235,8 @@ int ha_spider::write_row( DBUG_RETURN(check_error_mode(error_num)); if (bulk_insert) bulk_size = -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS (wide_handler->insert_with_update && !result_list.insert_dup_update_pushdown) || -#else - wide_handler->insert_with_update || -#endif (!direct_dup_insert && wide_handler->ignore_dup_key) ? 0 : spider_param_bulk_size(wide_handler->trx->thd, share->bulk_size); else @@ -9318,7 +9275,6 @@ int ha_spider::pre_write_row( } #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS void ha_spider::direct_update_init( THD *thd, bool hs_request @@ -9328,7 +9284,6 @@ void ha_spider::direct_update_init( do_direct_update = TRUE; DBUG_VOID_RETURN; } -#endif bool ha_spider::start_bulk_update( ) { @@ -9424,9 +9379,7 @@ int ha_spider::update_row( #ifndef SPIDER_WITHOUT_HA_STATISTIC_INCREMENT ha_statistic_increment(&SSV::ha_update_count); #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = spider_db_update(this, table, old_data))) DBUG_RETURN(check_error_mode(error_num)); if (table->found_next_number_field && @@ -9470,7 +9423,6 @@ int ha_spider::update_row( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool ha_spider::check_direct_update_sql_part( st_select_lex *select_lex, longlong select_limit, @@ -10006,7 +9958,6 @@ int ha_spider::pre_direct_update_rows() } #endif #endif -#endif bool ha_spider::start_bulk_delete( ) { @@ -10056,15 +10007,12 @@ int ha_spider::delete_row( #ifndef SPIDER_WITHOUT_HA_STATISTIC_INCREMENT ha_statistic_increment(&SSV::ha_delete_count); #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif if ((error_num = spider_db_delete(this, table, buf))) DBUG_RETURN(check_error_mode(error_num)); DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool ha_spider::check_direct_delete_sql_part( st_select_lex *select_lex, longlong select_limit, @@ -10451,7 +10399,6 @@ int ha_spider::pre_direct_delete_rows() } #endif #endif -#endif int ha_spider::delete_all_rows() { @@ -10480,9 +10427,7 @@ int ha_spider::truncate() { DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS do_direct_update = FALSE; -#endif sql_kinds = SPIDER_SQL_KIND_SQL; for (roop_count = 0; roop_count < (int) share->link_count; roop_count++) sql_kind[roop_count] = SPIDER_SQL_KIND_SQL; @@ -11453,8 +11398,6 @@ int ha_spider::info_push( #endif #ifdef HA_CAN_BULK_ACCESS if ( -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS -#endif info_type != INFO_KIND_BULK_ACCESS_BEGIN && info_type != INFO_KIND_BULK_ACCESS_CURRENT && info_type != INFO_KIND_BULK_ACCESS_END @@ -11476,10 +11419,8 @@ int ha_spider::info_push( } #endif -#if defined(HANDLER_HAS_DIRECT_UPDATE_ROWS) || defined(HA_CAN_BULK_ACCESS) switch (info_type) { -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef INFO_KIND_UPDATE_FIELDS case INFO_KIND_UPDATE_FIELDS: DBUG_PRINT("info",("spider INFO_KIND_UPDATE_FIELDS")); @@ -11507,7 +11448,6 @@ int ha_spider::info_push( wide_handler->info_limit = 9223372036854775807LL; break; #endif -#endif #ifdef HA_CAN_BULK_ACCESS case INFO_KIND_BULK_ACCESS_BEGIN: DBUG_PRINT("info",("spider INFO_KIND_BULK_ACCESS_BEGIN")); @@ -11570,7 +11510,6 @@ int ha_spider::info_push( default: break; } -#endif DBUG_RETURN(error_num); } @@ -12379,9 +12318,7 @@ int ha_spider::index_handler_init() roop_end = search_link_idx + 1; } sql_kinds = 0; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS direct_update_kinds = 0; -#endif for (roop_count = roop_start; roop_count < roop_end; roop_count = spider_conn_link_idx_next(share->link_statuses, conn_link_idx, roop_count, share->link_count, @@ -12467,9 +12404,7 @@ int ha_spider::rnd_handler_init() roop_end = search_link_idx + 1; } sql_kinds = 0; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS direct_update_kinds = 0; -#endif for (roop_count = roop_start; roop_count < roop_end; roop_count = spider_conn_link_idx_next(share->link_statuses, conn_link_idx, roop_count, share->link_count, @@ -12695,7 +12630,6 @@ void ha_spider::check_pre_call( DBUG_VOID_RETURN; } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS void ha_spider::check_insert_dup_update_pushdown() { THD *thd = wide_handler->trx->thd; @@ -12714,7 +12648,6 @@ void ha_spider::check_insert_dup_update_pushdown() } DBUG_VOID_RETURN; } -#endif #ifdef HA_CAN_BULK_ACCESS SPIDER_BULK_ACCESS_LINK *ha_spider::create_bulk_access_link() @@ -12848,8 +12781,6 @@ int ha_spider::sync_from_clone_source( external_lock_cnt = spider->external_lock_cnt; } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS -#endif DBUG_PRINT("info",("spider bulk_access_link->spider->dbton_handler=%p", dbton_handler)); DBUG_PRINT("info",("spider ptr bulk_access_link->spider->dbton_handler=%p", @@ -13132,7 +13063,6 @@ int ha_spider::append_update_set_sql_part() DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int ha_spider::append_direct_update_set_sql_part() { int error_num; @@ -13153,9 +13083,7 @@ int ha_spider::append_direct_update_set_sql_part() DBUG_RETURN(0); } -#endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int ha_spider::append_dup_update_pushdown_sql_part( const char *alias, uint alias_length @@ -13221,7 +13149,6 @@ int ha_spider::check_update_columns_sql_part() } DBUG_RETURN(0); } -#endif int ha_spider::append_delete_sql_part() { @@ -15030,12 +14957,10 @@ int ha_spider::dml_init() conns[roop_count]->semi_trx_isolation = -1; } } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS if (wide_handler->insert_with_update) { check_insert_dup_update_pushdown(); } -#endif dml_inited = TRUE; DBUG_RETURN(0); } diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 1bde115de6c..da1e5fd2df4 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -175,10 +175,8 @@ public: corresponding m_handler_cid is t00003 */ char **m_handler_cid; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool do_direct_update; uint direct_update_kinds; -#endif spider_index_rnd_init prev_index_rnd_init; #ifdef HANDLER_HAS_DIRECT_AGGREGATE SPIDER_ITEM_HLD *direct_aggregate_item_first; @@ -494,12 +492,10 @@ public: uchar *buf ); #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS void direct_update_init( THD *thd, bool hs_request ); -#endif bool start_bulk_update() override; int exec_bulk_update( ha_rows *dup_key_found @@ -526,7 +522,6 @@ public: uchar *new_data ); #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool check_direct_update_sql_part( st_select_lex *select_lex, longlong select_limit, @@ -648,14 +643,12 @@ public: #else int pre_direct_update_rows(); #endif -#endif #endif bool start_bulk_delete() override; int end_bulk_delete() override; int delete_row( const uchar *buf ) override; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool check_direct_delete_sql_part( st_select_lex *select_lex, longlong select_limit, @@ -724,7 +717,6 @@ public: #else int pre_direct_delete_rows(); #endif -#endif #endif int delete_all_rows() override; int truncate() override; @@ -895,9 +887,7 @@ public: void check_pre_call( bool use_parallel ); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS void check_insert_dup_update_pushdown(); -#endif #ifdef HA_CAN_BULK_ACCESS SPIDER_BULK_ACCESS_LINK *create_bulk_access_link(); void delete_bulk_access_link( @@ -926,10 +916,7 @@ public: int append_insert_sql_part(); int append_update_sql_part(); int append_update_set_sql_part(); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int append_direct_update_set_sql_part(); -#endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int append_dup_update_pushdown_sql_part( const char *alias, uint alias_length @@ -939,7 +926,6 @@ public: uint alias_length ); int check_update_columns_sql_part(); -#endif int append_delete_sql_part(); int append_select_sql_part( ulong sql_type diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 5912a2336d0..6b3d90bea3d 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -4100,7 +4100,6 @@ bool spider_conn_use_handler( DBUG_PRINT("info",("spider use_handler=%d", use_handler)); DBUG_PRINT("info",("spider spider->conn_kind[link_idx]=%u", spider->conn_kind[link_idx])); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS if (spider->do_direct_update) { spider->sql_kinds |= SPIDER_SQL_KIND_SQL; @@ -4109,7 +4108,6 @@ bool spider_conn_use_handler( DBUG_PRINT("info",("spider FALSE by using direct_update")); DBUG_RETURN(FALSE); } -#endif if (spider->use_spatial_index) { DBUG_PRINT("info",("spider FALSE by use_spatial_index")); diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index 7ecd356873b..dd253822626 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -6908,7 +6908,6 @@ int spider_db_update( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS int spider_db_direct_update( ha_spider *spider, @@ -6956,17 +6955,14 @@ int spider_db_direct_update( (spider->direct_update_kinds & SPIDER_SQL_KIND_HS) */ -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS if (!spider->do_direct_update) { -#endif if ( (spider->sql_kinds & SPIDER_SQL_KIND_SQL) && (error_num = spider->append_update_set_sql_part()) ) { DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS } else { if ( (spider->direct_update_kinds & SPIDER_SQL_KIND_SQL) && @@ -6975,7 +6971,6 @@ int spider_db_direct_update( DBUG_RETURN(error_num); } } -#endif result_list->desc_flg = FALSE; result_list->sorted = TRUE; @@ -7171,17 +7166,14 @@ int spider_db_direct_update( spider->wide_handler->direct_update_fields */ -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS if (!spider->do_direct_update) { -#endif if ( (spider->sql_kinds & SPIDER_SQL_KIND_SQL) && (error_num = spider->append_update_set_sql_part()) ) { DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS } else { if ( (spider->direct_update_kinds & SPIDER_SQL_KIND_SQL) && @@ -7190,7 +7182,6 @@ int spider_db_direct_update( DBUG_RETURN(error_num); } } -#endif result_list->desc_flg = FALSE; result_list->sorted = TRUE; @@ -7351,7 +7342,6 @@ int spider_db_direct_update( DBUG_RETURN(0); } #endif -#endif #ifdef HA_CAN_BULK_ACCESS int spider_db_bulk_direct_update( @@ -7491,7 +7481,6 @@ int spider_db_delete( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS int spider_db_direct_delete( ha_spider *spider, @@ -7858,7 +7847,6 @@ int spider_db_direct_delete( DBUG_RETURN(error_num2); } #endif -#endif int spider_db_delete_all_rows( ha_spider *spider @@ -9506,7 +9494,6 @@ int spider_db_append_condition( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int spider_db_append_update_columns( ha_spider *spider, spider_string *str, @@ -9561,7 +9548,6 @@ int spider_db_append_update_columns( str->length(str->length() - SPIDER_SQL_COMMA_LEN); DBUG_RETURN(0); } -#endif #ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_db_check_select_colum_in_group( diff --git a/storage/spider/spd_db_conn.h b/storage/spider/spd_db_conn.h index bae4ee35439..5b8dc65b262 100644 --- a/storage/spider/spd_db_conn.h +++ b/storage/spider/spd_db_conn.h @@ -799,7 +799,6 @@ int spider_db_update( const uchar *old_data ); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS int spider_db_direct_update( ha_spider *spider, @@ -817,7 +816,6 @@ int spider_db_direct_update( ha_rows *found_rows ); #endif -#endif #ifdef HA_CAN_BULK_ACCESS int spider_db_bulk_direct_update( @@ -838,7 +836,6 @@ int spider_db_delete( const uchar *buf ); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS int spider_db_direct_delete( ha_spider *spider, @@ -854,7 +851,6 @@ int spider_db_direct_delete( ha_rows *delete_rows ); #endif -#endif int spider_db_delete_all_rows( ha_spider *spider @@ -1056,7 +1052,6 @@ int spider_db_append_condition( bool test_flg ); -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int spider_db_append_update_columns( ha_spider *spider, spider_string *str, @@ -1066,7 +1061,6 @@ int spider_db_append_update_columns( bool use_fields, spider_fields *fields ); -#endif #ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_db_check_select_colum_in_group( diff --git a/storage/spider/spd_db_include.cc b/storage/spider/spd_db_include.cc index 4a422e0e1f2..16a449e94cc 100644 --- a/storage/spider/spd_db_include.cc +++ b/storage/spider/spd_db_include.cc @@ -154,7 +154,6 @@ int spider_db_handler::checksum_table( } #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool spider_db_handler::check_direct_update( st_select_lex *select_lex, longlong select_limit, @@ -188,4 +187,3 @@ bool spider_db_handler::check_direct_delete( } DBUG_RETURN(FALSE); } -#endif diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index 32cefbaa258..0d080249d62 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -1188,7 +1188,6 @@ public: virtual int append_update_part() = 0; virtual int append_delete_part() = 0; virtual int append_update_set_part() = 0; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS virtual int append_direct_update_set_part() = 0; virtual int append_dup_update_pushdown_part( const char *alias, @@ -1199,7 +1198,6 @@ public: uint alias_length ) = 0; virtual int check_update_columns_part() = 0; -#endif virtual int append_select_part( ulong sql_type ) = 0; @@ -1591,7 +1589,6 @@ public: ulong sql_type ) = 0; #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS virtual bool check_direct_update( st_select_lex *select_lex, longlong select_limit, @@ -1602,7 +1599,6 @@ public: longlong select_limit, longlong offset_limit ); -#endif }; class spider_db_copy_table diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 8fc3f8a6295..54ad30cebd2 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -9167,11 +9167,7 @@ int spider_mbase_handler::append_insert( spider->wide_handler->ignore_dup_key && spider->direct_dup_insert && !spider->wide_handler->write_can_replace && -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS (!spider->wide_handler->insert_with_update || !dup_update_sql.length()) && -#else - !spider->wide_handler->insert_with_update && -#endif /* for direct_dup_insert without patch for partition */ spider->wide_handler->sql_command != SQLCOM_REPLACE && spider->wide_handler->sql_command != SQLCOM_REPLACE_SELECT @@ -9329,7 +9325,6 @@ int spider_mbase_handler::append_update_set( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int spider_mbase_handler::append_direct_update_set_part() { int error_num; @@ -9406,7 +9401,6 @@ int spider_mbase_handler::append_update_columns( alias, alias_length, dbton_id, FALSE, NULL); DBUG_RETURN(error_num); } -#endif int spider_mbase_handler::append_select_part( ulong sql_type @@ -15721,7 +15715,6 @@ int spider_mbase_handler::append_order_by( } #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool spider_mbase_handler::check_direct_update( st_select_lex *select_lex, longlong select_limit, @@ -15741,7 +15734,6 @@ bool spider_mbase_handler::check_direct_delete( DBUG_PRINT("info",("spider this=%p", this)); DBUG_RETURN(FALSE); } -#endif spider_mbase_copy_table::spider_mbase_copy_table( spider_mbase_share *db_share diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index 9d86b837b32..dcc35290103 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -858,7 +858,6 @@ public: int append_update_set( spider_string *str ); - #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int append_direct_update_set_part() override; int append_direct_update_set( spider_string *str @@ -877,7 +876,6 @@ public: const char *alias, uint alias_length ); - #endif int append_select_part( ulong sql_type ) override; @@ -1555,7 +1553,6 @@ public: spider_fields *fields ); #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS bool check_direct_update( st_select_lex *select_lex, longlong select_limit, @@ -1566,7 +1563,6 @@ public: longlong select_limit, longlong offset_limit ) override; -#endif }; class spider_mysql_handler: public spider_mbase_handler diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index a4bccda1d71..e0ef42793c2 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -6329,7 +6329,6 @@ int spider_oracle_handler::append_update_set( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int spider_oracle_handler::append_direct_update_set_part() { int error_num; @@ -6446,7 +6445,6 @@ int spider_oracle_handler::append_update_columns( DBUG_RETURN(error_num); */ } -#endif int spider_oracle_handler::append_select_part( ulong sql_type diff --git a/storage/spider/spd_db_oracle.h b/storage/spider/spd_db_oracle.h index f9eff649692..8acffb5c150 100644 --- a/storage/spider/spd_db_oracle.h +++ b/storage/spider/spd_db_oracle.h @@ -743,7 +743,6 @@ public: int append_update_set( spider_string *str ); - #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS int append_direct_update_set_part(); int append_direct_update_set( spider_string *str @@ -762,7 +761,6 @@ public: const char *alias, uint alias_length ); - #endif int append_select_part( ulong sql_type ); diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index a0810955a91..fbadb270f1f 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -25,7 +25,6 @@ #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE #define HANDLER_HAS_TOP_TABLE_FIELDS -#define HANDLER_HAS_DIRECT_UPDATE_ROWS #define HANDLER_HAS_DIRECT_AGGREGATE #define PARTITION_HAS_GET_PART_SPEC #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC diff --git a/storage/spider/spd_group_by_handler.cc b/storage/spider/spd_group_by_handler.cc index 953802b7a5f..37bfc7ea8a7 100644 --- a/storage/spider/spd_group_by_handler.cc +++ b/storage/spider/spd_group_by_handler.cc @@ -1033,10 +1033,8 @@ static int spider_prepare_init_scan( for (link_idx = 0; link_idx < (int) share->link_count; ++link_idx) spider->sql_kind[link_idx] = SPIDER_SQL_KIND_SQL; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS spider->do_direct_update = FALSE; spider->direct_update_kinds = 0; -#endif spider_get_select_limit(spider, &select_lex, &select_limit, &offset_limit); direct_order_limit = spider_param_direct_order_limit(thd, share->direct_order_limit); diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index a99dc7e96dd..12320f73742 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -880,10 +880,8 @@ typedef struct st_spider_wide_handler #ifdef WITH_PARTITION_STORAGE_ENGINE SPIDER_PARTITION_HANDLER *partition_handler; #endif -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS List *direct_update_fields; List *direct_update_values; -#endif TABLE_SHARE *top_share; enum thr_lock_type lock_type; uchar lock_table_type; @@ -892,11 +890,9 @@ typedef struct st_spider_wide_handler int cond_check_error; uint sql_command; uint top_table_fields; -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef INFO_KIND_FORCE_LIMIT_BEGIN longlong info_limit; #endif -#endif #ifdef HA_CAN_BULK_ACCESS ulonglong external_lock_cnt; #endif diff --git a/storage/spider/spd_param.cc b/storage/spider/spd_param.cc index 12080cc2a27..371dd1215c9 100644 --- a/storage/spider/spd_param.cc +++ b/storage/spider/spd_param.cc @@ -109,7 +109,6 @@ extern volatile ulonglong spider_mon_table_cache_version_req; MYSQL_SYSVAR_NAME(param_name).def_val; \ } -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS static int spider_direct_update(THD *thd, SHOW_VAR *var, void *, system_status_var *, enum_var_type) { @@ -133,7 +132,6 @@ static int spider_direct_delete(THD *thd, SHOW_VAR *var, void *, var->value = (char *) &trx->direct_delete_count; DBUG_RETURN(error_num); } -#endif static int spider_direct_order_limit(THD *thd, SHOW_VAR *var, void *, system_status_var *, enum_var_type) @@ -178,7 +176,6 @@ struct st_mysql_show_var spider_status_variables[] = (char *) &spider_mon_table_cache_version, SHOW_LONGLONG}, {"Spider_mon_table_cache_version_req", (char *) &spider_mon_table_cache_version_req, SHOW_LONGLONG}, -#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS #ifdef SPIDER_HAS_SHOW_SIMPLE_FUNC {"Spider_direct_update", (char *) &spider_direct_update, SHOW_SIMPLE_FUNC}, {"Spider_direct_delete", (char *) &spider_direct_delete, SHOW_SIMPLE_FUNC}, @@ -186,7 +183,6 @@ struct st_mysql_show_var spider_status_variables[] = {"Spider_direct_update", (char *) &spider_direct_update, SHOW_FUNC}, {"Spider_direct_delete", (char *) &spider_direct_delete, SHOW_FUNC}, #endif -#endif #ifdef SPIDER_HAS_SHOW_SIMPLE_FUNC {"Spider_direct_order_limit", (char *) &spider_direct_order_limit, SHOW_SIMPLE_FUNC}, From f16c037753eb23a31ed56c3ff56c95192b481870 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:37:51 +0800 Subject: [PATCH 09/25] MDEV-28895 Spider: remove #ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT handler has can_use_for_auto_inc_init() since at latest 2017: dc17ac1638ef67b5dc5956d7e4ef802b6b37fbe9 --- storage/spider/ha_spider.cc | 8 -------- storage/spider/ha_spider.h | 4 ---- storage/spider/spd_environ.h | 1 - 3 files changed, 13 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 306e223a16e..55e2f68edaa 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -7764,9 +7764,7 @@ int ha_spider::info( DBUG_ENTER("ha_spider::info"); DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info",("spider flag=%x", flag)); -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT auto_inc_temporary = FALSE; -#endif wide_handler->sql_command = thd_sql_command(thd); /* if ( @@ -7782,9 +7780,7 @@ int ha_spider::info( share->lgtm_tblhnd_share->auto_increment_value; else { stats.auto_increment_value = 1; -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT auto_inc_temporary = TRUE; -#endif } } if ( @@ -8059,9 +8055,7 @@ int ha_spider::info( } if (flag & HA_STATUS_AUTO) { -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT auto_inc_temporary = FALSE; -#endif if (share->wide_share && table->next_number_field) { ulonglong first_value, nb_reserved_values; @@ -8928,7 +8922,6 @@ bool ha_spider::need_info_for_auto_inc() } #endif -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT bool ha_spider::can_use_for_auto_inc_init() { DBUG_ENTER("ha_spider::can_use_for_auto_inc_init"); @@ -8940,7 +8933,6 @@ bool ha_spider::can_use_for_auto_inc_init() !auto_inc_temporary )); } -#endif int ha_spider::update_auto_increment() { diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index da1e5fd2df4..572d23af299 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -150,9 +150,7 @@ public: #ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC bool info_auto_called; #endif -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT bool auto_inc_temporary; -#endif int bulk_size= 0; int direct_dup_insert; int store_error_num; @@ -458,9 +456,7 @@ public: #ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC bool need_info_for_auto_inc() override; #endif -#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT bool can_use_for_auto_inc_init() override; -#endif int update_auto_increment(); void get_auto_increment( ulonglong offset, diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index fbadb270f1f..8b6eac67e7a 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -28,7 +28,6 @@ #define HANDLER_HAS_DIRECT_AGGREGATE #define PARTITION_HAS_GET_PART_SPEC #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC -#define HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT #define SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA From aaba68ac1ec9c5bea70df4dcfa4f4d4c8cc3d09d Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:41:53 +0800 Subject: [PATCH 10/25] MDEV-28896 Spider: remove #ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA new_data is const since at least 2017: a05a610d60a --- storage/spider/ha_spider.cc | 15 --------------- storage/spider/ha_spider.h | 12 ------------ storage/spider/spd_environ.h | 2 -- 3 files changed, 29 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 55e2f68edaa..90c004cfd0b 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -9311,19 +9311,11 @@ int ha_spider::end_bulk_update( DBUG_RETURN(0); } -#ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA int ha_spider::bulk_update_row( const uchar *old_data, const uchar *new_data, ha_rows *dup_key_found ) -#else -int ha_spider::bulk_update_row( - const uchar *old_data, - uchar *new_data, - ha_rows *dup_key_found -) -#endif { DBUG_ENTER("ha_spider::bulk_update_row"); DBUG_PRINT("info",("spider this=%p", this)); @@ -9331,17 +9323,10 @@ int ha_spider::bulk_update_row( DBUG_RETURN(update_row(old_data, new_data)); } -#ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA int ha_spider::update_row( const uchar *old_data, const uchar *new_data ) -#else -int ha_spider::update_row( - const uchar *old_data, - uchar *new_data -) -#endif { int error_num; THD *thd = ha_thd(); diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 572d23af299..535724606ff 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -497,7 +497,6 @@ public: ha_rows *dup_key_found ) override; int end_bulk_update() override; -#ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA int bulk_update_row( const uchar *old_data, const uchar *new_data, @@ -507,17 +506,6 @@ public: const uchar *old_data, const uchar *new_data ) override; -#else - int bulk_update_row( - const uchar *old_data, - uchar *new_data, - ha_rows *dup_key_found - ); - int update_row( - const uchar *old_data, - uchar *new_data - ); -#endif bool check_direct_update_sql_part( st_select_lex *select_lex, longlong select_limit, diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 8b6eac67e7a..26da35b792f 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -29,8 +29,6 @@ #define PARTITION_HAS_GET_PART_SPEC #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC -#define SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA - #define SPIDER_MDEV_16246 #define SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM From 1cb75d9a33ad8d36832cdac4ebc0aec4448c6796 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:42:10 +0800 Subject: [PATCH 11/25] MDEV-27660 Remove #ifdef SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS The flag argument was added to handler::start_bulk_insert() in the MDEV-539 commit ca2cdaad86750509764256ff8086e031b4870b24 --- storage/spider/ha_spider.cc | 6 ------ storage/spider/ha_spider.h | 6 ------ storage/spider/spd_environ.h | 2 -- 3 files changed, 14 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 90c004cfd0b..4296a00e196 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -9075,16 +9075,10 @@ void ha_spider::release_auto_increment() DBUG_VOID_RETURN; } -#ifdef SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS void ha_spider::start_bulk_insert( ha_rows rows, uint flags ) -#else -void ha_spider::start_bulk_insert( - ha_rows rows -) -#endif { DBUG_ENTER("ha_spider::start_bulk_insert"); DBUG_PRINT("info",("spider this=%p", this)); diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 535724606ff..d2d6c911e3c 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -469,16 +469,10 @@ public: ulonglong value ) override; void release_auto_increment() override; -#ifdef SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS void start_bulk_insert( ha_rows rows, uint flags ) override; -#else - void start_bulk_insert( - ha_rows rows - ); -#endif int end_bulk_insert() override; int write_row( const uchar *buf diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 26da35b792f..2501e55a2e9 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -20,8 +20,6 @@ #ifndef SPD_ENVIRON_INCLUDED -#define SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS - #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE #define HANDLER_HAS_TOP_TABLE_FIELDS From 6d0d09ebc2a95c0adfa9baf494b1a456c697f27b Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:42:25 +0800 Subject: [PATCH 12/25] MDEV-26178 Spider: remove HANDLER_HAS_TOP_TABLE_FIELDS This macro is unused --- storage/spider/spd_environ.h | 1 - 1 file changed, 1 deletion(-) diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 2501e55a2e9..6eb1313bb00 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -22,7 +22,6 @@ #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE -#define HANDLER_HAS_TOP_TABLE_FIELDS #define HANDLER_HAS_DIRECT_AGGREGATE #define PARTITION_HAS_GET_PART_SPEC #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC From affcb0713d47b2603aaefbe746d89ce434b9ecb0 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:42:36 +0800 Subject: [PATCH 13/25] MDEV-26178 spider: remove PARTITION_HAS_GET_PART_SPEC This macro is unused, and not in 11.5 c96b23f99409cad9c0dac5040561136211486995 --- storage/spider/spd_environ.h | 1 - 1 file changed, 1 deletion(-) diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 6eb1313bb00..4944aa268c9 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -23,7 +23,6 @@ #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE #define HANDLER_HAS_DIRECT_AGGREGATE -#define PARTITION_HAS_GET_PART_SPEC #define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC #define SPIDER_MDEV_16246 From 8c8684b17f40f613773daa69cb171181cd69d903 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:42:50 +0800 Subject: [PATCH 14/25] MDEV-28226 Remove HANDLER_HAS_NEED_INFO_FOR_AUTO_INC handler::need_info_for_auto_inc() was added in MDEV-7720 / MDEV-7726 in commit dc17ac1638ef67b5dc5956d7e4ef802b6b37fbe9 --- storage/spider/ha_spider.cc | 4 ---- storage/spider/ha_spider.h | 4 ---- storage/spider/spd_environ.h | 1 - 3 files changed, 9 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 4296a00e196..06a1f227771 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -7805,9 +7805,7 @@ int ha_spider::info( { tmp_auto_increment_mode = spider_param_auto_increment_mode(thd, share->auto_increment_mode); -#ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC info_auto_called = TRUE; -#endif } if (!share->sts_init) { @@ -8899,7 +8897,6 @@ uint8 ha_spider::table_cache_type() DBUG_RETURN(HA_CACHE_TBL_NOCACHE); } -#ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC bool ha_spider::need_info_for_auto_inc() { THD *thd = ha_thd(); @@ -8920,7 +8917,6 @@ bool ha_spider::need_info_for_auto_inc() ) )); } -#endif bool ha_spider::can_use_for_auto_inc_init() { diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index d2d6c911e3c..20db5349f68 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -147,9 +147,7 @@ public: bool use_pre_action; bool pre_bitmap_checked; bool bulk_insert; -#ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC bool info_auto_called; -#endif bool auto_inc_temporary; int bulk_size= 0; int direct_dup_insert; @@ -453,9 +451,7 @@ public: uint max_supported_key_length() const override; uint max_supported_key_part_length() const override; uint8 table_cache_type() override; -#ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC bool need_info_for_auto_inc() override; -#endif bool can_use_for_auto_inc_init() override; int update_auto_increment(); void get_auto_increment( diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 4944aa268c9..34670a32ee3 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -23,7 +23,6 @@ #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE #define HANDLER_HAS_DIRECT_AGGREGATE -#define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC #define SPIDER_MDEV_16246 From 5e98471df131a327b027d4b5976c9ca4b1cf4684 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:43:05 +0800 Subject: [PATCH 15/25] MDEV-27811: remove SPIDER_MDEV_16246 MDEV-16246 was fixed long ago. And this macro was removed in other versions too --- storage/spider/ha_spider.cc | 57 ------------------------------------ storage/spider/ha_spider.h | 36 ----------------------- storage/spider/spd_environ.h | 2 -- 3 files changed, 95 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 06a1f227771..a1d734eced8 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -9413,7 +9413,6 @@ bool ha_spider::check_direct_update_sql_part( } #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS -#ifdef SPIDER_MDEV_16246 int ha_spider::direct_update_rows_init( List *update_fields, uint mode, @@ -9422,15 +9421,6 @@ int ha_spider::direct_update_rows_init( bool sorted, uchar *new_data ) -#else -int ha_spider::direct_update_rows_init( - uint mode, - KEY_MULTI_RANGE *ranges, - uint range_count, - bool sorted, - uchar *new_data -) -#endif { st_select_lex *select_lex; longlong select_limit; @@ -9455,13 +9445,8 @@ int ha_spider::direct_update_rows_init( pre_direct_init_result)); DBUG_RETURN(pre_direct_init_result); } -#ifdef SPIDER_MDEV_16246 DBUG_RETURN(bulk_access_link_exec_tgt->spider->direct_update_rows_init( update_fields, mode, ranges, range_count, sorted, new_data)); -#else - DBUG_RETURN(bulk_access_link_exec_tgt->spider->direct_update_rows_init( - mode, ranges, range_count, sorted, new_data)); -#endif } #endif if (!dml_inited) @@ -9538,7 +9523,6 @@ int ha_spider::direct_update_rows_init( DBUG_RETURN(HA_ERR_WRONG_COMMAND); } #else -#ifdef SPIDER_MDEV_16246 /** Perform initialization for a direct update request. @@ -9551,9 +9535,6 @@ int ha_spider::direct_update_rows_init( int ha_spider::direct_update_rows_init( List *update_fields ) -#else -int ha_spider::direct_update_rows_init() -#endif { st_select_lex *select_lex; longlong select_limit; @@ -9602,12 +9583,8 @@ int ha_spider::direct_update_rows_init() pre_direct_init_result)); DBUG_RETURN(pre_direct_init_result); } -#ifdef SPIDER_MDEV_16246 DBUG_RETURN(bulk_access_link_exec_tgt->spider-> direct_update_rows_init(update_fields)); -#else - DBUG_RETURN(bulk_access_link_exec_tgt->spider->direct_update_rows_init()); -#endif } #endif if (!dml_inited) @@ -9682,7 +9659,6 @@ int ha_spider::direct_update_rows_init() #ifdef HA_CAN_BULK_ACCESS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS -#ifdef SPIDER_MDEV_16246 int ha_spider::pre_direct_update_rows_init( List *update_fields, uint mode, @@ -9691,30 +9667,15 @@ int ha_spider::pre_direct_update_rows_init( bool sorted, uchar *new_data ) -#else -int ha_spider::pre_direct_update_rows_init( - uint mode, - KEY_MULTI_RANGE *ranges, - uint range_count, - bool sorted, - uchar *new_data -) -#endif { int error_num; DBUG_ENTER("ha_spider::pre_direct_update_rows_init"); DBUG_PRINT("info",("spider this=%p", this)); if (bulk_access_started) { -#ifdef SPIDER_MDEV_16246 error_num = bulk_access_link_current->spider-> pre_direct_update_rows_init( update_fields, mode, ranges, range_count, sorted, new_data); -#else - error_num = bulk_access_link_current->spider-> - pre_direct_update_rows_init( - mode, ranges, range_count, sorted, new_data); -#endif bulk_access_link_current->spider->bulk_access_pre_called = TRUE; bulk_access_link_current->called = TRUE; DBUG_RETURN(error_num); @@ -9726,17 +9687,11 @@ int ha_spider::pre_direct_update_rows_init( DBUG_RETURN(error_num); } } -#ifdef SPIDER_MDEV_16246 pre_direct_init_result = direct_update_rows_init( update_fields, mode, ranges, range_count, sorted, new_data); -#else - pre_direct_init_result = direct_update_rows_init( - mode, ranges, range_count, sorted, new_data); -#endif DBUG_RETURN(pre_direct_init_result); } #else -#ifdef SPIDER_MDEV_16246 /** Do initialization for performing parallel direct update for a handlersocket update request. @@ -9750,22 +9705,14 @@ int ha_spider::pre_direct_update_rows_init( int ha_spider::pre_direct_update_rows_init( List *update_fields ) -#else -int ha_spider::pre_direct_update_rows_init() -#endif { int error_num; DBUG_ENTER("ha_spider::pre_direct_update_rows_init"); DBUG_PRINT("info",("spider this=%p", this)); if (bulk_access_started) { -#ifdef SPIDER_MDEV_16246 error_num = bulk_access_link_current->spider-> pre_direct_update_rows_init(update_fields); -#else - error_num = bulk_access_link_current->spider-> - pre_direct_update_rows_init(); -#endif bulk_access_link_current->spider->bulk_access_pre_called = TRUE; bulk_access_link_current->called = TRUE; DBUG_RETURN(error_num); @@ -9777,11 +9724,7 @@ int ha_spider::pre_direct_update_rows_init() DBUG_RETURN(error_num); } } -#ifdef SPIDER_MDEV_16246 pre_direct_init_result = direct_update_rows_init(update_fields); -#else - pre_direct_init_result = direct_update_rows_init(); -#endif DBUG_RETURN(pre_direct_init_result); } #endif diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 20db5349f68..995a5f0281c 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -502,7 +502,6 @@ public: longlong offset_limit ); #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS -#ifdef SPIDER_MDEV_16246 inline int direct_update_rows_init( List *update_fields ) { @@ -517,30 +516,12 @@ public: uchar *new_data ); #else - inline int direct_update_rows_init() - { - return direct_update_rows_init(2, NULL, 0, FALSE, NULL); - } - int direct_update_rows_init( - uint mode, - KEY_MULTI_RANGE *ranges, - uint range_count, - bool sorted, - uchar *new_data - ); -#endif -#else -#ifdef SPIDER_MDEV_16246 int direct_update_rows_init( List *update_fields ) override; -#else - int direct_update_rows_init(); -#endif #endif #ifdef HA_CAN_BULK_ACCESS #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS -#ifdef SPIDER_MDEV_16246 inline int pre_direct_update_rows_init( List *update_fields ) { @@ -555,26 +536,9 @@ public: uchar *new_data ); #else - inline int pre_direct_update_rows_init() - { - return pre_direct_update_rows_init(2, NULL, 0, FALSE, NULL); - } - int pre_direct_update_rows_init( - uint mode, - KEY_MULTI_RANGE *ranges, - uint range_count, - bool sorted, - uchar *new_data - ); -#endif -#else -#ifdef SPIDER_MDEV_16246 int pre_direct_update_rows_init( List *update_fields ); -#else - int pre_direct_update_rows_init(); -#endif #endif #endif #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 34670a32ee3..547a487af33 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -24,8 +24,6 @@ #define HANDLER_HAS_DIRECT_AGGREGATE -#define SPIDER_MDEV_16246 - #define SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM #define SPIDER_SQL_CACHE_IS_IN_LEX #define SPIDER_LIKE_FUNC_HAS_GET_NEGATED From a1e5ee911170a608f2ad8ae94b7fef66640a0d3e Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:43:28 +0800 Subject: [PATCH 16/25] MDEV-27663 remove SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM {STRING|INT|REAL|DECIMAL|DATE}_ITEM were replaced with CONST_ITEM in MDEV-14630 c20cd68e60465f43266fe2bc2b2190e7c1cc4983 --- storage/spider/spd_db_conn.cc | 11 ----------- storage/spider/spd_environ.h | 1 - 2 files changed, 12 deletions(-) diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index dd253822626..48ac9264af8 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -8573,7 +8573,6 @@ int spider_db_print_item_type( case Item::ROW_ITEM: DBUG_RETURN(spider_db_open_item_row((Item_row *) item, spider, str, alias, alias_length, dbton_id, use_fields, fields)); -#ifdef SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM case Item::CONST_ITEM: { switch (item->cmp_type()) { @@ -8591,16 +8590,6 @@ int spider_db_print_item_type( DBUG_RETURN(spider_db_print_item_type_default(item, spider, str)); } } -#else - case Item::STRING_ITEM: - DBUG_RETURN(spider_db_open_item_string(item, field, spider, str, - alias, alias_length, dbton_id, use_fields, fields)); - case Item::INT_ITEM: - case Item::REAL_ITEM: - case Item::DECIMAL_ITEM: - DBUG_RETURN(spider_db_open_item_int(item, field, spider, str, - alias, alias_length, dbton_id, use_fields, fields)); -#endif case Item::CACHE_ITEM: DBUG_RETURN(spider_db_open_item_cache((Item_cache *) item, field, spider, str, alias, alias_length, dbton_id, use_fields, fields)); diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 547a487af33..2ca5c62a3e2 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -24,7 +24,6 @@ #define HANDLER_HAS_DIRECT_AGGREGATE -#define SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM #define SPIDER_SQL_CACHE_IS_IN_LEX #define SPIDER_LIKE_FUNC_HAS_GET_NEGATED #define HA_HAS_CHECKSUM_EXTENDED From ab49b46d0148640d843391e8acc811e51636c316 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:46:46 +0800 Subject: [PATCH 17/25] MDEV-27664 remove SPIDER_SQL_CACHE_IS_IN_LEX sql_cache was moved to lex in MDEV-11953 in de745ecf29721795710910a19bd0ea3389da804c --- storage/spider/ha_spider.cc | 4 ---- storage/spider/spd_db_mysql.cc | 13 ------------- storage/spider/spd_environ.h | 1 - 3 files changed, 18 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index a1d734eced8..ac383bbc4f2 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -12506,11 +12506,7 @@ void ha_spider::check_pre_call( ) || ( (skip_parallel_search & 2) && -#ifdef SPIDER_SQL_CACHE_IS_IN_LEX lex->sql_cache == LEX::SQL_NO_CACHE // for mysqldump -#else - select_lex && select_lex->sql_cache == SELECT_LEX::SQL_NO_CACHE // for mysqldump -#endif ) ) { use_pre_call = FALSE; diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 54ad30cebd2..4d57a8d41de 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -9450,29 +9450,16 @@ int spider_mbase_handler::append_select( wide_handler->lock_mode < 1) { /* no lock */ -#ifdef SPIDER_SQL_CACHE_IS_IN_LEX LEX *lex = wide_handler->trx->thd->lex; -#else - st_select_lex *select_lex = - &wide_handler->trx->thd->lex->select_lex; -#endif if ( -#ifdef SPIDER_SQL_CACHE_IS_IN_LEX lex->sql_cache == LEX::SQL_CACHE && -#else - select_lex->sql_cache == SELECT_LEX::SQL_CACHE && -#endif (spider->share->query_cache_sync & 1) ) { if (str->reserve(SPIDER_SQL_SQL_CACHE_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(SPIDER_SQL_SQL_CACHE_STR, SPIDER_SQL_SQL_CACHE_LEN); } else if ( -#ifdef SPIDER_SQL_CACHE_IS_IN_LEX lex->sql_cache == LEX::SQL_NO_CACHE && -#else - select_lex->sql_cache == SELECT_LEX::SQL_NO_CACHE && -#endif (spider->share->query_cache_sync & 2) ) { if (str->reserve(SPIDER_SQL_SQL_NO_CACHE_LEN)) diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 2ca5c62a3e2..9de99b8f4b5 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -24,7 +24,6 @@ #define HANDLER_HAS_DIRECT_AGGREGATE -#define SPIDER_SQL_CACHE_IS_IN_LEX #define SPIDER_LIKE_FUNC_HAS_GET_NEGATED #define HA_HAS_CHECKSUM_EXTENDED From e8a5553cefd0c5c16939409633f5dec75baa6b08 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:47:07 +0800 Subject: [PATCH 18/25] MDEV-27808 remove SPIDER_LIKE_FUNC_HAS_GET_NEGATED get_negated() was introduced in MDEV-16707 --- storage/spider/spd_db_oracle.cc | 4 ---- storage/spider/spd_environ.h | 1 - 2 files changed, 5 deletions(-) diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index e0ef42793c2..f390e5d80fb 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -4094,7 +4094,6 @@ int spider_db_oracle_util::open_item_func( } break; case Item_func::LIKE_FUNC: -#ifdef SPIDER_LIKE_FUNC_HAS_GET_NEGATED if (str) { if (((Item_func_like *)item_func)->get_negated()) @@ -4109,9 +4108,6 @@ int spider_db_oracle_util::open_item_func( } } break; -#else - DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); -#endif default: THD *thd = spider->wide_handler->trx->thd; SPIDER_SHARE *share = spider->share; diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 9de99b8f4b5..faf32019824 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -24,7 +24,6 @@ #define HANDLER_HAS_DIRECT_AGGREGATE -#define SPIDER_LIKE_FUNC_HAS_GET_NEGATED #define HA_HAS_CHECKSUM_EXTENDED #define SPIDER_I_S_USE_SHOW_FOR_COLUMN From 6287fb6e1749cf471dec75f3cf2400bd879765f8 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:47:18 +0800 Subject: [PATCH 19/25] MDEV-27652 remove #ifdef HA_HAS_CHECKSUM_EXTENDED handler::pre_calculate_checksum was added in MDEV-16249 be5c432a42eed10535354f31dfd6daa07095e555 --- storage/spider/ha_spider.cc | 2 -- storage/spider/ha_spider.h | 4 ---- storage/spider/spd_conn.h | 2 -- storage/spider/spd_db_conn.cc | 2 -- storage/spider/spd_db_include.cc | 4 ---- storage/spider/spd_db_include.h | 6 ------ storage/spider/spd_db_mysql.cc | 14 -------------- storage/spider/spd_db_mysql.h | 6 ------ storage/spider/spd_environ.h | 2 -- storage/spider/spd_table.cc | 6 ------ 10 files changed, 48 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index ac383bbc4f2..60371836683 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -8658,7 +8658,6 @@ ha_rows ha_spider::records() DBUG_RETURN(table_rows); } -#ifdef HA_HAS_CHECKSUM_EXTENDED int ha_spider::pre_calculate_checksum() { int error_num; @@ -8736,7 +8735,6 @@ int ha_spider::calculate_checksum() } DBUG_RETURN(0); } -#endif const char *ha_spider::table_type() const { diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 995a5f0281c..9ebf460623e 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -179,11 +179,9 @@ public: SPIDER_ITEM_HLD *direct_aggregate_item_current; #endif ha_rows table_rows; -#ifdef HA_HAS_CHECKSUM_EXTENDED ha_checksum checksum_val; bool checksum_null; uint action_flags; -#endif /* for fulltext search */ bool ft_init_and_first; @@ -430,10 +428,8 @@ public: int check_crd(); int pre_records() override; ha_rows records() override; -#ifdef HA_HAS_CHECKSUM_EXTENDED int pre_calculate_checksum() override; int calculate_checksum() override; -#endif const char *table_type() const; ulonglong table_flags() const override; ulong table_flags_for_partition(); diff --git a/storage/spider/spd_conn.h b/storage/spider/spd_conn.h index ef0c304c89f..405832a1e7b 100644 --- a/storage/spider/spd_conn.h +++ b/storage/spider/spd_conn.h @@ -22,9 +22,7 @@ #define SPIDER_SIMPLE_CONNECT 1 #define SPIDER_SIMPLE_DISCONNECT 2 #define SPIDER_SIMPLE_RECORDS 3 -#ifdef HA_HAS_CHECKSUM_EXTENDED #define SPIDER_SIMPLE_CHECKSUM_TABLE 4 -#endif /* The SPIDER_CONN_LOOP_CHECK has been added to the loop_check queue to diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index 48ac9264af8..f98d1d0283f 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -5933,14 +5933,12 @@ int spider_db_simple_action( link_idx ); break; -#ifdef HA_HAS_CHECKSUM_EXTENDED case SPIDER_SIMPLE_CHECKSUM_TABLE: DBUG_PRINT("info",("spider simple checksum_table")); error_num = db_handler->checksum_table( link_idx ); break; -#endif default: DBUG_ASSERT(0); error_num = HA_ERR_CRASHED; diff --git a/storage/spider/spd_db_include.cc b/storage/spider/spd_db_include.cc index 16a449e94cc..d5344066017 100644 --- a/storage/spider/spd_db_include.cc +++ b/storage/spider/spd_db_include.cc @@ -40,7 +40,6 @@ spider_db_result::spider_db_result( DBUG_VOID_RETURN; } -#ifdef HA_HAS_CHECKSUM_EXTENDED int spider_db_result::fetch_table_checksum( ha_spider *spider ) { @@ -48,7 +47,6 @@ int spider_db_result::fetch_table_checksum( DBUG_PRINT("info",("spider this=%p", this)); DBUG_RETURN(0); } -#endif uint spider_db_result::limit_mode() { @@ -137,7 +135,6 @@ uint spider_db_util::limit_mode() DBUG_RETURN(0); } -#ifdef HA_HAS_CHECKSUM_EXTENDED bool spider_db_share::checksum_support() { DBUG_ENTER("spider_db_share::checksum_support"); @@ -152,7 +149,6 @@ int spider_db_handler::checksum_table( DBUG_PRINT("info",("spider this=%p", this)); DBUG_RETURN(0); } -#endif bool spider_db_handler::check_direct_update( st_select_lex *select_lex, diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index 0d080249d62..d6d1d514ac6 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -874,11 +874,9 @@ public: int mode, ha_rows &records ) = 0; -#ifdef HA_HAS_CHECKSUM_EXTENDED virtual int fetch_table_checksum( ha_spider *spider ); -#endif virtual int fetch_table_cardinality( int mode, TABLE *table, @@ -1119,9 +1117,7 @@ public: spider_string *str ) = 0; #endif -#ifdef HA_HAS_CHECKSUM_EXTENDED virtual bool checksum_support(); -#endif }; class spider_db_handler @@ -1463,11 +1459,9 @@ public: virtual int show_records( int link_idx ) = 0; -#ifdef HA_HAS_CHECKSUM_EXTENDED virtual int checksum_table( int link_idx ); -#endif virtual int show_last_insert_id( int link_idx, ulonglong &last_insert_id diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 4d57a8d41de..a676955d1fd 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -161,11 +161,9 @@ static const char *name_quote_str = SPIDER_SQL_NAME_QUOTE_STR; #define SPIDER_SQL_SHOW_RECORDS_RECORDS_POS 0 #define SPIDER_SQL_EXPLAIN_SELECT_RECORDS_POS 8 -#ifdef HA_HAS_CHECKSUM_EXTENDED #define SPIDER_SQL_CHECKSUM_CHECKSUM_POS 1 #define SPIDER_SQL_CHECKSUM_TABLE_STR "checksum table " #define SPIDER_SQL_CHECKSUM_TABLE_LEN (sizeof(SPIDER_SQL_CHECKSUM_TABLE_STR) - 1) -#endif #define SPIDER_SQL_LIKE_STR " like " #define SPIDER_SQL_LIKE_LEN (sizeof(SPIDER_SQL_LIKE_STR) - 1) @@ -1119,7 +1117,6 @@ int spider_db_mbase_result::fetch_simple_action( DBUG_PRINT("info", ("spider records=%lld", *records)); break; } -#ifdef HA_HAS_CHECKSUM_EXTENDED case SPIDER_SIMPLE_CHECKSUM_TABLE: { ha_spider *spider = (ha_spider *) param; @@ -1136,7 +1133,6 @@ int spider_db_mbase_result::fetch_simple_action( } break; } -#endif default: DBUG_ASSERT(0); break; @@ -1160,7 +1156,6 @@ int spider_db_mbase_result::fetch_table_records( } } -#ifdef HA_HAS_CHECKSUM_EXTENDED int spider_db_mbase_result::fetch_table_checksum( ha_spider *spider ) { @@ -1169,7 +1164,6 @@ int spider_db_mbase_result::fetch_table_checksum( DBUG_RETURN(fetch_simple_action(SPIDER_SIMPLE_CHECKSUM_TABLE, SPIDER_SQL_CHECKSUM_CHECKSUM_POS, spider)); } -#endif int spider_db_mbase_result::fetch_table_cardinality( int mode, @@ -8191,14 +8185,12 @@ int spider_mbase_share::discover_table_structure( } #endif -#ifdef HA_HAS_CHECKSUM_EXTENDED bool spider_mbase_share::checksum_support() { DBUG_ENTER("spider_mbase_share::checksum_support"); DBUG_PRINT("info",("spider this=%p", this)); DBUG_RETURN(TRUE); } -#endif spider_mbase_handler::spider_mbase_handler( ha_spider *spider, @@ -14239,7 +14231,6 @@ int spider_mbase_handler::simple_action( DBUG_PRINT("info",("spider simple records")); str = &mysql_share->show_records[pos]; break; -#ifdef HA_HAS_CHECKSUM_EXTENDED case SPIDER_SIMPLE_CHECKSUM_TABLE: DBUG_PRINT("info",("spider simple checksum_table")); str = &spider->result_list.sqls[link_idx]; @@ -14269,7 +14260,6 @@ int spider_mbase_handler::simple_action( SPIDER_SQL_SQL_EXTENDED_LEN); } break; -#endif default: DBUG_ASSERT(0); DBUG_RETURN(0); @@ -14393,12 +14383,10 @@ int spider_mbase_handler::simple_action( DBUG_PRINT("info",("spider simple records")); error_num = res->fetch_table_records(1, spider->table_rows); break; -#ifdef HA_HAS_CHECKSUM_EXTENDED case SPIDER_SIMPLE_CHECKSUM_TABLE: DBUG_PRINT("info",("spider simple checksum_table")); error_num = res->fetch_table_checksum(spider); break; -#endif default: DBUG_ASSERT(0); break; @@ -14427,7 +14415,6 @@ int spider_mbase_handler::show_records( DBUG_RETURN(0); } -#ifdef HA_HAS_CHECKSUM_EXTENDED int spider_mbase_handler::checksum_table( int link_idx ) { @@ -14435,7 +14422,6 @@ int spider_mbase_handler::checksum_table( DBUG_RETURN(simple_action(SPIDER_SIMPLE_CHECKSUM_TABLE, link_idx)); DBUG_RETURN(0); } -#endif int spider_mbase_handler::show_last_insert_id( int link_idx, diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index dcc35290103..5124dc61180 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -318,11 +318,9 @@ public: int mode, ha_rows &records ) override; -#ifdef HA_HAS_CHECKSUM_EXTENDED int fetch_table_checksum( ha_spider *spider ) override; -#endif int fetch_table_cardinality( int mode, TABLE *table, @@ -669,9 +667,7 @@ public: spider_string *str ) override; #endif -#ifdef HA_HAS_CHECKSUM_EXTENDED bool checksum_support() override; -#endif protected: int create_table_names_str(); void free_table_names_str(); @@ -1402,11 +1398,9 @@ public: int show_records( int link_idx ) override; -#ifdef HA_HAS_CHECKSUM_EXTENDED int checksum_table( int link_idx ) override; -#endif int show_last_insert_id( int link_idx, ulonglong &last_insert_id diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index faf32019824..3f50cfa0cc8 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -24,7 +24,5 @@ #define HANDLER_HAS_DIRECT_AGGREGATE -#define HA_HAS_CHECKSUM_EXTENDED - #define SPIDER_I_S_USE_SHOW_FOR_COLUMN #endif /* SPD_ENVIRON_INCLUDED */ diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index e6947fe3d6f..41f0668bb24 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -4036,9 +4036,7 @@ SPIDER_SHARE *spider_create_share( uchar *tmp_cardinality_upd, *tmp_table_mon_mutex_bitmap; char buf[MAX_FIELD_WIDTH], *buf_pos; char link_idx_str[SPIDER_SQL_INT_LEN]; -#ifdef HA_HAS_CHECKSUM_EXTENDED bool checksum_support = TRUE; -#endif DBUG_ENTER("spider_create_share"); length = (uint) strlen(table_name); bitmap_size = spider_bitmap_size(table_share->fields); @@ -4175,24 +4173,20 @@ SPIDER_SHARE *spider_create_share( { goto error_init_dbton; } -#ifdef HA_HAS_CHECKSUM_EXTENDED if ( spider_dbton[roop_count].db_access_type == SPIDER_DB_ACCESS_TYPE_SQL && !share->dbton_share[roop_count]->checksum_support() ) { checksum_support = FALSE; } -#endif } } -#ifdef HA_HAS_CHECKSUM_EXTENDED if (checksum_support) { share->additional_table_flags |= HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM; } -#endif DBUG_RETURN(share); /* From 84977868b1e57c6fcef9c7e48fb4367e17ed0dcb Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:50:20 +0800 Subject: [PATCH 20/25] MDEV-27809 remove SPIDER_I_S_USE_SHOW_FOR_COLUMN Show::Column() was added in MDEV-19772 4156b1a2602915d6adf983e5c8efaa4f41df3d21 --- storage/spider/spd_environ.h | 2 -- storage/spider/spd_i_s.cc | 33 --------------------------------- 2 files changed, 35 deletions(-) diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 3f50cfa0cc8..696d4cc8ae9 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -23,6 +23,4 @@ #define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE #define HANDLER_HAS_DIRECT_AGGREGATE - -#define SPIDER_I_S_USE_SHOW_FOR_COLUMN #endif /* SPD_ENVIRON_INCLUDED */ diff --git a/storage/spider/spd_i_s.cc b/storage/spider/spd_i_s.cc index 8f828939aeb..2db7bd0c374 100644 --- a/storage/spider/spd_i_s.cc +++ b/storage/spider/spd_i_s.cc @@ -41,7 +41,6 @@ static struct st_mysql_storage_engine spider_i_s_info = { MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION }; namespace Show { -#ifdef SPIDER_I_S_USE_SHOW_FOR_COLUMN static ST_FIELD_INFO spider_i_s_alloc_mem_fields_info[] = { Column("ID", ULong(10), NOT_NULL, "id"), @@ -54,27 +53,6 @@ static ST_FIELD_INFO spider_i_s_alloc_mem_fields_info[] = Column("FREE_MEM_COUNT", ULonglong(20), NULLABLE, "free_mem_count"), CEnd() }; -#else -static ST_FIELD_INFO spider_i_s_alloc_mem_fields_info[] = -{ - {"ID", 10, MYSQL_TYPE_LONG, 0, MY_I_S_UNSIGNED, "id", SKIP_OPEN_TABLE}, - {"FUNC_NAME", 64, MYSQL_TYPE_STRING, 0, - MY_I_S_MAYBE_NULL, "func_name", SKIP_OPEN_TABLE}, - {"FILE_NAME", 64, MYSQL_TYPE_STRING, 0, - MY_I_S_MAYBE_NULL, "file_name", SKIP_OPEN_TABLE}, - {"LINE_NO", 10, MYSQL_TYPE_LONG, 0, - MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "line_no", SKIP_OPEN_TABLE}, - {"TOTAL_ALLOC_MEM", 20, MYSQL_TYPE_LONGLONG, 0, - MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "total_alloc_mem", SKIP_OPEN_TABLE}, - {"CURRENT_ALLOC_MEM", 20, MYSQL_TYPE_LONGLONG, 0, - MY_I_S_MAYBE_NULL, "current_alloc_mem", SKIP_OPEN_TABLE}, - {"ALLOC_MEM_COUNT", 20, MYSQL_TYPE_LONGLONG, 0, - MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "alloc_mem_count", SKIP_OPEN_TABLE}, - {"FREE_MEM_COUNT", 20, MYSQL_TYPE_LONGLONG, 0, - MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "free_mem_count", SKIP_OPEN_TABLE}, - {NULL, 0, MYSQL_TYPE_STRING, 0, 0, NULL, 0} -}; -#endif } // namespace Show static int spider_i_s_alloc_mem_fill_table( @@ -183,7 +161,6 @@ struct st_maria_plugin spider_i_s_alloc_mem_maria = extern SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE]; namespace Show { -#ifdef SPIDER_I_S_USE_SHOW_FOR_COLUMN static ST_FIELD_INFO spider_i_s_wrapper_protocols_fields_info[] = { Column("WRAPPER_NAME", Varchar(NAME_CHAR_LEN), NOT_NULL, ""), @@ -192,16 +169,6 @@ static ST_FIELD_INFO spider_i_s_wrapper_protocols_fields_info[] = Column("WRAPPER_MATURITY", Varchar(12), NOT_NULL, ""), CEnd() }; -#else -static ST_FIELD_INFO spider_i_s_wrapper_protocols_fields_info[] = -{ - {"WRAPPER_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}, - {"WRAPPER_VERSION", 20, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}, - {"WRAPPER_DESCRIPTION", 65535, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE}, - {"WRAPPER_MATURITY", 12, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}, - {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0} -}; -#endif } // namespace Show static int spider_i_s_wrapper_protocols_fill_table( From 3a58291680cfd352276be4eca9a7588e1b6d2ce5 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:52:07 +0800 Subject: [PATCH 21/25] MDEV-27662 remove SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE --- storage/spider/ha_spider.cc | 2 -- storage/spider/spd_environ.h | 2 -- storage/spider/spd_table.cc | 12 ------------ 3 files changed, 16 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 60371836683..7f74d56cf6c 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -10597,7 +10597,6 @@ int ha_spider::create( ) { goto error; } -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE if ( thd->lex->create_info.or_replace() && (error_num = spider_delete_tables( @@ -10608,7 +10607,6 @@ int ha_spider::create( ) { goto error; } -#endif if ( (error_num = spider_insert_tables(table_tables, &tmp_share)) ) { diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 696d4cc8ae9..3ed95c168cd 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -20,7 +20,5 @@ #ifndef SPD_ENVIRON_INCLUDED -#define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE - #define HANDLER_HAS_DIRECT_AGGREGATE #endif /* SPD_ENVIRON_INCLUDED */ diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 41f0668bb24..ca23be650bc 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -8380,7 +8380,6 @@ int spider_discover_table_structure( SPIDER_SYS_TABLES_TABLE_NAME_LEN, TRUE, &open_tables_backup, FALSE, &error_num)) ) { -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE if (thd->lex->create_info.or_replace()) { error_num = spider_delete_tables(table_tables, @@ -8388,11 +8387,8 @@ int spider_discover_table_structure( } if (!error_num) { -#endif error_num = spider_insert_tables(table_tables, spider_share); -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE } -#endif spider_close_sys_table(thd, table_tables, &open_tables_backup, FALSE); } @@ -8496,7 +8492,6 @@ int spider_discover_table_structure( DBUG_RETURN(error_num); } -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE if (thd->lex->create_info.or_replace()) { error_num = spider_delete_tables(table_tables, @@ -8504,11 +8499,8 @@ int spider_discover_table_structure( } if (!error_num) { -#endif error_num = spider_insert_tables(table_tables, spider_share); -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE } -#endif spider_free_share_resource_only(spider_share); if (error_num) @@ -8532,7 +8524,6 @@ int spider_discover_table_structure( DBUG_RETURN(error_num); } -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE if (thd->lex->create_info.or_replace()) { error_num = spider_delete_tables(table_tables, @@ -8540,11 +8531,8 @@ int spider_discover_table_structure( } if (!error_num) { -#endif error_num = spider_insert_tables(table_tables, spider_share); -#ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE } -#endif spider_free_share_resource_only(spider_share); if (error_num) From 869c501ac363ba009a1a0b090eb56b95aeaab5e1 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:52:29 +0800 Subject: [PATCH 22/25] MDEV-27644 Spider: remove HANDLER_HAS_DIRECT_AGGREGATE --- storage/spider/ha_spider.cc | 36 ------------------- storage/spider/ha_spider.h | 8 ----- storage/spider/spd_conn.cc | 2 -- storage/spider/spd_db_conn.cc | 48 ------------------------- storage/spider/spd_db_conn.h | 6 ---- storage/spider/spd_db_include.h | 10 ------ storage/spider/spd_db_mysql.cc | 64 --------------------------------- storage/spider/spd_db_mysql.h | 6 ---- storage/spider/spd_db_oracle.cc | 20 ----------- storage/spider/spd_db_oracle.h | 6 ---- storage/spider/spd_environ.h | 2 -- storage/spider/spd_table.cc | 16 --------- storage/spider/spd_table.h | 2 -- 13 files changed, 226 deletions(-) diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 7f74d56cf6c..6f96da80ac5 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -26,9 +26,7 @@ #include "probes_mysql.h" #include "sql_class.h" #include "key.h" -#ifdef HANDLER_HAS_DIRECT_AGGREGATE #include "sql_select.h" -#endif #include "ha_partition.h" #include "spd_param.h" #include "spd_err.h" @@ -109,9 +107,7 @@ ha_spider::ha_spider( */ #endif prev_index_rnd_init = SPD_NONE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE direct_aggregate_item_first = NULL; -#endif result_link_idx = 0; result_list.have_sql_kind_backup = FALSE; result_list.sqls = NULL; @@ -125,10 +121,8 @@ ha_spider::ha_spider( result_list.set_split_read = FALSE; result_list.insert_dup_update_pushdown = FALSE; result_list.tmp_pos_row_first = NULL; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE result_list.direct_aggregate = FALSE; result_list.snap_direct_aggregate = FALSE; -#endif result_list.direct_distinct = FALSE; result_list.casual_read = NULL; result_list.use_both_key = FALSE; @@ -192,9 +186,7 @@ ha_spider::ha_spider( */ #endif prev_index_rnd_init = SPD_NONE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE direct_aggregate_item_first = NULL; -#endif result_link_idx = 0; result_list.have_sql_kind_backup = FALSE; result_list.sqls = NULL; @@ -208,10 +200,8 @@ ha_spider::ha_spider( result_list.set_split_read = FALSE; result_list.insert_dup_update_pushdown = FALSE; result_list.tmp_pos_row_first = NULL; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE result_list.direct_aggregate = FALSE; result_list.snap_direct_aggregate = FALSE; -#endif result_list.direct_distinct = FALSE; result_list.casual_read = NULL; result_list.use_both_key = FALSE; @@ -634,7 +624,6 @@ int ha_spider::close() } while (bulk_access_link_first); } #endif -#ifdef HANDLER_HAS_DIRECT_AGGREGATE while (direct_aggregate_item_first) { direct_aggregate_item_current = direct_aggregate_item_first->next; @@ -645,7 +634,6 @@ int ha_spider::close() spider_free(spider_current_trx, direct_aggregate_item_first, MYF(0)); direct_aggregate_item_first = direct_aggregate_item_current; } -#endif if (is_clone) { for (roop_count = 0; roop_count < (int) share->link_count; roop_count++) @@ -1191,7 +1179,6 @@ int ha_spider::reset() } while (bulk_access_link_first); } #endif -#ifdef HANDLER_HAS_DIRECT_AGGREGATE direct_aggregate_item_current = direct_aggregate_item_first; while (direct_aggregate_item_current) { @@ -1211,7 +1198,6 @@ int ha_spider::reset() } result_list.direct_aggregate = FALSE; result_list.snap_direct_aggregate = FALSE; -#endif result_list.direct_distinct = FALSE; store_error_num = 0; if (wide_handler) @@ -4784,10 +4770,8 @@ int ha_spider::read_multi_range_first_internal( DBUG_RETURN(error_num); result_list.use_union = TRUE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool direct_aggregate_backup = result_list.direct_aggregate; result_list.direct_aggregate = FALSE; -#endif if (result_list.direct_order_limit) { if ((error_num = @@ -4799,9 +4783,7 @@ int ha_spider::read_multi_range_first_internal( NULL, 0, SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE result_list.direct_aggregate = direct_aggregate_backup; -#endif if ((error_num = append_limit_sql_part( result_list.internal_offset, result_list.limit_num, @@ -6199,10 +6181,8 @@ int ha_spider::read_multi_range_next( DBUG_RETURN(error_num); result_list.use_union = TRUE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool direct_aggregate_backup = result_list.direct_aggregate; result_list.direct_aggregate = FALSE; -#endif if (result_list.direct_order_limit) { if ((error_num = @@ -6214,9 +6194,7 @@ int ha_spider::read_multi_range_next( NULL, 0, SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE result_list.direct_aggregate = direct_aggregate_backup; -#endif if ((error_num = append_limit_sql_part( result_list.internal_offset, result_list.limit_num, @@ -6844,14 +6822,12 @@ int ha_spider::rnd_next_internal( NULL, 0, SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (result_list.direct_aggregate) { if ((error_num = append_group_by_sql_part(NULL, 0, SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#endif result_list.desc_flg = FALSE; result_list.sorted = FALSE; result_list.key_info = NULL; @@ -7476,14 +7452,12 @@ int ha_spider::ft_read_internal( SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (result_list.direct_aggregate) { if ((error_num = append_group_by_sql_part(NULL, 0, SPIDER_SQL_TYPE_SELECT_SQL))) DBUG_RETURN(error_num); } -#endif if (sql_kinds & SPIDER_SQL_KIND_SQL) { if ((error_num = append_limit_sql_part( @@ -11419,7 +11393,6 @@ int ha_spider::info_push( DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE void ha_spider::return_record_by_parent() { DBUG_ENTER("ha_spider::return_record_by_parent"); @@ -11427,7 +11400,6 @@ void ha_spider::return_record_by_parent() spider_db_refetch_for_item_sum_funcs(this); DBUG_VOID_RETURN; } -#endif TABLE *ha_spider::get_table() { @@ -13459,7 +13431,6 @@ int ha_spider::append_condition_sql_part( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int ha_spider::append_sum_select_sql_part( ulong sql_type, const char *alias, @@ -13483,7 +13454,6 @@ int ha_spider::append_sum_select_sql_part( } DBUG_RETURN(0); } -#endif int ha_spider::append_match_select_sql_part( ulong sql_type, @@ -13541,7 +13511,6 @@ void ha_spider::set_order_to_pos_sql( DBUG_VOID_RETURN; } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int ha_spider::append_group_by_sql_part( const char *alias, uint alias_length, @@ -13565,7 +13534,6 @@ int ha_spider::append_group_by_sql_part( } DBUG_RETURN(0); } -#endif int ha_spider::append_key_order_for_merge_with_alias_sql_part( const char *alias, @@ -13576,7 +13544,6 @@ int ha_spider::append_key_order_for_merge_with_alias_sql_part( uint roop_count, dbton_id; spider_db_handler *dbton_hdl; DBUG_ENTER("ha_spider::append_key_order_for_merge_with_alias_sql_part"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (result_list.direct_aggregate) { st_select_lex *select_lex = spider_get_select_lex(this); @@ -13587,7 +13554,6 @@ int ha_spider::append_key_order_for_merge_with_alias_sql_part( DBUG_RETURN(0); } } -#endif for (roop_count = 0; roop_count < share->use_sql_dbton_count; roop_count++) { dbton_id = share->use_sql_dbton_ids[roop_count]; @@ -13637,7 +13603,6 @@ int ha_spider::append_key_order_with_alias_sql_part( uint roop_count, dbton_id; spider_db_handler *dbton_hdl; DBUG_ENTER("ha_spider::append_key_order_with_alias_sql_part"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (result_list.direct_aggregate) { st_select_lex *select_lex = spider_get_select_lex(this); @@ -13648,7 +13613,6 @@ int ha_spider::append_key_order_with_alias_sql_part( DBUG_RETURN(0); } } -#endif for (roop_count = 0; roop_count < share->use_sql_dbton_count; roop_count++) { dbton_id = share->use_sql_dbton_ids[roop_count]; diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index 9ebf460623e..a57359ce025 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -174,10 +174,8 @@ public: bool do_direct_update; uint direct_update_kinds; spider_index_rnd_init prev_index_rnd_init; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE SPIDER_ITEM_HLD *direct_aggregate_item_first; SPIDER_ITEM_HLD *direct_aggregate_item_current; -#endif ha_rows table_rows; ha_checksum checksum_val; bool checksum_null; @@ -734,9 +732,7 @@ public: uint info_type, void *info ) override; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE void return_record_by_parent() override; -#endif TABLE *get_table(); void set_ft_discard_bitmap(); void set_searched_bitmap(); @@ -923,13 +919,11 @@ public: ulong sql_type, bool test_flg ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_sum_select_sql_part( ulong sql_type, const char *alias, uint alias_length ); -#endif int append_match_select_sql_part( ulong sql_type, const char *alias, @@ -941,13 +935,11 @@ public: void set_order_to_pos_sql( ulong sql_type ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_group_by_sql_part( const char *alias, uint alias_length, ulong sql_type ); -#endif int append_key_order_for_merge_with_alias_sql_part( const char *alias, uint alias_length, diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 6b3d90bea3d..3be95db5e42 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -928,9 +928,7 @@ int spider_check_and_init_casual_read( (!thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) && ( result_list->direct_order_limit -#ifdef HANDLER_HAS_DIRECT_AGGREGATE || result_list->direct_aggregate -#endif ) ) { if (!result_list->casual_read[link_idx]) diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index f98d1d0283f..17ac2398e7a 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -26,9 +26,7 @@ #include "sql_base.h" #include "tztime.h" #include "errmsg.h" -#ifdef HANDLER_HAS_DIRECT_AGGREGATE #include "sql_select.h" -#endif #include "sql_common.h" #include #include "spd_err.h" @@ -1390,14 +1388,12 @@ int spider_db_append_select_columns( DBUG_ENTER("spider_db_append_select_columns"); if (spider->sql_kinds & SPIDER_SQL_KIND_SQL) { -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if ( result_list->direct_aggregate && (error_num = spider->append_sum_select_sql_part( SPIDER_SQL_TYPE_SELECT_SQL, NULL, 0)) ) DBUG_RETURN(error_num); -#endif if ((error_num = spider->append_match_select_sql_part( SPIDER_SQL_TYPE_SELECT_SQL, NULL, 0))) DBUG_RETURN(error_num); @@ -2536,7 +2532,6 @@ int spider_db_append_charset_name_before_string( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_refetch_for_item_sum_funcs( ha_spider *spider ) { @@ -2752,7 +2747,6 @@ int spider_db_fetch_for_item_sum_func( spider->wide_handler->trx->direct_aggregate_count++; DBUG_RETURN(0); } -#endif int spider_db_append_match_fetch( ha_spider *spider, @@ -2951,13 +2945,11 @@ int spider_db_fetch_table( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE DBUG_PRINT("info", ("spider direct_aggregate=%s", result_list->direct_aggregate ? "TRUE" : "FALSE")); result_list->snap_mrr_with_cnt = spider->mrr_with_cnt; result_list->snap_direct_aggregate = result_list->direct_aggregate; result_list->snap_row = row; -#endif /* for mrr */ if (spider->mrr_with_cnt) @@ -2967,32 +2959,26 @@ int spider_db_fetch_table( { if (!row->is_null()) spider->multi_range_hit_point = row->val_int(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (result_list->direct_aggregate) { table->status = STATUS_NOT_FOUND; DBUG_RETURN(HA_ERR_END_OF_FILE); } -#endif else DBUG_RETURN(ER_SPIDER_UNKNOWN_NUM); row->next(); } else { spider->multi_range_hit_point = 0; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE result_list->snap_mrr_with_cnt = FALSE; -#endif } } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (result_list->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif #ifdef SPIDER_HAS_GROUP_BY_HANDLER if (!spider->use_fields) @@ -3081,13 +3067,11 @@ int spider_db_fetch_key( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE DBUG_PRINT("info", ("spider direct_aggregate=%s", result_list->direct_aggregate ? "TRUE" : "FALSE")); result_list->snap_mrr_with_cnt = spider->mrr_with_cnt; result_list->snap_direct_aggregate = result_list->direct_aggregate; result_list->snap_row = row; -#endif /* for mrr */ if (spider->mrr_with_cnt) @@ -3095,26 +3079,22 @@ int spider_db_fetch_key( DBUG_PRINT("info", ("spider mrr_with_cnt")); if (!row->is_null()) spider->multi_range_hit_point = row->val_int(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (result_list->direct_aggregate) { table->status = STATUS_NOT_FOUND; DBUG_RETURN(HA_ERR_END_OF_FILE); } -#endif else DBUG_RETURN(ER_SPIDER_UNKNOWN_NUM); row->next(); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (result_list->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif if ((error_num = spider_db_append_match_fetch(spider, spider->ft_first, spider->ft_current, row))) @@ -3198,13 +3178,11 @@ int spider_db_fetch_minimum_columns( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE DBUG_PRINT("info", ("spider direct_aggregate=%s", result_list->direct_aggregate ? "TRUE" : "FALSE")); result_list->snap_mrr_with_cnt = spider->mrr_with_cnt; result_list->snap_direct_aggregate = result_list->direct_aggregate; result_list->snap_row = row; -#endif /* for mrr */ if (spider->mrr_with_cnt) @@ -3212,26 +3190,22 @@ int spider_db_fetch_minimum_columns( DBUG_PRINT("info", ("spider mrr_with_cnt")); if (!row->is_null()) spider->multi_range_hit_point = row->val_int(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (result_list->direct_aggregate) { table->status = STATUS_NOT_FOUND; DBUG_RETURN(HA_ERR_END_OF_FILE); } -#endif else DBUG_RETURN(ER_SPIDER_UNKNOWN_NUM); row->next(); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (result_list->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif if ((error_num = spider_db_append_match_fetch(spider, spider->ft_first, spider->ft_current, row))) @@ -5580,9 +5554,7 @@ void spider_db_create_position( current->use_position = TRUE; pos->use_position = TRUE; pos->mrr_with_cnt = spider->mrr_with_cnt; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE pos->direct_aggregate = result_list->direct_aggregate; -#endif pos->sql_kind = spider->sql_kind[spider->result_link_idx]; pos->position_bitmap = spider->wide_handler->position_bitmap; pos->ft_first = spider->ft_first; @@ -5648,7 +5620,6 @@ int spider_db_seek_tmp_table( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (!spider->result_list.in_cmp_ref) { DBUG_PRINT("info", ("spider direct_aggregate=%s", @@ -5657,7 +5628,6 @@ int spider_db_seek_tmp_table( spider->result_list.snap_direct_aggregate = pos->direct_aggregate; spider->result_list.snap_row = row; } -#endif /* for mrr */ if (pos->mrr_with_cnt) @@ -5667,20 +5637,16 @@ int spider_db_seek_tmp_table( { row->next(); } else { -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.snap_mrr_with_cnt = FALSE; -#endif } } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (pos->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif if ((error_num = spider_db_append_match_fetch(spider, pos->ft_first, pos->ft_current, row))) @@ -5740,7 +5706,6 @@ int spider_db_seek_tmp_key( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (!spider->result_list.in_cmp_ref) { DBUG_PRINT("info", ("spider direct_aggregate=%s", @@ -5749,7 +5714,6 @@ int spider_db_seek_tmp_key( spider->result_list.snap_direct_aggregate = pos->direct_aggregate; spider->result_list.snap_row = row; } -#endif /* for mrr */ if (pos->mrr_with_cnt) @@ -5758,14 +5722,12 @@ int spider_db_seek_tmp_key( row->next(); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (pos->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif if ((error_num = spider_db_append_match_fetch(spider, pos->ft_first, pos->ft_current, row))) @@ -5825,7 +5787,6 @@ int spider_db_seek_tmp_minimum_columns( } DBUG_PRINT("info", ("spider row=%p", row)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (!spider->result_list.in_cmp_ref) { DBUG_PRINT("info", ("spider direct_aggregate=%s", @@ -5834,7 +5795,6 @@ int spider_db_seek_tmp_minimum_columns( spider->result_list.snap_direct_aggregate = pos->direct_aggregate; spider->result_list.snap_row = row; } -#endif /* for mrr */ if (pos->mrr_with_cnt) @@ -5843,14 +5803,12 @@ int spider_db_seek_tmp_minimum_columns( row->next(); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE /* for direct_aggregate */ if (pos->direct_aggregate) { if ((error_num = spider_db_fetch_for_item_sum_funcs(row, spider))) DBUG_RETURN(error_num); } -#endif if ((error_num = spider_db_append_match_fetch(spider, pos->ft_first, pos->ft_current, row))) @@ -8554,11 +8512,9 @@ int spider_db_print_item_type( case Item::FUNC_ITEM: DBUG_RETURN(spider_db_open_item_func((Item_func *) item, spider, str, alias, alias_length, dbton_id, use_fields, fields)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE case Item::SUM_FUNC_ITEM: DBUG_RETURN(spider_db_open_item_sum_func((Item_sum *)item, spider, str, alias, alias_length, dbton_id, use_fields, fields)); -#endif case Item::COND_ITEM: DBUG_RETURN(spider_db_open_item_cond((Item_cond *) item, spider, str, alias, alias_length, dbton_id, use_fields, fields)); @@ -8731,7 +8687,6 @@ int spider_db_open_item_func( item_func, spider, str, alias, alias_length, use_fields, fields)); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -8746,7 +8701,6 @@ int spider_db_open_item_sum_func( DBUG_RETURN(spider_dbton[dbton_id].db_util->open_item_sum_func( item_sum, spider, str, alias, alias_length, use_fields, fields)); } -#endif int spider_db_open_item_ident( Item_ident *item_ident, @@ -9536,7 +9490,6 @@ int spider_db_append_update_columns( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_db_check_select_colum_in_group( st_select_lex *select_lex, Field *field @@ -9559,7 +9512,6 @@ bool spider_db_check_select_colum_in_group( } DBUG_RETURN(FALSE); } -#endif uint spider_db_check_ft_idx( Item_func *item_func, diff --git a/storage/spider/spd_db_conn.h b/storage/spider/spd_db_conn.h index 5b8dc65b262..aa451b861d2 100644 --- a/storage/spider/spd_db_conn.h +++ b/storage/spider/spd_db_conn.h @@ -496,7 +496,6 @@ int spider_db_append_charset_name_before_string( CHARSET_INFO *cs ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_refetch_for_item_sum_funcs( ha_spider *spider ); @@ -511,7 +510,6 @@ int spider_db_fetch_for_item_sum_func( Item_sum *item_sum, ha_spider *spider ); -#endif int spider_db_append_match_fetch( ha_spider *spider, @@ -940,7 +938,6 @@ int spider_db_open_item_func( spider_fields *fields ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -951,7 +948,6 @@ int spider_db_open_item_sum_func( bool use_fields, spider_fields *fields ); -#endif int spider_db_open_item_ident( Item_ident *item_ident, @@ -1062,12 +1058,10 @@ int spider_db_append_update_columns( spider_fields *fields ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_db_check_select_colum_in_group( st_select_lex *select_lex, Field *field ); -#endif uint spider_db_check_ft_idx( Item_func *item_func, diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index d6d1d514ac6..3946ea4911d 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -765,7 +765,6 @@ public: bool use_fields, spider_fields *fields ) = 0; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE virtual int open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -775,7 +774,6 @@ public: bool use_fields, spider_fields *fields ) = 0; -#endif virtual int append_escaped_util( spider_string *to, String *from @@ -1275,26 +1273,22 @@ public: const char *alias, uint alias_length ) = 0; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE virtual int append_sum_select_part( ulong sql_type, const char *alias, uint alias_length ) = 0; -#endif virtual void set_order_pos( ulong sql_type ) = 0; virtual void set_order_to_pos( ulong sql_type ) = 0; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE virtual int append_group_by_part( const char *alias, uint alias_length, ulong sql_type ) = 0; -#endif virtual int append_key_order_for_merge_with_alias_part( const char *alias, uint alias_length, @@ -1717,9 +1711,7 @@ typedef struct st_spider_position uint pos_mode; bool use_position; bool mrr_with_cnt; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool direct_aggregate; -#endif uint sql_kind; uchar *position_bitmap; st_spider_ft_info *ft_first; @@ -1822,12 +1814,10 @@ typedef struct st_spider_result_list /* the limit_offeset, without where condition */ bool direct_limit_offset; bool direct_distinct; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool direct_aggregate; bool snap_mrr_with_cnt; bool snap_direct_aggregate; SPIDER_DB_ROW *snap_row; -#endif bool in_cmp_ref; bool set_split_read; bool insert_dup_update_pushdown; diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index a676955d1fd..848e484e454 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -25,9 +25,7 @@ #include "sql_analyse.h" #include "sql_base.h" #include "tztime.h" -#ifdef HANDLER_HAS_DIRECT_AGGREGATE #include "sql_select.h" -#endif #include "sql_common.h" #include #include @@ -6688,7 +6686,6 @@ int spider_db_mbase_util::print_item_func( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_mbase_util::open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -6804,7 +6801,6 @@ int spider_db_mbase_util::open_item_sum_func( } DBUG_RETURN(0); } -#endif int spider_db_mbase_util::append_escaped_util( spider_string *to, @@ -8643,14 +8639,12 @@ int spider_mbase_handler::append_tmp_table_and_sql_for_bka( SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(&sql, SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#endif DBUG_RETURN(0); } @@ -8889,14 +8883,12 @@ int spider_mbase_handler::append_union_table_and_sql_for_bka( ) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(&tmp_sql, SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#endif DBUG_RETURN(0); } @@ -9504,13 +9496,10 @@ int spider_mbase_handler::append_table_select_part( int spider_mbase_handler::append_table_select( spider_string *str ) { -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_table_select"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9549,13 +9538,10 @@ int spider_mbase_handler::append_table_select( } str->length(str->length() - SPIDER_SQL_COMMA_LEN); } else { -#endif table_name_pos = str->length() + mysql_share->table_select_pos; if (str->append(*(mysql_share->table_select))) DBUG_RETURN(HA_ERR_OUT_OF_MEM); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif DBUG_RETURN(0); } @@ -9583,13 +9569,10 @@ int spider_mbase_handler::append_key_select( spider_string *str, uint idx ) { -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_key_select"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9633,13 +9616,10 @@ int spider_mbase_handler::append_key_select( } str->length(str->length() - SPIDER_SQL_COMMA_LEN); } else { -#endif table_name_pos = str->length() + mysql_share->key_select_pos[idx]; if (str->append(mysql_share->key_select[idx])) DBUG_RETURN(HA_ERR_OUT_OF_MEM); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif DBUG_RETURN(0); } @@ -9670,13 +9650,10 @@ int spider_mbase_handler::append_minimum_select( Field **field; int field_length; bool appended = FALSE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_minimum_select"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9686,7 +9663,6 @@ int spider_mbase_handler::append_minimum_select( select_lex = NULL; } } -#endif minimum_select_bitmap_create(); for (field = table->field; *field; field++) { @@ -9697,7 +9673,6 @@ int spider_mbase_handler::append_minimum_select( */ field_length = mysql_share->column_name_str[(*field)->field_index].length(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (select_lex && !spider_db_check_select_colum_in_group(select_lex, *field)) { @@ -9710,14 +9685,11 @@ int spider_mbase_handler::append_minimum_select( mysql_share->append_column_name(str, (*field)->field_index); str->q_append(SPIDER_SQL_CLOSE_PAREN_STR, SPIDER_SQL_CLOSE_PAREN_LEN); } else { -#endif if (str->reserve(field_length + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + SPIDER_SQL_COMMA_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); mysql_share->append_column_name(str, (*field)->field_index); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN); appended = TRUE; } @@ -9740,13 +9712,10 @@ int spider_mbase_handler::append_table_select_with_alias( TABLE *table = spider->get_table(); Field **field; int field_length; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_table_select_with_alias"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9756,12 +9725,10 @@ int spider_mbase_handler::append_table_select_with_alias( select_lex = NULL; } } -#endif for (field = table->field; *field; field++) { field_length = mysql_share->column_name_str[(*field)->field_index].length(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (select_lex && !spider_db_check_select_colum_in_group(select_lex, *field)) { @@ -9775,15 +9742,12 @@ int spider_mbase_handler::append_table_select_with_alias( mysql_share->append_column_name(str, (*field)->field_index); str->q_append(SPIDER_SQL_CLOSE_PAREN_STR, SPIDER_SQL_CLOSE_PAREN_LEN); } else { -#endif if (str->reserve(alias_length + field_length + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + SPIDER_SQL_COMMA_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(alias, alias_length); mysql_share->append_column_name(str, (*field)->field_index); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN); } str->length(str->length() - SPIDER_SQL_COMMA_LEN); @@ -9800,13 +9764,10 @@ int spider_mbase_handler::append_key_select_with_alias( Field *field; uint part_num; int field_length; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_key_select_with_alias"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9816,13 +9777,11 @@ int spider_mbase_handler::append_key_select_with_alias( select_lex = NULL; } } -#endif for (key_part = key_info->key_part, part_num = 0; part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++) { field = key_part->field; field_length = mysql_share->column_name_str[field->field_index].length(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (select_lex && !spider_db_check_select_colum_in_group(select_lex, field)) { @@ -9836,15 +9795,12 @@ int spider_mbase_handler::append_key_select_with_alias( mysql_share->append_column_name(str, field->field_index); str->q_append(SPIDER_SQL_CLOSE_PAREN_STR, SPIDER_SQL_CLOSE_PAREN_LEN); } else { -#endif if (str->reserve(alias_length + field_length + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + SPIDER_SQL_COMMA_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(alias, alias_length); mysql_share->append_column_name(str, field->field_index); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN); } str->length(str->length() - SPIDER_SQL_COMMA_LEN); @@ -9860,13 +9816,10 @@ int spider_mbase_handler::append_minimum_select_with_alias( Field **field; int field_length; bool appended = FALSE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE st_select_lex *select_lex = NULL; bool sgb = (spider->result_list.direct_aggregate && spider_param_strict_group_by(current_thd, (strict_group_by ? 1 : 0)) == 1); -#endif DBUG_ENTER("spider_mbase_handler::append_minimum_select_with_alias"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (sgb) { select_lex = spider_get_select_lex(spider); @@ -9876,7 +9829,6 @@ int spider_mbase_handler::append_minimum_select_with_alias( select_lex = NULL; } } -#endif minimum_select_bitmap_create(); for (field = table->field; *field; field++) { @@ -9887,7 +9839,6 @@ int spider_mbase_handler::append_minimum_select_with_alias( */ field_length = mysql_share->column_name_str[(*field)->field_index].length(); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (select_lex && !spider_db_check_select_colum_in_group(select_lex, *field)) { @@ -9901,15 +9852,12 @@ int spider_mbase_handler::append_minimum_select_with_alias( mysql_share->append_column_name(str, (*field)->field_index); str->q_append(SPIDER_SQL_CLOSE_PAREN_STR, SPIDER_SQL_CLOSE_PAREN_LEN); } else { -#endif if (str->reserve(alias_length + field_length + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + SPIDER_SQL_COMMA_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(alias, alias_length); mysql_share->append_column_name(str, (*field)->field_index); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE } -#endif str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN); appended = TRUE; } @@ -9932,13 +9880,11 @@ int spider_mbase_handler::append_select_columns_with_alias( int error_num; SPIDER_RESULT_LIST *result_list = &spider->result_list; DBUG_ENTER("spider_mbase_handler::append_select_columns_with_alias"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if ( result_list->direct_aggregate && (error_num = append_sum_select(str, alias, alias_length)) ) DBUG_RETURN(error_num); -#endif if ((error_num = append_match_select(str, alias, alias_length))) DBUG_RETURN(error_num); if (!spider->select_column_mode) @@ -11098,7 +11044,6 @@ int spider_mbase_handler::append_match_select( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_mbase_handler::append_sum_select_part( ulong sql_type, const char *alias, @@ -11145,7 +11090,6 @@ int spider_mbase_handler::append_sum_select( } DBUG_RETURN(0); } -#endif void spider_mbase_handler::set_order_pos( ulong sql_type @@ -11199,7 +11143,6 @@ void spider_mbase_handler::set_order_to_pos( DBUG_VOID_RETURN; } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_mbase_handler::append_group_by_part( const char *alias, uint alias_length, @@ -11262,7 +11205,6 @@ int spider_mbase_handler::append_group_by( } DBUG_RETURN(0); } -#endif int spider_mbase_handler::append_key_order_for_merge_with_alias_part( const char *alias, @@ -11308,14 +11250,12 @@ int spider_mbase_handler::append_key_order_for_merge_with_alias( uint key_name_length; DBUG_ENTER("spider_mbase_handler::append_key_order_for_merge_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { int error_num; if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif if (table->s->primary_key < MAX_KEY) { /* sort by primary key */ @@ -11424,13 +11364,11 @@ int spider_mbase_handler::append_key_order_for_direct_order_limit_with_alias( longlong offset_limit; DBUG_ENTER("spider_mbase_handler::append_key_order_for_direct_order_limit_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif spider_get_select_limit(spider, &select_lex, &select_limit, &offset_limit); if (select_lex->order_list.first) @@ -11526,14 +11464,12 @@ int spider_mbase_handler::append_key_order_with_alias( uint key_name_length; DBUG_ENTER("spider_mbase_handler::append_key_order_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { int error_num; if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif if (result_list->sorted == TRUE) { if (result_list->desc_flg == TRUE) diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index 5124dc61180..7eeb5bed7fb 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -145,7 +145,6 @@ protected: spider_fields *fields ); public: -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -155,7 +154,6 @@ public: bool use_fields, spider_fields *fields ) override; -#endif int append_escaped_util( spider_string *to, String *from @@ -1068,7 +1066,6 @@ public: const char *alias, uint alias_length ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_sum_select_part( ulong sql_type, const char *alias, @@ -1079,14 +1076,12 @@ public: const char *alias, uint alias_length ); -#endif void set_order_pos( ulong sql_type ) override; void set_order_to_pos( ulong sql_type ) override; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_group_by_part( const char *alias, uint alias_length, @@ -1097,7 +1092,6 @@ public: const char *alias, uint alias_length ); -#endif int append_key_order_for_merge_with_alias_part( const char *alias, uint alias_length, diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index f390e5d80fb..34d0ff58fcc 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -22,9 +22,7 @@ #include "probes_mysql.h" #include "sql_partition.h" #include "sql_analyse.h" -#ifdef HANDLER_HAS_DIRECT_AGGREGATE #include "sql_select.h" -#endif #ifdef HAVE_ORACLE_OCI #if (defined(WIN32) || defined(_WIN32) || defined(WINDOWS) || defined(_WINDOWS)) @@ -4221,7 +4219,6 @@ int spider_db_oracle_util::open_item_func( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_db_oracle_util::open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -4296,7 +4293,6 @@ int spider_db_oracle_util::open_item_sum_func( } DBUG_RETURN(0); } -#endif size_t spider_db_oracle_util::escape_string( char *to, @@ -5731,14 +5727,12 @@ int spider_oracle_handler::append_tmp_table_and_sql_for_bka( SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(&sql, SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#endif DBUG_RETURN(0); } @@ -5971,14 +5965,12 @@ int spider_oracle_handler::append_union_table_and_sql_for_bka( &tmp_sql, SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE else if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(&tmp_sql, SPIDER_SQL_B_DOT_STR, SPIDER_SQL_B_DOT_LEN))) DBUG_RETURN(error_num); } -#endif DBUG_RETURN(0); } @@ -6702,13 +6694,11 @@ int spider_oracle_handler::append_select_columns_with_alias( int error_num; SPIDER_RESULT_LIST *result_list = &spider->result_list; DBUG_ENTER("spider_oracle_handler::append_select_columns_with_alias"); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if ( result_list->direct_aggregate && (error_num = append_sum_select(str, alias, alias_length)) ) DBUG_RETURN(error_num); -#endif if ((error_num = append_match_select(str, alias, alias_length))) DBUG_RETURN(error_num); if (!spider->select_column_mode) @@ -7826,7 +7816,6 @@ int spider_oracle_handler::append_match_select( DBUG_RETURN(0); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_oracle_handler::append_sum_select_part( ulong sql_type, const char *alias, @@ -7873,7 +7862,6 @@ int spider_oracle_handler::append_sum_select( } DBUG_RETURN(0); } -#endif void spider_oracle_handler::set_order_pos( ulong sql_type @@ -7927,7 +7915,6 @@ void spider_oracle_handler::set_order_to_pos( DBUG_VOID_RETURN; } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int spider_oracle_handler::append_group_by_part( const char *alias, uint alias_length, @@ -7990,7 +7977,6 @@ int spider_oracle_handler::append_group_by( } DBUG_RETURN(0); } -#endif int spider_oracle_handler::append_key_order_for_merge_with_alias_part( const char *alias, @@ -8036,14 +8022,12 @@ int spider_oracle_handler::append_key_order_for_merge_with_alias( uint key_name_length; DBUG_ENTER("spider_oracle_handler::append_key_order_for_merge_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { int error_num; if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif if ( spider->result_list.direct_order_limit || spider->result_list.internal_limit < 9223372036854775807LL || @@ -8266,13 +8250,11 @@ int spider_oracle_handler::append_key_order_for_direct_order_limit_with_alias( longlong offset_limit; DBUG_ENTER("spider_oracle_handler::append_key_order_for_direct_order_limit_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif spider_get_select_limit(spider, &select_lex, &select_limit, &offset_limit); if ( @@ -8491,14 +8473,12 @@ int spider_oracle_handler::append_key_order_with_alias( uint key_name_length; DBUG_ENTER("spider_oracle_handler::append_key_order_with_alias"); DBUG_PRINT("info",("spider this=%p", this)); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE if (spider->result_list.direct_aggregate) { int error_num; if ((error_num = append_group_by(str, alias, alias_length))) DBUG_RETURN(error_num); } -#endif if ( spider->result_list.direct_order_limit || spider->result_list.internal_limit < 9223372036854775807LL || diff --git a/storage/spider/spd_db_oracle.h b/storage/spider/spd_db_oracle.h index 8acffb5c150..d47bc9f7ea6 100644 --- a/storage/spider/spd_db_oracle.h +++ b/storage/spider/spd_db_oracle.h @@ -125,7 +125,6 @@ public: bool use_fields, spider_fields *fields ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int open_item_sum_func( Item_sum *item_sum, ha_spider *spider, @@ -135,7 +134,6 @@ public: bool use_fields, spider_fields *fields ); -#endif size_t escape_string( char *to, const char *from, @@ -957,7 +955,6 @@ public: const char *alias, uint alias_length ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_sum_select_part( ulong sql_type, const char *alias, @@ -968,14 +965,12 @@ public: const char *alias, uint alias_length ); -#endif void set_order_pos( ulong sql_type ); void set_order_to_pos( ulong sql_type ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE int append_group_by_part( const char *alias, uint alias_length, @@ -986,7 +981,6 @@ public: const char *alias, uint alias_length ); -#endif int append_key_order_for_merge_with_alias_part( const char *alias, uint alias_length, diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h index 3ed95c168cd..8d6e7327919 100644 --- a/storage/spider/spd_environ.h +++ b/storage/spider/spd_environ.h @@ -19,6 +19,4 @@ */ #ifndef SPD_ENVIRON_INCLUDED - -#define HANDLER_HAS_DIRECT_AGGREGATE #endif /* SPD_ENVIRON_INCLUDED */ diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index ca23be650bc..05603a5dd7e 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -7840,9 +7840,7 @@ bool spider_check_direct_order_limit( DBUG_PRINT("info",("spider with distinct")); spider->result_list.direct_distinct = TRUE; } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.direct_aggregate = spider_param_direct_aggregate(thd); -#endif DBUG_PRINT("info",("spider select_limit=%lld", select_limit)); DBUG_PRINT("info",("spider offset_limit=%lld", offset_limit)); if ( @@ -7861,22 +7859,17 @@ bool spider_check_direct_order_limit( DBUG_PRINT("info",("spider first_check is FALSE")); first_check = FALSE; spider->result_list.direct_distinct = FALSE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.direct_aggregate = FALSE; -#endif } else if (spider_db_append_condition(spider, NULL, 0, TRUE)) { DBUG_PRINT("info",("spider FALSE by condition")); first_check = FALSE; spider->result_list.direct_distinct = FALSE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.direct_aggregate = FALSE; -#endif } else if (spider->sql_kinds & SPIDER_SQL_KIND_HANDLER) { DBUG_PRINT("info",("spider sql_kinds with SPIDER_SQL_KIND_HANDLER")); spider->result_list.direct_distinct = FALSE; -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.direct_aggregate = FALSE; } else if ( !select_lex->group_list.elements && @@ -7914,7 +7907,6 @@ bool spider_check_direct_order_limit( first_check = FALSE; spider->result_list.direct_distinct = FALSE; } -#endif } longlong direct_order_limit = spider_param_direct_order_limit(thd, @@ -7926,10 +7918,8 @@ bool spider_check_direct_order_limit( first_check ? "TRUE" : "FALSE")); DBUG_PRINT("info",("spider (select_lex->options & OPTION_FOUND_ROWS)=%s", select_lex && (select_lex->options & OPTION_FOUND_ROWS) ? "TRUE" : "FALSE")); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE DBUG_PRINT("info",("spider direct_aggregate=%s", spider->result_list.direct_aggregate ? "TRUE" : "FALSE")); -#endif DBUG_PRINT("info",("spider select_lex->group_list.elements=%u", select_lex ? select_lex->group_list.elements : 0)); DBUG_PRINT("info",("spider select_lex->with_sum_func=%s", @@ -7943,9 +7933,7 @@ bool spider_check_direct_order_limit( !select_lex->explicit_limit || (select_lex->options & OPTION_FOUND_ROWS) || ( -#ifdef HANDLER_HAS_DIRECT_AGGREGATE !spider->result_list.direct_aggregate && -#endif ( select_lex->group_list.elements || select_lex->with_sum_func @@ -7979,7 +7967,6 @@ bool spider_check_direct_order_limit( DBUG_RETURN(FALSE); } -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_all_part_in_order( ORDER *order, TABLE *table @@ -8056,7 +8043,6 @@ Field *spider_field_exchange( DBUG_PRINT("info",("spider out field=%p", field)); DBUG_RETURN(field); } -#endif int spider_set_direct_limit_offset( ha_spider *spider @@ -8089,9 +8075,7 @@ int spider_set_direct_limit_offset( if ( spider->wide_handler->sql_command != SQLCOM_SELECT || -#ifdef HANDLER_HAS_DIRECT_AGGREGATE spider->result_list.direct_aggregate || -#endif spider->result_list.direct_order_limit || spider->prev_index_rnd_init != SPD_RND // must be RND_INIT and not be INDEX_INIT ) diff --git a/storage/spider/spd_table.h b/storage/spider/spd_table.h index 8bca3c047fa..e6230110dd6 100644 --- a/storage/spider/spd_table.h +++ b/storage/spider/spd_table.h @@ -431,7 +431,6 @@ bool spider_check_direct_order_limit( ha_spider *spider ); -#ifdef HANDLER_HAS_DIRECT_AGGREGATE bool spider_all_part_in_order( ORDER *order, TABLE *table @@ -441,7 +440,6 @@ Field *spider_field_exchange( handler *handler, Field *field ); -#endif int spider_set_direct_limit_offset( ha_spider *spider From 5d54e86c22000244cc09bd1fffbfa0674f81fcb8 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Mon, 17 Jun 2024 10:19:30 +0800 Subject: [PATCH 23/25] MDEV-26178 spider: delete spd_environ.h It's virtually empty now --- storage/spider/ha_spider.cc | 1 - storage/spider/spd_conn.cc | 1 - storage/spider/spd_copy_tables.cc | 1 - storage/spider/spd_db_conn.cc | 1 - storage/spider/spd_db_include.cc | 1 - storage/spider/spd_db_mysql.cc | 1 - storage/spider/spd_db_oracle.cc | 1 - storage/spider/spd_direct_sql.cc | 1 - storage/spider/spd_environ.h | 22 ---------------------- storage/spider/spd_group_by_handler.cc | 1 - storage/spider/spd_i_s.cc | 1 - storage/spider/spd_malloc.cc | 1 - storage/spider/spd_param.cc | 1 - storage/spider/spd_ping_table.cc | 1 - storage/spider/spd_sys_table.cc | 1 - storage/spider/spd_table.cc | 1 - storage/spider/spd_trx.cc | 1 - storage/spider/spd_udf.cc | 1 - 18 files changed, 39 deletions(-) delete mode 100644 storage/spider/spd_environ.h diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 6f96da80ac5..814eee073be 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -21,7 +21,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 3be95db5e42..29c8635e98d 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_copy_tables.cc b/storage/spider/spd_copy_tables.cc index 2a3b848c3ce..d76c8e425ec 100644 --- a/storage/spider/spd_copy_tables.cc +++ b/storage/spider/spd_copy_tables.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index 17ac2398e7a..046e024522f 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_db_include.cc b/storage/spider/spd_db_include.cc index d5344066017..b082f2d3c8b 100644 --- a/storage/spider/spd_db_include.cc +++ b/storage/spider/spd_db_include.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 848e484e454..9118e3fb7c1 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index 34d0ff58fcc..b06be249a4f 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_partition.h" diff --git a/storage/spider/spd_direct_sql.cc b/storage/spider/spd_direct_sql.cc index 49a6edc6d26..e136c302126 100644 --- a/storage/spider/spd_direct_sql.cc +++ b/storage/spider/spd_direct_sql.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_environ.h b/storage/spider/spd_environ.h deleted file mode 100644 index 8d6e7327919..00000000000 --- a/storage/spider/spd_environ.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright (C) 2008-2020 Kentoku Shiba - Copyright (C) 2017-2020 MariaDB corp - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* - Define functionality offered by MySQL or MariaDB -*/ - -#ifndef SPD_ENVIRON_INCLUDED -#endif /* SPD_ENVIRON_INCLUDED */ diff --git a/storage/spider/spd_group_by_handler.cc b/storage/spider/spd_group_by_handler.cc index 37bfc7ea8a7..9b71f5bc13f 100644 --- a/storage/spider/spd_group_by_handler.cc +++ b/storage/spider/spd_group_by_handler.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_i_s.cc b/storage/spider/spd_i_s.cc index 2db7bd0c374..0b44c9440e3 100644 --- a/storage/spider/spd_i_s.cc +++ b/storage/spider/spd_i_s.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_malloc.cc b/storage/spider/spd_malloc.cc index 395fde5fd8d..96fa4cf89b9 100644 --- a/storage/spider/spd_malloc.cc +++ b/storage/spider/spd_malloc.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_param.cc b/storage/spider/spd_param.cc index 371dd1215c9..41a065bfd29 100644 --- a/storage/spider/spd_param.cc +++ b/storage/spider/spd_param.cc @@ -37,7 +37,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc index 30f2814f8e1..055501925b5 100644 --- a/storage/spider/spd_ping_table.cc +++ b/storage/spider/spd_ping_table.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_sys_table.cc b/storage/spider/spd_sys_table.cc index d4c453bba87..9e39ffc8d90 100644 --- a/storage/spider/spd_sys_table.cc +++ b/storage/spider/spd_sys_table.cc @@ -16,7 +16,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 05603a5dd7e..03ff98740b7 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "my_getopt.h" diff --git a/storage/spider/spd_trx.cc b/storage/spider/spd_trx.cc index 05a6fead947..f04c3659d6f 100644 --- a/storage/spider/spd_trx.cc +++ b/storage/spider/spd_trx.cc @@ -17,7 +17,6 @@ #define MYSQL_SERVER 1 #include #include "mysql_version.h" -#include "spd_environ.h" #include "sql_priv.h" #include "probes_mysql.h" #include "sql_class.h" diff --git a/storage/spider/spd_udf.cc b/storage/spider/spd_udf.cc index 3f7cc65477f..023285cb4f1 100644 --- a/storage/spider/spd_udf.cc +++ b/storage/spider/spd_udf.cc @@ -15,7 +15,6 @@ #define MYSQL_SERVER 1 #include -#include "spd_environ.h" #include "mysql.h" #include "spd_udf.h" From a81f419b06df996e047d33c24db9a5cf695e6ded Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:55:02 +0800 Subject: [PATCH 24/25] MDEV-27648 remove #define HASH_UPDATE_WITH_HASH_VALUE The functions called in blocks protected by this macro remain undefined as of 11.5 c96b23f99409cad9c0dac5040561136211486995 --- storage/spider/spd_conn.cc | 197 ------------------------------- storage/spider/spd_db_include.h | 3 - storage/spider/spd_db_mysql.cc | 26 ---- storage/spider/spd_db_oracle.cc | 26 ---- storage/spider/spd_direct_sql.cc | 10 -- storage/spider/spd_ping_table.cc | 11 -- storage/spider/spd_table.cc | 79 ------------- storage/spider/spd_trx.cc | 57 --------- 8 files changed, 409 deletions(-) diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 29c8635e98d..7c65f1d02eb 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -309,12 +309,7 @@ void spider_free_conn_from_trx( if (another) { ha_spider *next_spider; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&trx->trx_another_conn_hash, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&trx->trx_another_conn_hash, (uchar*) conn); -#endif spider = (ha_spider*) conn->another_ha_first; while (spider) { @@ -329,12 +324,7 @@ void spider_free_conn_from_trx( conn->another_ha_first = NULL; conn->another_ha_last = NULL; } else { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&trx->trx_conn_hash, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&trx->trx_conn_hash, (uchar*) conn); -#endif } if ( @@ -354,12 +344,7 @@ void spider_free_conn_from_trx( } else { pthread_mutex_lock(&spider_conn_mutex); uint old_elements = spider_open_connections.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_open_connections, - conn->conn_key_hash_value, (uchar*) conn)) -#else if (my_hash_insert(&spider_open_connections, (uchar*) conn)) -#endif { pthread_mutex_unlock(&spider_conn_mutex); spider_free_conn(conn); @@ -721,12 +706,7 @@ SPIDER_CONN *spider_get_conn( } } } else { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_connections, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&spider_open_connections, (uchar*) conn); -#endif pthread_mutex_unlock(&spider_conn_mutex); DBUG_PRINT("info",("spider get global conn")); if (spider) @@ -756,13 +736,7 @@ SPIDER_CONN *spider_get_conn( if (another) { uint old_elements = trx->trx_another_conn_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&trx->trx_another_conn_hash, - share->conn_keys_hash_value[link_idx], - (uchar*) conn)) -#else if (my_hash_insert(&trx->trx_another_conn_hash, (uchar*) conn)) -#endif { spider_free_conn(conn); *error_num = HA_ERR_OUT_OF_MEM; @@ -777,13 +751,7 @@ SPIDER_CONN *spider_get_conn( } } else { uint old_elements = trx->trx_conn_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&trx->trx_conn_hash, - share->conn_keys_hash_value[link_idx], - (uchar*) conn)) -#else if (my_hash_insert(&trx->trx_conn_hash, (uchar*) conn)) -#endif { spider_free_conn(conn); *error_num = HA_ERR_OUT_OF_MEM; @@ -1133,12 +1101,7 @@ int spider_conn_queue_and_merge_loop_check( *tmp_name = '-'; ++tmp_name; memcpy(tmp_name, lcptr->from_value.str, lcptr->from_value.length + 1); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (unlikely(my_hash_insert_with_hash_value(&conn->loop_check_queue, - lcptr->hash_value_to, (uchar *) lcptr))) -#else if (unlikely(my_hash_insert(&conn->loop_check_queue, (uchar *) lcptr))) -#endif { goto error_hash_insert_queue; } @@ -1196,33 +1159,16 @@ int spider_conn_queue_and_merge_loop_check( memcpy(merged_value, lcptr->from_value.str, lcptr->from_value.length + 1); DBUG_PRINT("info", ("spider free lcqptr")); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&conn->loop_checked, - lcqptr->hash_value_full, (uchar *) lcqptr); - my_hash_delete_with_hash_value(&conn->loop_check_queue, - lcqptr->hash_value_to, (uchar *) lcqptr); -#else my_hash_delete(&conn->loop_checked, (uchar*) lcqptr); my_hash_delete(&conn->loop_check_queue, (uchar*) lcqptr); -#endif spider_free(spider_current_trx, lcqptr, MYF(0)); lcptr = lcrptr; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (unlikely(my_hash_insert_with_hash_value(&conn->loop_checked, - lcptr->hash_value_full, (uchar *) lcptr))) -#else if (unlikely(my_hash_insert(&conn->loop_checked, (uchar *) lcptr))) -#endif { goto error_hash_insert; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (unlikely(my_hash_insert_with_hash_value(&conn->loop_check_queue, - lcptr->hash_value_to, (uchar *) lcptr))) -#else if (unlikely(my_hash_insert(&conn->loop_check_queue, (uchar *) lcptr))) -#endif { goto error_hash_insert_queue; } @@ -1232,12 +1178,7 @@ int spider_conn_queue_and_merge_loop_check( error_alloc_loop_check_replace: error_hash_insert_queue: -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&conn->loop_checked, - lcptr->hash_value_full, (uchar *) lcptr); -#else my_hash_delete(&conn->loop_checked, (uchar*) lcptr); -#endif error_hash_insert: spider_free(spider_current_trx, lcptr, MYF(0)); pthread_mutex_unlock(&conn->loop_check_mutex); @@ -1257,12 +1198,7 @@ int spider_conn_reset_queue_loop_check( if (!lcptr->flag) { DBUG_PRINT("info", ("spider free lcptr")); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&conn->loop_checked, - lcptr->hash_value_full, (uchar *) lcptr); -#else my_hash_delete(&conn->loop_checked, (uchar*) lcptr); -#endif spider_free(spider_current_trx, lcptr, MYF(0)); } ++l; @@ -1424,12 +1360,7 @@ int spider_conn_queue_loop_check( if (unlikely(lcptr)) { DBUG_PRINT("info", ("spider free lcptr")); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&conn->loop_checked, - lcptr->hash_value_full, (uchar *) lcptr); -#else my_hash_delete(&conn->loop_checked, (uchar*) lcptr); -#endif spider_free(spider_current_trx, lcptr, MYF(0)); } DBUG_PRINT("info", ("spider alloc_lcptr")); @@ -1466,16 +1397,7 @@ int spider_conn_queue_loop_check( lcptr->merged_value.str = merged_value; lcptr->hash_value_to = my_calc_hash(&conn->loop_check_queue, (uchar *) to_str.str, to_str.length); - /* - Mark as checked. It will be added to loop_check_queue in - spider_conn_queue_and_merge_loop_check() below for checking - */ -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (unlikely(my_hash_insert_with_hash_value(&conn->loop_checked, - lcptr->hash_value_full, (uchar *) lcptr))) -#else if (unlikely(my_hash_insert(&conn->loop_checked, (uchar *) lcptr))) -#endif { my_afree(loop_check_buf); goto error_hash_insert; @@ -3154,32 +3076,6 @@ void *spider_bg_sts_action( trx, &spider, FALSE, FALSE, SPIDER_CONN_KIND_MYSQL, &error_num); conns[spider.search_link_idx]->error_mode = 0; -/* - if ( - error_num && - share->monitoring_kind[spider.search_link_idx] && - need_mons[spider.search_link_idx] - ) { - lex_start(thd); - error_num = spider_ping_table_mon_from_table( - trx, - thd, - share, - spider.search_link_idx, - (uint32) share->monitoring_sid[spider.search_link_idx], - share->table_name, - share->table_name_length, - spider.conn_link_idx[spider.search_link_idx], - NULL, - 0, - share->monitoring_kind[spider.search_link_idx], - share->monitoring_limit[spider.search_link_idx], - share->monitoring_flag[spider.search_link_idx], - TRUE - ); - lex_end(thd->lex); - } -*/ spider.search_link_idx = -1; } if (spider.search_link_idx != -1 && conns[spider.search_link_idx]) @@ -3197,31 +3093,6 @@ void *spider_bg_sts_action( 2, HA_STATUS_CONST | HA_STATUS_VARIABLE)) #endif { -/* - if ( - share->monitoring_kind[spider.search_link_idx] && - need_mons[spider.search_link_idx] - ) { - lex_start(thd); - error_num = spider_ping_table_mon_from_table( - trx, - thd, - share, - spider.search_link_idx, - (uint32) share->monitoring_sid[spider.search_link_idx], - share->table_name, - share->table_name_length, - spider.conn_link_idx[spider.search_link_idx], - NULL, - 0, - share->monitoring_kind[spider.search_link_idx], - share->monitoring_limit[spider.search_link_idx], - share->monitoring_flag[spider.search_link_idx], - TRUE - ); - lex_end(thd->lex); - } -*/ spider.search_link_idx = -1; } } @@ -3464,12 +3335,6 @@ void *spider_bg_crd_action( if (spider.search_link_idx < 0) { spider_trx_set_link_idx_for_all(&spider); -/* - spider.search_link_idx = spider_conn_next_link_idx( - thd, share->link_statuses, share->access_balances, - spider.conn_link_idx, spider.search_link_idx, share->link_count, - SPIDER_LINK_STATUS_OK); -*/ spider.search_link_idx = spider_conn_first_link_idx(thd, share->link_statuses, share->access_balances, spider.conn_link_idx, share->link_count, SPIDER_LINK_STATUS_OK); @@ -3486,32 +3351,6 @@ void *spider_bg_crd_action( trx, &spider, FALSE, FALSE, SPIDER_CONN_KIND_MYSQL, &error_num); conns[spider.search_link_idx]->error_mode = 0; -/* - if ( - error_num && - share->monitoring_kind[spider.search_link_idx] && - need_mons[spider.search_link_idx] - ) { - lex_start(thd); - error_num = spider_ping_table_mon_from_table( - trx, - thd, - share, - spider.search_link_idx, - (uint32) share->monitoring_sid[spider.search_link_idx], - share->table_name, - share->table_name_length, - spider.conn_link_idx[spider.search_link_idx], - NULL, - 0, - share->monitoring_kind[spider.search_link_idx], - share->monitoring_limit[spider.search_link_idx], - share->monitoring_flag[spider.search_link_idx], - TRUE - ); - lex_end(thd->lex); - } -*/ spider.search_link_idx = -1; } if (spider.search_link_idx != -1 && conns[spider.search_link_idx]) @@ -3529,31 +3368,6 @@ void *spider_bg_crd_action( 2)) #endif { -/* - if ( - share->monitoring_kind[spider.search_link_idx] && - need_mons[spider.search_link_idx] - ) { - lex_start(thd); - error_num = spider_ping_table_mon_from_table( - trx, - thd, - share, - spider.search_link_idx, - (uint32) share->monitoring_sid[spider.search_link_idx], - share->table_name, - share->table_name_length, - spider.conn_link_idx[spider.search_link_idx], - NULL, - 0, - share->monitoring_kind[spider.search_link_idx], - share->monitoring_limit[spider.search_link_idx], - share->monitoring_flag[spider.search_link_idx], - TRUE - ); - lex_end(thd->lex); - } -*/ spider.search_link_idx = -1; } } @@ -3858,17 +3672,11 @@ void *spider_bg_mon_action( share->monitoring_bg_interval[link_idx] * 1000); pthread_cond_timedwait(&share->bg_mon_sleep_conds[link_idx], &share->bg_mon_mutexes[link_idx], &abstime); -/* - my_sleep((ulong) share->monitoring_bg_interval[link_idx]); -*/ } DBUG_PRINT("info",("spider bg mon roop start")); if (share->bg_mon_kill) { DBUG_PRINT("info",("spider bg mon kill start")); -/* - pthread_mutex_lock(&share->bg_mon_mutexes[link_idx]); -*/ pthread_cond_signal(&share->bg_mon_conds[link_idx]); pthread_mutex_unlock(&share->bg_mon_mutexes[link_idx]); spider_free_trx(trx, TRUE); @@ -4241,12 +4049,7 @@ SPIDER_CONN* spider_get_conn_from_idle_connection( share->conn_keys_lengths[link_idx]))) { /* get conn from spider_open_connections, then delete conn in spider_open_connections */ -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_connections, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&spider_open_connections, (uchar*) conn); -#endif pthread_mutex_unlock(&spider_conn_mutex); DBUG_PRINT("info",("spider get global conn")); if (spider) diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index 3946ea4911d..50974269e0c 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -26,9 +26,6 @@ #define SPIDER_DB_WRAPPER_MARIADB "mariadb" #define PLUGIN_VAR_CAN_MEMALLOC -/* -#define HASH_UPDATE_WITH_HASH_VALUE -*/ #define SPIDER_HAS_DISCOVER_TABLE_STRUCTURE #define SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 9118e3fb7c1..ed92a5d2e64 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -3630,12 +3630,7 @@ int spider_db_mbase::append_lock_tables( my_hash_reset(&lock_table_hash); DBUG_RETURN(error_num); } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&lock_table_hash, - tmp_link_for_hash->db_table_str_hash_value, (uchar*) tmp_link_for_hash); -#else my_hash_delete(&lock_table_hash, (uchar*) tmp_link_for_hash); -#endif } if ((error_num = spider_db_mbase_utility->append_lock_table_tail(str))) { @@ -13012,15 +13007,8 @@ int spider_mbase_handler::insert_lock_tables_list( DBUG_PRINT("info",("spider this=%p", this)); uint old_elements = db_conn->lock_table_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash2->db_table_str_hash_value, - (uchar*) tmp_link_for_hash2)) -#else if (my_hash_insert(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash2)) -#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } @@ -13067,26 +13055,12 @@ int spider_mbase_handler::append_lock_tables_list( if (tmp_link_for_hash->spider->wide_handler->lock_type < spider->wide_handler->lock_type) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash->db_table_str_hash_value, - (uchar*) tmp_link_for_hash); -#else my_hash_delete(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash); -#endif uint old_elements = db_conn->lock_table_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash2->db_table_str_hash_value, - (uchar*) tmp_link_for_hash2)) -#else if (my_hash_insert(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash2)) -#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index b06be249a4f..e0eeaf2975b 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -2350,12 +2350,7 @@ int spider_db_oracle::append_lock_tables( my_hash_reset(&lock_table_hash); DBUG_RETURN(error_num); } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&lock_table_hash, - tmp_link_for_hash->db_table_str_hash_value, (uchar*) tmp_link_for_hash); -#else my_hash_delete(&lock_table_hash, (uchar*) tmp_link_for_hash); -#endif if ((error_num = spider_db_oracle_utility.append_lock_table_tail(str))) { @@ -10282,15 +10277,8 @@ int spider_oracle_handler::insert_lock_tables_list( DBUG_PRINT("info",("spider this=%p", this)); uint old_elements = db_conn->lock_table_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash2->db_table_str_hash_value, - (uchar*) tmp_link_for_hash2)) -#else if (my_hash_insert(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash2)) -#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } @@ -10334,26 +10322,12 @@ int spider_oracle_handler::append_lock_tables_list( if (tmp_link_for_hash->spider->wide_handler->lock_type < spider->wide_handler->lock_type) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash->db_table_str_hash_value, - (uchar*) tmp_link_for_hash); -#else my_hash_delete(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash); -#endif uint old_elements = db_conn->lock_table_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value( - &db_conn->lock_table_hash, - tmp_link_for_hash2->db_table_str_hash_value, - (uchar*) tmp_link_for_hash2)) -#else if (my_hash_insert(&db_conn->lock_table_hash, (uchar*) tmp_link_for_hash2)) -#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } diff --git a/storage/spider/spd_direct_sql.cc b/storage/spider/spd_direct_sql.cc index e136c302126..0d12b3b25b3 100644 --- a/storage/spider/spd_direct_sql.cc +++ b/storage/spider/spd_direct_sql.cc @@ -522,12 +522,7 @@ SPIDER_CONN *spider_udf_direct_sql_get_conn( error_num))) goto error; } else { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_connections, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&spider_open_connections, (uchar*) conn); -#endif pthread_mutex_unlock(&spider_conn_mutex); DBUG_PRINT("info",("spider get global conn")); } @@ -541,12 +536,7 @@ SPIDER_CONN *spider_udf_direct_sql_get_conn( conn->priority = direct_sql->priority; uint old_elements = trx->trx_conn_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&trx->trx_conn_hash, - direct_sql->conn_key_hash_value, (uchar*) conn)) -#else if (my_hash_insert(&trx->trx_conn_hash, (uchar*) conn)) -#endif { spider_free_conn(conn); *error_num = HA_ERR_OUT_OF_MEM; diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc index 055501925b5..2795f8a3bb6 100644 --- a/storage/spider/spd_ping_table.cc +++ b/storage/spider/spd_ping_table.cc @@ -159,14 +159,8 @@ SPIDER_TABLE_MON_LIST *spider_get_ping_table_mon_list( uint old_elements = spider_udf_table_mon_list_hash[mutex_hash].array.max_element; table_mon_list->key_hash_value = hash_value; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value( - &spider_udf_table_mon_list_hash[mutex_hash], - hash_value, (uchar*) table_mon_list)) -#else if (my_hash_insert(&spider_udf_table_mon_list_hash[mutex_hash], (uchar*) table_mon_list)) -#endif { spider_ping_table_free_mon_list(table_mon_list); *error_num = HA_ERR_OUT_OF_MEM; @@ -215,13 +209,8 @@ void spider_release_ping_table_mon_list_loop( SPIDER_TABLE_MON_LIST *table_mon_list ) { DBUG_ENTER("spider_release_ping_table_mon_list_loop"); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_udf_table_mon_list_hash[mutex_hash], - table_mon_list->key_hash_value, (uchar*) table_mon_list); -#else my_hash_delete(&spider_udf_table_mon_list_hash[mutex_hash], (uchar*) table_mon_list); -#endif while (TRUE) { if (table_mon_list->use_count) diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 03ff98740b7..145d9dc9c40 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -4321,12 +4321,7 @@ SPIDER_SHARE *spider_get_share( } uint old_elements = spider_open_tables.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_open_tables, hash_value, - (uchar*) share)) -#else if (my_hash_insert(&spider_open_tables, (uchar*) share)) -#endif { *error_num = HA_ERR_OUT_OF_MEM; goto error_hash_insert; @@ -4479,14 +4474,9 @@ SPIDER_SHARE *spider_get_share( spider_free_share(share); goto error_sts_spider_init; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - share->sts_thread = &spider_table_sts_threads[ - hash_value % spider_param_table_sts_thread_count()]; -#else share->sts_thread = &spider_table_sts_threads[ my_calc_hash(&spider_open_tables, (uchar*) table_name, length) % spider_param_table_sts_thread_count()]; -#endif share->sts_spider_init = TRUE; } pthread_mutex_unlock(&share->mutex); @@ -4507,14 +4497,9 @@ SPIDER_SHARE *spider_get_share( spider_free_share(share); goto error_crd_spider_init; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - share->crd_thread = &spider_table_crd_threads[ - hash_value % spider_param_table_crd_thread_count()]; -#else share->crd_thread = &spider_table_crd_threads[ my_calc_hash(&spider_open_tables, (uchar*) table_name, length) % spider_param_table_crd_thread_count()]; -#endif share->crd_spider_init = TRUE; } pthread_mutex_unlock(&share->mutex); @@ -4973,14 +4958,9 @@ SPIDER_SHARE *spider_get_share( spider_free_share(share); goto error_sts_spider_init; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - share->sts_thread = &spider_table_sts_threads[ - hash_value % spider_param_table_sts_thread_count()]; -#else share->sts_thread = &spider_table_sts_threads[ my_calc_hash(&spider_open_tables, (uchar*) table_name, length) % spider_param_table_sts_thread_count()]; -#endif share->sts_spider_init = TRUE; } pthread_mutex_unlock(&share->mutex); @@ -4998,14 +4978,9 @@ SPIDER_SHARE *spider_get_share( spider_free_share(share); goto error_crd_spider_init; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE - share->crd_thread = &spider_table_crd_threads[ - hash_value % spider_param_table_crd_thread_count()]; -#else share->crd_thread = &spider_table_crd_threads[ my_calc_hash(&spider_open_tables, (uchar*) table_name, length) % spider_param_table_crd_thread_count()]; -#endif share->crd_spider_init = TRUE; } pthread_mutex_unlock(&share->mutex); @@ -5368,12 +5343,7 @@ int spider_free_share( } #endif spider_free_share_alloc(share); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_tables, - share->table_name_hash_value, (uchar*) share); -#else my_hash_delete(&spider_open_tables, (uchar*) share); -#endif pthread_mutex_destroy(&share->crd_mutex); pthread_mutex_destroy(&share->sts_mutex); pthread_mutex_destroy(&share->mutex); @@ -5458,13 +5428,8 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share( } uint old_elements = spider_lgtm_tblhnd_share_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_lgtm_tblhnd_share_hash, - hash_value, (uchar*) lgtm_tblhnd_share)) -#else if (my_hash_insert(&spider_lgtm_tblhnd_share_hash, (uchar*) lgtm_tblhnd_share)) -#endif { *error_num = HA_ERR_OUT_OF_MEM; goto error_hash_insert; @@ -5500,12 +5465,7 @@ void spider_free_lgtm_tblhnd_share_alloc( DBUG_ENTER("spider_free_lgtm_tblhnd_share"); if (!locked) pthread_mutex_lock(&spider_lgtm_tblhnd_share_mutex); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_lgtm_tblhnd_share_hash, - lgtm_tblhnd_share->table_path_hash_value, (uchar*) lgtm_tblhnd_share); -#else my_hash_delete(&spider_lgtm_tblhnd_share_hash, (uchar*) lgtm_tblhnd_share); -#endif pthread_mutex_destroy(&lgtm_tblhnd_share->auto_increment_mutex); spider_free(spider_current_trx, lgtm_tblhnd_share, MYF(0)); if (!locked) @@ -5570,13 +5530,7 @@ SPIDER_WIDE_SHARE *spider_get_wide_share( thr_lock_init(&wide_share->lock); uint old_elements = spider_open_wide_share.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_open_wide_share, - share->table_path_hash_value, - (uchar*) wide_share)) -#else if (my_hash_insert(&spider_open_wide_share, (uchar*) wide_share)) -#endif { *error_num = HA_ERR_OUT_OF_MEM; goto error_hash_insert; @@ -5614,12 +5568,7 @@ int spider_free_wide_share( if (!--wide_share->use_count) { thr_lock_delete(&wide_share->lock); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_wide_share, - wide_share->table_path_hash_value, (uchar*) wide_share); -#else my_hash_delete(&spider_open_wide_share, (uchar*) wide_share); -#endif pthread_mutex_destroy(&wide_share->crd_mutex); pthread_mutex_destroy(&wide_share->sts_mutex); spider_free(spider_current_trx, wide_share, MYF(0)); @@ -6087,14 +6036,8 @@ int spider_db_done( while ((table_mon_list = (SPIDER_TABLE_MON_LIST *) my_hash_element( &spider_udf_table_mon_list_hash[roop_count], 0))) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value( - &spider_udf_table_mon_list_hash[roop_count], - table_mon_list->key_hash_value, (uchar*) table_mon_list); -#else my_hash_delete(&spider_udf_table_mon_list_hash[roop_count], (uchar*) table_mon_list); -#endif spider_ping_table_free_mon_list(table_mon_list); } spider_free_mem_calc(spider_current_trx, @@ -6130,12 +6073,7 @@ int spider_db_done( pthread_mutex_lock(&spider_conn_mutex); while ((conn = (SPIDER_CONN*) my_hash_element(&spider_open_connections, 0))) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_open_connections, - conn->conn_key_hash_value, (uchar*) conn); -#else my_hash_delete(&spider_open_connections, (uchar*) conn); -#endif spider_free_conn(conn); } pthread_mutex_unlock(&spider_conn_mutex); @@ -6178,14 +6116,8 @@ int spider_db_done( while ((spider_init_error_table = (SPIDER_INIT_ERROR_TABLE*) my_hash_element(&spider_init_error_tables, 0))) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_init_error_tables, - spider_init_error_table->table_name_hash_value, - (uchar*) spider_init_error_table); -#else my_hash_delete(&spider_init_error_tables, (uchar*) spider_init_error_table); -#endif spider_free(NULL, spider_init_error_table, MYF(0)); } pthread_mutex_unlock(&spider_init_error_tbl_mutex); @@ -7206,13 +7138,8 @@ SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table( spider_init_error_table->table_name_hash_value = share->table_name_hash_value; uint old_elements = spider_init_error_tables.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_init_error_tables, - share->table_name_hash_value, (uchar*) spider_init_error_table)) -#else if (my_hash_insert(&spider_init_error_tables, (uchar*) spider_init_error_table)) -#endif { spider_free(trx, spider_init_error_table, MYF(0)); pthread_mutex_unlock(&spider_init_error_tbl_mutex); @@ -7243,14 +7170,8 @@ void spider_delete_init_error_table( my_hash_search_using_hash_value(&spider_init_error_tables, hash_value, (uchar*) name, length))) { -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_init_error_tables, - spider_init_error_table->table_name_hash_value, - (uchar*) spider_init_error_table); -#else my_hash_delete(&spider_init_error_tables, (uchar*) spider_init_error_table); -#endif spider_free(spider_current_trx, spider_init_error_table, MYF(0)); } pthread_mutex_unlock(&spider_init_error_tbl_mutex); diff --git a/storage/spider/spd_trx.cc b/storage/spider/spd_trx.cc index f04c3659d6f..11dc7a81ad8 100644 --- a/storage/spider/spd_trx.cc +++ b/storage/spider/spd_trx.cc @@ -378,12 +378,7 @@ void spider_free_trx_alter_table_alloc( SPIDER_ALTER_TABLE *alter_table ) { DBUG_ENTER("spider_free_trx_alter_table_alloc"); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&trx->trx_alter_table_hash, - alter_table->table_name_hash_value, (uchar*) alter_table); -#else my_hash_delete(&trx->trx_alter_table_hash, (uchar*) alter_table); -#endif if (alter_table->tmp_char) spider_free(trx, alter_table->tmp_char, MYF(0)); spider_free(trx, alter_table, MYF(0)); @@ -799,12 +794,7 @@ int spider_create_trx_alter_table( share_alter->tmp_link_statuses_length; old_elements = trx->trx_alter_table_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&trx->trx_alter_table_hash, - alter_table->table_name_hash_value, (uchar*) alter_table)) -#else if (my_hash_insert(&trx->trx_alter_table_hash, (uchar*) alter_table)) -#endif { error_num = HA_ERR_OUT_OF_MEM; goto error; @@ -1277,12 +1267,7 @@ SPIDER_TRX *spider_get_trx( { pthread_mutex_lock(&spider_allocated_thds_mutex); uint old_elements = spider_allocated_thds.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&spider_allocated_thds, - trx->thd_hash_value, (uchar*) thd)) -#else if (my_hash_insert(&spider_allocated_thds, (uchar*) thd)) -#endif { pthread_mutex_unlock(&spider_allocated_thds_mutex); goto error_allocated_thds_insert; @@ -1388,12 +1373,7 @@ int spider_free_trx( { if (need_lock) pthread_mutex_lock(&spider_allocated_thds_mutex); -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&spider_allocated_thds, - trx->thd_hash_value, (uchar*) trx->thd); -#else my_hash_delete(&spider_allocated_thds, (uchar*) trx->thd); -#endif if (need_lock) pthread_mutex_unlock(&spider_allocated_thds_mutex); } @@ -1552,17 +1532,7 @@ static int spider_xa_lock( error_num = ER_SPIDER_XA_LOCKED_NUM; goto error; } -#ifdef HASH_UPDATE_WITH_HASH_VALUE -#ifdef XID_CACHE_IS_SPLITTED - if (my_hash_insert_with_hash_value(&spd_db_att_xid_cache[idx], hash_value, - (uchar*)xid_state)) -#else - if (my_hash_insert_with_hash_value(spd_db_att_xid_cache, hash_value, - (uchar*)xid_state)) -#endif -#else if (my_hash_insert(spd_db_att_xid_cache, (uchar*)xid_state)) -#endif { error_num = HA_ERR_OUT_OF_MEM; goto error; @@ -1597,13 +1567,6 @@ static int spider_xa_unlock( DBUG_ENTER("spider_xa_unlock"); #ifdef SPIDER_XID_USES_xid_cache_iterate #else -#if defined(SPIDER_HAS_HASH_VALUE_TYPE) && defined(HASH_UPDATE_WITH_HASH_VALUE) - my_hash_value_type hash_value = my_calc_hash(spd_db_att_xid_cache, - (uchar*) xid_state->xid.key(), xid_state->xid.key_length()); -#ifdef XID_CACHE_IS_SPLITTED - uint idx = hash_value % *spd_db_att_xid_cache_split_num; -#endif -#endif #endif old_proc_info = thd_proc_info(thd, "Unlocking xid by Spider"); #ifdef SPIDER_XID_USES_xid_cache_iterate @@ -1614,17 +1577,7 @@ static int spider_xa_unlock( #else pthread_mutex_lock(spd_db_att_LOCK_xid_cache); #endif -#if defined(SPIDER_HAS_HASH_VALUE_TYPE) && defined(HASH_UPDATE_WITH_HASH_VALUE) -#ifdef XID_CACHE_IS_SPLITTED - my_hash_delete_with_hash_value(&spd_db_att_xid_cache[idx], - hash_value, (uchar *)xid_state); -#else - my_hash_delete_with_hash_value(spd_db_att_xid_cache, - hash_value, (uchar *)xid_state); -#endif -#else my_hash_delete(spd_db_att_xid_cache, (uchar *)xid_state); -#endif #ifdef XID_CACHE_IS_SPLITTED pthread_mutex_unlock(&spd_db_att_LOCK_xid_cache[idx]); #else @@ -3785,12 +3738,7 @@ int spider_create_trx_ha( ) { DBUG_PRINT("info",("spider need recreate")); need_create = TRUE; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - my_hash_delete_with_hash_value(&trx->trx_ha_hash, - share->table_name_hash_value, (uchar*) trx_ha); -#else my_hash_delete(&trx->trx_ha_hash, (uchar*) trx_ha); -#endif spider_free(trx, trx_ha, MYF(0)); } else { DBUG_PRINT("info",("spider use this")); @@ -3820,12 +3768,7 @@ int spider_create_trx_ha( trx_ha->conn_can_fo = conn_can_fo; trx_ha->wait_for_reusing = FALSE; uint old_elements = trx->trx_ha_hash.array.max_element; -#ifdef HASH_UPDATE_WITH_HASH_VALUE - if (my_hash_insert_with_hash_value(&trx->trx_ha_hash, - share->table_name_hash_value, (uchar*) trx_ha)) -#else if (my_hash_insert(&trx->trx_ha_hash, (uchar*) trx_ha)) -#endif { spider_free(trx, trx_ha, MYF(0)); DBUG_RETURN(HA_ERR_OUT_OF_MEM); From 02b30044aa36eb0d99752da3026d14fa21da1e44 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Wed, 11 Sep 2024 13:37:40 +1000 Subject: [PATCH 25/25] MDEV-34650 main.having_cond_pushdown test failure - crash server (s390x) The 10.5->10.6 merge commit 3bc98a4ec4e casts the arg to an int16 pointer in set_extraction_flag_processor(). This matched the previous commit c76eabfb5e3 where set_extraction_flag was changed to have int16 arg instead of int. The commit a5e4c34991e for MDEV-29363 added a call to set_extraction_flag_processor on IMMUTABLE_FL (MARKER_IMMUTABLE in 10.6). The subsequent 10.5->10.6 merge f071b7620b2 did not cast the flag to int16 when merging this change. The result is big-endian processors cleared the immutable flag rather than set the flag, resulting in MDEV-29363 being unfixed on big-endian processors. --- sql/item.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/item.cc b/sql/item.cc index 41fec9096f8..20289c317a3 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1295,7 +1295,7 @@ Item *Item::multiple_equality_transformer(THD *thd, uchar *arg) This flag will be removed at the end of the pushdown optimization by remove_immutable_flag_processor processor. */ - int new_flag= MARKER_IMMUTABLE; + int16 new_flag= MARKER_IMMUTABLE; this->walk(&Item::set_extraction_flag_processor, false, (void*)&new_flag); }