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/29] 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/29] 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 852d42e9933a2760b2542e977f2141d4e80dd8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 9 Sep 2024 16:47:35 +0300 Subject: [PATCH 03/29] MDEV-34483 Backup may copy unnecessarily much log In mariadb-backup --backup there are multiple mechanisms for ensuring that a sufficient amount of the InnoDB write-ahead log (ib_logfile0) is being copied at the end of the backup. The backup needs to include the latest committed transaction. While further transaction commits are blocked by BACKUP STAGE BLOCK_COMMIT, ongoing transactions may modify the database contents and write log records. We were unnecessarily copying such log, which would also cause further effort of rolling back incomplete transactions after the backup is restored. backup_wait_for_lsn(): Declare as static, and refactor some code to separate functions backup_wait_for_lsn_low() and backup_wait_timeout(). backup_wait_for_commit_lsn(): A new function to determine the current LSN (within BACKUP STAGE BLOCK_COMMIT) and to wait for the log to be copied until that. Invoked by BackupStages::stage_block_commit(). xtrabackup_backup_func(): Remove a condition that had already been checked by a caller of backup_wait_timeout(). server_lsn_after_lock: Declare as a local variable in BackupStages::stage_block_ddl(). log_copying_thread(), io_watching_thread(): Use metadata_last_lsn instead of metadata_to_lsn as the stop condition. BackupStages::stage_block_commit(): Ensure that the log tables (in particular, mysql.general_log) will have been copied before the BACKUP STAGE BLOCK_COMMIT is being followed by any further SQL statements. Reviewed by: Debarun Banerjee Tested by: Matthias Leich --- extra/mariabackup/backup_copy.cc | 3 - extra/mariabackup/xtrabackup.cc | 206 ++++++++++++------ .../suite/mariabackup/log_tables.result | 2 + mysql-test/suite/mariabackup/log_tables.test | 10 +- 4 files changed, 140 insertions(+), 81 deletions(-) diff --git a/extra/mariabackup/backup_copy.cc b/extra/mariabackup/backup_copy.cc index 3e97ef94835..c47c56d80d2 100644 --- a/extra/mariabackup/backup_copy.cc +++ b/extra/mariabackup/backup_copy.cc @@ -1353,9 +1353,6 @@ out: return(ret); } -lsn_t server_lsn_after_lock; -extern void backup_wait_for_lsn(lsn_t lsn); - /** Release resources after backup_files() */ void backup_release() { diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 46b040d61bd..ca8891ca546 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -3482,35 +3482,70 @@ static bool xtrabackup_copy_logfile() return false; } -/** -Wait until redo log copying thread processes given lsn -*/ -void backup_wait_for_lsn(lsn_t lsn) +static bool backup_wait_timeout(lsn_t lsn, lsn_t last_lsn) { - mysql_mutex_lock(&recv_sys.mutex); - for (lsn_t last_lsn{recv_sys.lsn}; last_lsn < lsn; ) + if (last_lsn >= lsn) + return true; + msg("Was only able to copy log from " LSN_PF " to " LSN_PF + ", not " LSN_PF "; try increasing innodb_log_file_size", + log_sys.next_checkpoint_lsn, last_lsn, lsn); + return false; +} + +/** +Wait for enough log to be copied. +@param lsn log sequence number target +@return the reached log sequence number (may be less or more than lsn) +*/ +static lsn_t backup_wait_for_lsn_low(lsn_t lsn) +{ + mysql_mutex_assert_owner(&recv_sys.mutex); + + lsn_t last_lsn{recv_sys.lsn}; + + if (last_lsn >= lsn) + return last_lsn; + + msg("Waiting for log copy thread to read lsn " LSN_PF, lsn); + + while (log_copying_running && last_lsn < lsn) { timespec abstime; set_timespec(abstime, 5); if (my_cond_timedwait(&scanned_lsn_cond, &recv_sys.mutex.m_mutex, &abstime) && last_lsn == recv_sys.lsn) - die("Was only able to copy log from " LSN_PF " to " LSN_PF - ", not " LSN_PF "; try increasing innodb_log_file_size", - log_sys.next_checkpoint_lsn, last_lsn, lsn); + break; last_lsn= recv_sys.lsn; } - mysql_mutex_unlock(&recv_sys.mutex); + + return last_lsn; +} + +/** +Wait for enough log to be copied after BACKUP STAGE BLOCK_DDL. +@param lsn log sequence number target +@return whether log_copying_thread() copied everything until the target lsn +*/ +static bool backup_wait_for_lsn(lsn_t lsn) +{ + if (!lsn) + return true; + mysql_mutex_lock(&recv_sys.mutex); + ut_ad(!metadata_to_lsn); + ut_ad(!metadata_last_lsn); + lsn_t last_lsn{backup_wait_for_lsn_low(lsn)}; + mysql_mutex_unlock(&recv_sys.mutex); + return backup_wait_timeout(lsn, last_lsn); } -extern lsn_t server_lsn_after_lock; static void log_copying_thread() { my_thread_init(); mysql_mutex_lock(&recv_sys.mutex); while (!xtrabackup_copy_logfile() && - (!metadata_to_lsn || metadata_to_lsn > recv_sys.lsn)) + (!metadata_last_lsn || metadata_last_lsn > recv_sys.lsn)) { timespec abstime; set_timespec_nsec(abstime, 1000000ULL * xtrabackup_log_copy_interval); @@ -3534,7 +3569,7 @@ static void io_watching_thread() mysql_mutex_lock(&recv_sys.mutex); ut_ad(have_io_watching_thread); - while (log_copying_running && !metadata_to_lsn) + while (log_copying_running && !metadata_last_lsn) { timespec abstime; set_timespec(abstime, 1); @@ -4685,6 +4720,7 @@ end: static void stop_backup_threads() { + ut_ad(metadata_last_lsn); mysql_cond_broadcast(&log_copying_stop); if (log_copying_running || have_io_watching_thread) @@ -4708,38 +4744,58 @@ static void stop_backup_threads() mysql_cond_destroy(&log_copying_stop); } +/** +Wait for enough log to be copied. +@return whether log_copying_thread() copied everything until the target lsn +*/ +static bool backup_wait_for_commit_lsn() +{ + lsn_t lsn= get_current_lsn(mysql_connection); + mysql_mutex_lock(&recv_sys.mutex); + ut_ad(!metadata_to_lsn); + ut_ad(!metadata_last_lsn); + + lsn_t last_lsn= recv_sys.lsn; + + /* read the latest checkpoint lsn */ + if (recv_sys.find_checkpoint() == DB_SUCCESS && log_sys.is_latest()) + { + if (log_sys.next_checkpoint_lsn > lsn) + lsn= log_sys.next_checkpoint_lsn; + metadata_to_lsn= log_sys.next_checkpoint_lsn; + msg("mariabackup: The latest check point (for incremental): '" + LSN_PF "'", metadata_to_lsn); + } + else + { + msg("Error: recv_sys.find_checkpoint() failed."); + metadata_last_lsn= 1; + stop_backup_threads(); + mysql_mutex_unlock(&recv_sys.mutex); + return false; + } + + recv_sys.lsn= last_lsn; + ut_ad(metadata_to_lsn); + metadata_last_lsn= lsn; + + last_lsn= backup_wait_for_lsn_low(LSN_MAX); + + metadata_last_lsn= last_lsn; + stop_backup_threads(); + mysql_mutex_unlock(&recv_sys.mutex); + return backup_wait_timeout(lsn, last_lsn); +} + /** Implement the core of --backup @return whether the operation succeeded */ bool Backup_datasinks::backup_low() { - mysql_mutex_lock(&recv_sys.mutex); - ut_ad(!metadata_to_lsn); - - /* read the latest checkpoint lsn */ - { - const lsn_t lsn = recv_sys.lsn; - if (recv_sys.find_checkpoint() == DB_SUCCESS - && log_sys.is_latest()) { - metadata_to_lsn = log_sys.next_checkpoint_lsn; - msg("mariabackup: The latest check point" - " (for incremental): '" LSN_PF "'", - metadata_to_lsn); - } else { - msg("Error: recv_sys.find_checkpoint() failed."); - } - - recv_sys.lsn = lsn; - stop_backup_threads(); - } - - if (metadata_to_lsn && xtrabackup_copy_logfile()) { - mysql_mutex_unlock(&recv_sys.mutex); - ds_close(dst_log_file); - dst_log_file = NULL; - return false; - } - - mysql_mutex_unlock(&recv_sys.mutex); + ut_d(mysql_mutex_lock(&recv_sys.mutex)); + ut_ad(metadata_last_lsn); + ut_ad(metadata_to_lsn); + ut_ad(!log_copying_running); + ut_d(mysql_mutex_unlock(&recv_sys.mutex)); if (ds_close(dst_log_file) || !metadata_to_lsn) { dst_log_file = NULL; @@ -4756,7 +4812,7 @@ bool Backup_datasinks::backup_low() for (uint32_t id : failed_ids) { msg("mariabackup: Failed to read undo log " - "tablespace space id %d and there is no undo " + "tablespace space id " UINT32PF " and there is no undo " "tablespace truncation redo record.", id); } @@ -4843,17 +4899,17 @@ private: // TODO: this came from the old code, where it was not thread-safe // too, use separate mysql connection per thread here DBUG_MARIABACKUP_EVENT("before_copy", node->space->name()); - DBUG_EXECUTE_FOR_KEY("wait_innodb_redo_before_copy", - node->space->name(), - backup_wait_for_lsn( - get_current_lsn(mysql_connection));); + DBUG_EXECUTE_FOR_KEY("wait_innodb_redo_before_copy", + node->space->name(), + backup_wait_for_lsn( + get_current_lsn(mysql_connection));); /* copy the datafile */ if(xtrabackup_copy_datafile(m_backup_datasinks.m_data, - m_backup_datasinks.m_meta, - node, thread_num, NULL, - xtrabackup_incremental - ? wf_incremental : wf_write_through, - m_corrupted_pages)) + m_backup_datasinks.m_meta, + node, thread_num, NULL, + xtrabackup_incremental + ? wf_incremental : wf_write_through, + m_corrupted_pages)) die("mariabackup: Error: failed to copy datafile."); // TODO: this came from the old code, where it was not thread-safe // too, use separate mysql connection per thread here @@ -4861,8 +4917,8 @@ private: m_tasks.finish_task(1); } - Backup_datasinks &m_backup_datasinks; - CorruptedPages &m_corrupted_pages; + Backup_datasinks &m_backup_datasinks; + CorruptedPages &m_corrupted_pages; TasksGroup m_tasks; }; @@ -5063,9 +5119,9 @@ class BackupStages { return false; } - msg("Waiting for log copy thread to read lsn %llu", - server_lsn_after_lock); - backup_wait_for_lsn(server_lsn_after_lock); + if (!backup_wait_for_lsn(server_lsn_after_lock)) { + return false; + } corrupted_pages.backup_fix_ddl(backup_datasinks.m_data, backup_datasinks.m_meta); @@ -5101,11 +5157,28 @@ class BackupStages { } // Copy log tables tail - if (!m_common_backup.copy_log_tables(true)) { + if (!m_common_backup.copy_log_tables(true) || + !m_common_backup.close_log_tables()) { msg("Error on copy log tables"); return false; } + // Copy just enough log to cover the latest commit. + // Meanwhile, there could be some active transactions + // that are modifying the database and writing more + // log. Not copying log for them will save busy work + // and avoid some rollback of the incomplete + // transactions after the backup has been restored. + // + // We find the current InnoDB LSN by executing + // SHOW ENGINE INNODB STATUS, which in the case of + // general_log=1, log_output='TABLES' + // would be written to the table mysql.general_log + // that we just finished copying above. + if (!backup_wait_for_commit_lsn()) { + return false; + } + // Copy stats tables if (!m_common_backup.copy_stats_tables()) { msg("Error on copy stats tables"); @@ -5123,11 +5196,6 @@ class BackupStages { return false; } - if (!m_common_backup.close_log_tables()) { - msg("Error on close log tables"); - return false; - } - if (!backup_files_from_datadir(backup_datasinks.m_data, fil_path_to_mysql_datadir, "aws-kms-key")) { @@ -5269,13 +5337,14 @@ static bool xtrabackup_backup_func() undo_space_trunc = backup_undo_trunc; first_page_init = backup_first_page_op; metadata_to_lsn = 0; + metadata_last_lsn = 0; /* initialize components */ if(innodb_init_param()) { fail: if (log_copying_running) { mysql_mutex_lock(&recv_sys.mutex); - metadata_to_lsn = 1; + metadata_last_lsn = 1; stop_backup_threads(); mysql_mutex_unlock(&recv_sys.mutex); } @@ -5460,14 +5529,9 @@ fail: xb_data_files_close(); - /* Make sure that the latest checkpoint was included */ - if (metadata_to_lsn > recv_sys.lsn) { - msg("Error: failed to copy enough redo log (" - "LSN=" LSN_PF "; checkpoint LSN=" LSN_PF ").", - recv_sys.lsn, metadata_to_lsn); - goto fail; - } - + ut_ad(!log_copying_running); + ut_ad(metadata_to_lsn <= recv_sys.lsn); + ut_ad(metadata_last_lsn == recv_sys.lsn); innodb_shutdown(); log_file_op = NULL; undo_space_trunc = NULL; diff --git a/mysql-test/suite/mariabackup/log_tables.result b/mysql-test/suite/mariabackup/log_tables.result index 840efc718e9..2528691f1b4 100644 --- a/mysql-test/suite/mariabackup/log_tables.result +++ b/mysql-test/suite/mariabackup/log_tables.result @@ -1,5 +1,7 @@ CREATE TABLE t(i INT) ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1; +SET GLOBAL general_log = 0; +TRUNCATE mysql.general_log; SET GLOBAL general_log = 1; SET GLOBAL log_output = 'TABLE'; INSERT INTO t VALUES (1); diff --git a/mysql-test/suite/mariabackup/log_tables.test b/mysql-test/suite/mariabackup/log_tables.test index fe540a1ca91..707057a80e6 100644 --- a/mysql-test/suite/mariabackup/log_tables.test +++ b/mysql-test/suite/mariabackup/log_tables.test @@ -7,9 +7,9 @@ CREATE TABLE t(i INT) ENGINE ARIA TRANSACTIONAL=1 ROW_FORMAT=PAGE PAGE_CHECKSUM=1; ---let $general_log_old = `SELECT @@global.general_log` ---let $log_output_old = `SELECT @@global.log_output` - +# Truncate the log in order to make the test ./mtr --repeat proof +SET GLOBAL general_log = 0; +TRUNCATE mysql.general_log; SET GLOBAL general_log = 1; SET GLOBAL log_output = 'TABLE'; @@ -43,7 +43,3 @@ SELECT * FROM mysql.general_log --rmdir $targetdir DROP TABLE t; ---disable_query_log ---eval SET GLOBAL general_log = $general_log_old ---eval SET GLOBAL log_output = $log_output_old ---enable_query_log From ccb4bc775498eae2efa4901d53083998bad7ef27 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 9 Sep 2024 14:05:02 +1000 Subject: [PATCH 04/29] MDEV-33894: Resurrect innodb_log_write_ahead_size (postfix) os_file_log_maybe_unbuffered is now Linux only. Aso the stat st structure only used in linux. This avoids unused function/structure errors on FreeBSD. --- storage/innobase/os/os0file.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index f37f61d77bf..fa3ccfb6b80 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -1095,13 +1095,11 @@ static ATTRIBUTE_COLD void os_file_log_buffered() log_sys.log_maybe_unbuffered= false; log_sys.log_buffered= true; } -# endif /** @return whether the log file may work with unbuffered I/O. */ static ATTRIBUTE_COLD bool os_file_log_maybe_unbuffered(const struct stat &st) { MSAN_STAT_WORKAROUND(&st); -# ifdef __linux__ char b[20 + sizeof "/sys/dev/block/" ":" "/../queue/physical_block_size"]; if (snprintf(b, sizeof b, "/sys/dev/block/%u:%u/queue/physical_block_size", major(st.st_dev), minor(st.st_dev)) >= @@ -1133,13 +1131,11 @@ static ATTRIBUTE_COLD bool os_file_log_maybe_unbuffered(const struct stat &st) if (s > 4096 || s < 64 || !ut_is_2pow(s)) return false; log_sys.set_block_size(uint32_t(s)); -# else - constexpr unsigned long s= 4096; -# endif return !(st.st_size & (s - 1)); } -#endif +# endif /* __linux__ */ +#endif /* O_DIRECT */ /** NOTE! Use the corresponding macro os_file_create(), not directly this function! @@ -1192,7 +1188,9 @@ os_file_create_func( } #ifdef O_DIRECT +# ifdef __linux__ struct stat st; +# endif ut_a(type == OS_LOG_FILE || type == OS_DATA_FILE || type == OS_DATA_FILE_NO_O_DIRECT); int direct_flag = 0; From 24d67aaf9c1a89b9ca64a6798af819b6417f47c9 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 9 Sep 2024 14:13:38 +1000 Subject: [PATCH 05/29] MDEV-34825 FreeBSD fails to build under clang natively (postfix) 10.5 added contents of cmake/os/FreeBSD.cmake in c991efd9c35eb3f2a90b2562071860a10a4cbaa2. in the merge to 10.11, d002b1f removed this file. In the past FreeBSD.cmake was removed in 5369df741b3a87d7b262aafe95438b33ed124295 in the 10.11 branch as no remaining code was needed. The combination of this and the merge lead to the the file being removed. My assumption is this was a non-stable branch at the time. The purpose of this patch is clang doesn't have /usr/local/lib in the path. As such there are various depedency linkages that will fail. For example pcre and libfmt. --- cmake/os/FreeBSD.cmake | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 cmake/os/FreeBSD.cmake diff --git a/cmake/os/FreeBSD.cmake b/cmake/os/FreeBSD.cmake new file mode 100644 index 00000000000..4bcd844929f --- /dev/null +++ b/cmake/os/FreeBSD.cmake @@ -0,0 +1,19 @@ +# Copyright (C) 2024 MariaDB Foundation +# +# 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +# This file includes FreeBSD specific options and quirks, related to system checks + +# For all userspace dependencies +LINK_DIRECTORIES(/usr/local/lib) From 05fafaf82d29310302de2072eddd54520b4665b5 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 19 Jun 2024 13:22:59 +0800 Subject: [PATCH 06/29] 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 07/29] 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 08/29] 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 09/29] 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 10/29] 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 11/29] 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 12/29] 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 13/29] 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 14/29] 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 15/29] 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 16/29] 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 17/29] 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 18/29] 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 19/29] 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 20/29] 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 21/29] 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 22/29] 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 23/29] 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 24/29] 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 25/29] 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 26/29] 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 27/29] 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 2496779d6939f6ef6257cf56689ae2d2b85729fe Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Tue, 23 Jul 2024 13:30:17 +1000 Subject: [PATCH 28/29] MDEV-34617 galera.galera_ist_mariabackup_verify_ca fails on FreeBSD Was failing because innodb-log-file-buffering is a Linux/Windows only variable. This was introduced in MDEV-33787 to enforce O_DIRECT on Linux. --- .../suite/galera/t/galera_ist_mariabackup_verify_ca.cnf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf b/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf index ffd2306bfb3..d1d3b4eb9cd 100644 --- a/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf +++ b/mysql-test/suite/galera/t/galera_ist_mariabackup_verify_ca.cnf @@ -10,11 +10,11 @@ ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem [mysqld.1] wsrep_provider_options='base_port=@mysqld.1.#galera_port;pc.ignore_sb=true' -innodb-log-file-buffering +loose-innodb-log-file-buffering [mysqld.2] wsrep_provider_options='base_port=@mysqld.2.#galera_port;pc.ignore_sb=true' -innodb-log-file-buffering +loose-innodb-log-file-buffering [sst] ssl-mode=VERIFY_CA From 02b30044aa36eb0d99752da3026d14fa21da1e44 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Wed, 11 Sep 2024 13:37:40 +1000 Subject: [PATCH 29/29] 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); }