Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-26178

Spider: remove unnecessary #ifdef and dead code in #ifdef

Details

    Description

      Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

      Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

      Use unifdef as far as possible.

      Attachments

        Issue Links

          1.
          Spider: remove #if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= ${VERSION} Technical task Closed Nayuta Yanagisawa (Inactive)
          2.
          Spider: remove #if MYSQL_VERSION_ID < ${VERSION} Technical task Closed Nayuta Yanagisawa (Inactive)
          3.
          Spider: remove #ifdef WITHOUT_SPIDER_BG_SEARCH Technical task Closed Nayuta Yanagisawa (Inactive)
          4.
          Spider: remove #ifdef HA_CAN_BULK_ACCESS Technical task Closed Nayuta Yanagisawa (Inactive)
          5.
          Spider: remove #ifdef HANDLER_HAS_DIRECT_AGGREGATE Technical task Closed Nayuta Yanagisawa (Inactive)
          6.
          Spider: remove #ifdef HA_MRR_USE_DEFAULT_IMPL Technical task Closed Nayuta Yanagisawa (Inactive)
          7.
          Spider: remove #ifdef SPIDER_HAS_HASH_VALUE_TYPE Technical task Closed Nayuta Yanagisawa (Inactive)
          8.
          Spider: remove #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS Technical task Closed Nayuta Yanagisawa (Inactive)
          9.
          Spider: remove #ifdef HASH_UPDATE_WITH_HASH_VALUE Technical task Closed Nayuta Yanagisawa (Inactive)
          10.
          Spider: remove #ifdef SPIDER_HAS_GROUP_BY_HANDLER Technical task Closed Yuchen Pei
          11.
          Spider: remove #ifdef HA_HAS_CHECKSUM_EXTENDED Technical task Closed Nayuta Yanagisawa (Inactive)
          12.
          Spider: remove #ifdef MARIADB_BASE_VERSION Technical task Closed Nayuta Yanagisawa (Inactive)
          13.
          Spider: remove #ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE Technical task Closed Nayuta Yanagisawa (Inactive)
          14.
          Spider: remove #ifdef SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS Technical task Closed Nayuta Yanagisawa (Inactive)
          15.
          Spider: remove #if defined(PARTITION_HAS_GET_CHILD_HANDLERS) Technical task Closed Nayuta Yanagisawa (Inactive)
          16.
          Spider: remove #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS Technical task Closed Nayuta Yanagisawa (Inactive)
          17.
          Spider: remove #ifdef SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS Technical task Closed Nayuta Yanagisawa (Inactive)
          18.
          Spider: remove #ifdef SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE Technical task Closed Nayuta Yanagisawa (Inactive)
          19.
          Spider: remove #ifdef SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM Technical task Closed Nayuta Yanagisawa (Inactive)
          20.
          Spider: remove #ifdef SPIDER_SQL_CACHE_IS_IN_LEX Technical task Closed Nayuta Yanagisawa (Inactive)
          21.
          Spider: remove #ifdef SPIDER_LIKE_FUNC_HAS_GET_NEGATED Technical task Closed Nayuta Yanagisawa (Inactive)
          22.
          Spider: remove #ifdef SPIDER_I_S_USE_SHOW_FOR_COLUMN Technical task Closed Nayuta Yanagisawa (Inactive)
          23.
          Spider: remove #ifdef SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM Technical task Closed Nayuta Yanagisawa (Inactive)
          24.
          Spider: remove #ifdef SPIDER_MDEV_16246 Technical task Closed Nayuta Yanagisawa (Inactive)
          25.
          Spider: remove #ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC Technical task Closed Nayuta Yanagisawa (Inactive)
          26.
          Spider: remove #ifdef SPIDER_HAS_MY_CHARLEN Technical task Closed Nayuta Yanagisawa (Inactive)
          27.
          Spider: remove #ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name Technical task Closed Nayuta Yanagisawa (Inactive)
          28.
          Spider: remove #ifdef SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR Technical task Closed Nayuta Yanagisawa (Inactive)
          29.
          Spider: remove #ifdef SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY Technical task Closed Nayuta Yanagisawa (Inactive)
          30.
          Spider: remove #ifdef SPIDER_use_LEX_CSTRING_for_Field_blob_constructor Technical task Closed Yuchen Pei
          31.
          Spider: remove #ifdef SPIDER_HAS_EXPR_CACHE_ITEM Technical task Closed Nayuta Yanagisawa (Inactive)
          32.
          Spider: remove #ifdef SPIDER_ITEM_HAS_CMP_TYPE Technical task Closed Nayuta Yanagisawa (Inactive)
          33.
          Spider: remove #ifdef ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC Technical task Closed Yuchen Pei
          34.
          Spider: remove #ifdef SPIDER_XID_USES_xid_cache_iterate Technical task Closed Nayuta Yanagisawa (Inactive)
          35.
          Spider: remove #ifdef SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR Technical task Closed Yuchen Pei
          36.
          Spider: remove #ifdef SPIDER_Item_args_arg_count_IS_PROTECTED Technical task Closed Yuchen Pei
          37.
          Spider: remove #ifdef SPIDER_NET_HAS_THD Technical task Closed Yuchen Pei
          38.
          Spider: remove #ifdef HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN Technical task Closed Yuchen Pei
          39.
          Spider: remove #ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT Technical task Closed Yuchen Pei
          40.
          Spider: remove #ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA Technical task Closed Yuchen Pei
          41.
          Spider: remove #ifdef ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC Technical task Closed Yuchen Pei

          Activity

            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) created issue -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Field Original Value New Value
            Description Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.
            Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ...
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ...
            Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * HANDLER_HAS_DIRECT_AGGREGATE
            * ...
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * HANDLER_HAS_DIRECT_AGGREGATE
            * ...
            Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdef in the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            Remove unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.7 [ 24805 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Epic Link MDEV-26286 [ 101691 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.7 [ 24805 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Summary Remove unnecessary #ifdef in Spider List unnecessary #ifdef in Spider
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase. The actual removal is out of the scope of the present issue.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Summary List unnecessary #ifdef in Spider List and remove unnecessary #ifdef in Spider
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase. The actual removal is out of the scope of the present issue.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.7 [ 24805 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.8 [ 26121 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Some of them might not be able to be removed:

            * HA_CAN_BULK_ACCESS
            * HA_CAN_DIRECT_UPDATE_AND_DELETE
            * HA_CAN_FORCE_BULK_DELETE
            * HA_CAN_FORCE_BULK_UPDATE
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HS_HAS_SQLCOM (MDEV-26858)
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE

            Might not be able to be removed (not checked):

            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HS_HAS_SQLCOM (MDEV-26858)
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE

            Might not be able to be removed (not checked):

            * HASH_UPDATE_WITH_HASH_VALUE
            * HA_SLOW_CMP_REF
            * HAVE_ORACLE_OCI
            * HAVE_PSI_INTERFACE
            * HS_HAS_SQLCOM
            * HTON_CAN_READ_CONNECT_STRING_IN_PARTITION
            * INFO_KIND_FORCE_LIMIT_BEGIN
            * INFO_KIND_UPDATE_FIELDS
            * INFO_KIND_UPDATE_VALUES
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MARIADB_BASE_VERSION
            * MODE_ANSI
            * MODE_ANSI_QUOTES
            * MODE_DB2
            * MODE_EMPTY_STRING_IS_NULL
            * MODE_ERROR_FOR_DIVISION_BY_ZERO
            * MODE_HIGH_NOT_PRECEDENCE
            * MODE_IGNORE_BAD_TABLE_OPTIONS
            * MODE_IGNORE_SPACE
            * MODE_INVALID_DATES
            * MODE_MAXDB
            * MODE_MSSQL
            * MODE_MYSQL323
            * MODE_MYSQL40
            * MODE_NO_AUTO_CREATE_USER
            * MODE_NO_AUTO_VALUE_ON_ZERO
            * MODE_NO_BACKSLASH_ESCAPES
            * MODE_NO_DIR_IN_CREATE
            * MODE_NO_ENGINE_SUBSTITUTION
            * MODE_NO_FIELD_OPTIONS
            * MODE_NO_KEY_OPTIONS
            * MODE_NO_TABLE_OPTIONS
            * MODE_NO_UNSIGNED_SUBTRACTION
            * MODE_NO_ZERO_DATE
            * MODE_NO_ZERO_IN_DATE
            * MODE_ONLY_FULL_GROUP_BY
            * MODE_ORACLE
            * MODE_PAD_CHAR_TO_FULL_LENGTH
            * MODE_PIPES_AS_CONCAT
            * MODE_POSTGRESQL
            * MODE_REAL_AS_FLOAT
            * MODE_SIMULTANEOUS_ASSIGNMENT
            * MODE_STRICT_ALL_TABLES
            * MODE_STRICT_TRANS_TABLES
            * MODE_TIME_ROUND_FRACTIONAL
            * MODE_TRADITIONAL
            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC

            Might not be able to be removed (not checked):

            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC

            Might not be able to be removed (not checked):

            * PLUGIN_VAR_CAN_MEMALLOC
            * pthread_cond_broadcast
            * pthread_cond_destroy
            * pthread_cond_signal
            * pthread_cond_t
            * pthread_cond_timedwait
            * pthread_cond_wait
            * pthread_mutex_destroy
            * pthread_mutex_lock
            * pthread_mutex_t
            * pthread_mutex_trylock
            * pthread_mutex_unlock
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}

            Might not be able to be removed (not checked):

            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}

            Might not be able to be removed (not checked):

            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_has_Item_has_subquery
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery

            Might not be able to be removed (not checked):

            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery

            Might not be able to be removed (not checked):

            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_NET_HAS_THD
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDER
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SQL_MODE_ANSI
            * SPIDER_SQL_MODE_ANSI_QUOTES
            * SPIDER_SQL_MODE_DB2
            * SPIDER_SQL_MODE_EMPTY_STRING_IS_NULL
            * SPIDER_SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO
            * SPIDER_SQL_MODE_HIGH_NOT_PRECEDENCE
            * SPIDER_SQL_MODE_IGNORE_BAD_TABLE_OPTIONS
            * SPIDER_SQL_MODE_IGNORE_SPACE
            * SPIDER_SQL_MODE_INVALID_DATES
            * SPIDER_SQL_MODE_MAXDB
            * SPIDER_SQL_MODE_MSSQL
            * SPIDER_SQL_MODE_MYSQL323
            * SPIDER_SQL_MODE_MYSQL40
            * SPIDER_SQL_MODE_NO_AUTO_CREATE_USER
            * SPIDER_SQL_MODE_NO_AUTO_VALUE_ON_ZERO
            * SPIDER_SQL_MODE_NO_BACKSLASH_ESCAPES
            * SPIDER_SQL_MODE_NO_DIR_IN_CREATE
            * SPIDER_SQL_MODE_NO_ENGINE_SUBSTITUTION
            * SPIDER_SQL_MODE_NO_FIELD_OPTIONS
            * SPIDER_SQL_MODE_NO_KEY_OPTIONS
            * SPIDER_SQL_MODE_NO_TABLE_OPTIONS
            * SPIDER_SQL_MODE_NO_UNSIGNED_SUBTRACTION
            * SPIDER_SQL_MODE_NO_ZERO_DATE
            * SPIDER_SQL_MODE_NO_ZERO_IN_DATE
            * SPIDER_SQL_MODE_ONLY_FULL_GROUP_BY
            * SPIDER_SQL_MODE_ORACLE
            * SPIDER_SQL_MODE_PAD_CHAR_TO_FULL_LENGTH
            * SPIDER_SQL_MODE_PIPES_AS_CONCAT
            * SPIDER_SQL_MODE_POSTGRESQL
            * SPIDER_SQL_MODE_REAL_AS_FLOAT
            * SPIDER_SQL_MODE_SIMULTANEOUS_ASSIGNMENT
            * SPIDER_SQL_MODE_STRICT_ALL_TABLES
            * SPIDER_SQL_MODE_STRICT_TRANS_TABLES
            * SPIDER_SQL_MODE_TIME_ROUND_FRACTIONAL
            * SPIDER_SQL_MODE_TRADITIONAL
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP

            Might not be able to be removed (not checked):

            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP

            Might not be able to be removed (not checked):

            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_STATE_HAS_in_thd
            * SPIDER_XID_USES_xid_cache_iterate
            * USE_PRAGMA_IMPLEMENTATION
            * USE_PRAGMA_INTERFACE
            * WITH_PARTITION_STORAGE_ENGINE
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * HAVE_ORACLE_OCI
            * HS_HAS_SQLCOM (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI-
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI-
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Summary List and remove unnecessary #ifdef in Spider Spider: remove dead code in #ifdef
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description List unnecessary #ifdef, which complicate the code, from the Spider codebase.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove these #ifdefs.

            Note: defined or not defined is judged on 10.7.

            Removable #ifdef (defined):

            * HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * HA_HAS_CHECKSUM_EXTENDED
            * HA_MRR_USE_DEFAULT_IMPL
            * HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * HANDLER_HAS_DIRECT_AGGREGATE
            * HANDLER_HAS_DIRECT_UPDATE_ROWS
            * HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * HA_SLOW_CMP_REF
            * MARIADB_BASE_VERSION
            * PLUGIN_VAR_CAN_MEMALLOC
            * SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * SPIDER_HAS_EXPLAIN_QUERY
            * SPIDER_HAS_EXPR_CACHE_ITEM
            * SPIDER_HAS_GROUP_BY_HANDLER
            * SPIDER_HAS_HASH_VALUE_TYPE
            * SPIDER_HAS_JT_HASH_INDEX_MERGE
            * SPIDER_HAS_MY_CHARLEN
            * SPIDER_HAS_NEXT_THREAD_ID
            * SPIDER_HAS_SHOW_SIMPLE_FUNC
            * SPIDER_HAS_TIME_STATUS
            * SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * SPIDER_Item_args_arg_count_IS_PROTECTED
            * SPIDER_ITEM_HAS_CMP_TYPE
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * SPIDER_MDEV_16246
            * SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * SPIDER_open_temporary_table
            * SPIDER_ORDER_HAS_ENUM_ORDE
            * SPIDER_SQL_CACHE_IS_IN_LEX
            * SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * SPIDER_XID_USES_xid_cache_iterate

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            Removable #ifdef (not defined):

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            * HA_CAN_BULK_ACCESS
            * HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * HA_PT_CALL_AT_ONCE_COND_PUSH
            * HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * HA_PT_CALL_AT_ONCE_EXTRA
            * HA_PT_CALL_AT_ONCE_INFO_PUSH
            * HA_PT_CALL_AT_ONCE_START_STMT
            * HA_PT_CALL_AT_ONCE_STORE_LOCK
            * HA_PT_CALL_AT_ONCE_TOP_TABLE
            * HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * MYSQL_VERSION_ID < ${OLD_VERSION}
            * SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * SPIDER_has_Item_has_subquery
            * SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * SPIDER_NET_HAS_THD
            * SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * SPIDER_XID_STATE_HAS_in_thd
            * XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 123562 ] MariaDB v4 [ 131526 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * -ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC- (maybe used in future)
            * -ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC- (maybe used in future)
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x)ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x)ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x)ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x)ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.9 [ 26905 ]
            Fix Version/s 10.8 [ 26121 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) MYSQL_VERSION_ID < ${OLD_VERSION}
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_HASH_VALUE_TYPE
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_CAN_BULK_ACCESS
            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HA_PT_CALL_AT_ONCE_COND_PUSH
            * (x) HA_PT_CALL_AT_ONCE_EXTERNAL_LOCK
            * (x) HA_PT_CALL_AT_ONCE_EXTRA
            * (x) HA_PT_CALL_AT_ONCE_INFO_PUSH
            * (x) HA_PT_CALL_AT_ONCE_START_STMT
            * (x) HA_PT_CALL_AT_ONCE_STORE_LOCK
            * (x) HA_PT_CALL_AT_ONCE_TOP_TABLE
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_use_LEX_CSTRING_for_database_tablename_alias
            * (x) SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_use_LEX_CSTRING_for_KEY_Field_name
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE
            * (x) SPIDER_HAS_DECIMAL_OPERATION_RESULTS_VALUE_TYPE
            * (x) SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
            * (x) SPIDER_HAS_EXPLAIN_QUERY
            * (x) SPIDER_HAS_EXPR_CACHE_ITEM
            * (x) SPIDER_HAS_GROUP_BY_HANDLER
            * (x) SPIDER_HAS_JT_HASH_INDEX_MERGE
            * (x) SPIDER_HAS_MY_CHARLEN
            * (x) SPIDER_HAS_NEXT_THREAD_ID
            * (x) SPIDER_HAS_SHOW_SIMPLE_FUNC
            * (x) SPIDER_HAS_TIME_STATUS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
            * (x) HANDLER_HAS_DIRECT_AGGREGATE
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS
            * (x) HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
            * (x) HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The following constant should be checked:

            * (x) HA_EXTRA_HAS_STARTING_ORDERED_INDEX_SCAN
            * (x) HA_HAS_CHECKSUM_EXTENDED
            * (x) HA_MRR_USE_DEFAULT_IMPL
            * (x) HA_SLOW_CMP_REF
            * (x) MARIADB_BASE_VERSION
            * (x) PLUGIN_VAR_CAN_MEMALLOC
            * (x) SPIDER_ENGINE_CONDITION_PUSHDOWN_IS_ALWAYS_ON
            * (x) SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
            * (x) SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
            * (x) SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
            * (x) SPIDER_I_S_USE_SHOW_FOR_COLUMN
            * (x) SPIDER_Item_args_arg_count_IS_PROTECTED
            * (x) SPIDER_ITEM_HAS_CMP_TYPE
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY
            * (x) SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
            * (x) SPIDER_LIKE_FUNC_HAS_GET_NEGATED
            * (x) SPIDER_MDEV_16246
            * (x) SPIDER_NEED_INIT_ONE_TABLE_FOR_FIND_TEMPORARY_TABLE
            * (x) SPIDER_open_temporary_table
            * (x) SPIDER_ORDER_HAS_ENUM_ORDE
            * (x) SPIDER_SQL_CACHE_IS_IN_LEX
            * (x) SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
            * (x) SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
            * (x) SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM
            * (x) SPIDER_XID_USES_xid_cache_iterate.

            * (x) HA_EXTRA_HAS_HA_EXTRA_USE_CMP_REF
            * (x) HASH_UPDATE_WITH_HASH_VALUE
            * -HAVE_ORACLE_OCI- (MDEV-26912)
            * -HS_HAS_SQLCOM- (MDEV-26858)
            * (x) ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC
            * (x) ITEM_FUNC_TIMESTAMPDIFF_ARE_PUBLIC
            * (x) SPIDER_HANDLER_SUPPORT_MULTIPLE_KEY_PARTS
            * (x) SPIDER_has_Item_has_subquery
            * (x) SPIDER_NEED_CHECK_CONDITION_AT_CHECKING_DIRECT_ORDER_LIMIT
            * (x) SPIDER_NET_HAS_THD
            * (x) SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
            * (x) SPIDER_XID_STATE_HAS_in_thd
            * (x) WITHOUT_SPIDER_BG_SEARCH
            * -WITH_PARTITION_STORAGE_ENGINE- (MDEV-27474)
            * (x) XID_CACHE_IS_SPLITTED
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.
            Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Alexey Botchkov [ holyfoot ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Alexey Botchkov [ holyfoot ] Nayuta Yanagisawa [ JIRAUSER47117 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Status In Review [ 10002 ] Stalled [ 10000 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Summary Spider: remove dead code in #ifdef Spider: remove unnecessary #ifdef and dead code in #ifdef
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Priority Major [ 3 ] Minor [ 4 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Labels beginner-friendly
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            Use {{unifdef}} as far as possible.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            Use {{unifdef}} as far as possible.

            The purpose of the issue is to improve the extensibility and readability of the Spider codebase. So, we do not need to stick to cleaning up all the #ifdefs. Cleaning up significant ones is enough.
            Remove unnecessary #ifdefs and dead code, in Spider, which is protected by #ifdef.

            Some time ago, the Spider was a separate project, and Kentoku tried to make it compile on many MySQL and MariaDB versions without changes. So, there are many #ifdef macro in the Spider codebase, which were to adjust Spider for changes in API over different server versions. For example, see {{ITEM_FUNC_CASE_PARAMS_ARE_PUBLIC}}. Now, the Spider is part of the source tree, and thus we can remove dead code in #ifdef.

            Use {{unifdef}} as far as possible.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.10 [ 27530 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Status Stalled [ 10000 ] In Progress [ 3 ]
            ycp Yuchen Pei made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Yuchen Pei [ JIRAUSER52627 ]
            ycp Yuchen Pei made changes -
            Fix Version/s 11.1 [ 28549 ]
            Fix Version/s 10.9 [ 26905 ]
            Fix Version/s 10.10 [ 27530 ]
            ycp Yuchen Pei made changes -
            Status In Progress [ 3 ] Stalled [ 10000 ]
            ycp Yuchen Pei made changes -
            Fix Version/s 10.5 [ 23123 ]
            Fix Version/s 11.1 [ 28549 ]
            ycp Yuchen Pei made changes -
            Assignee Yuchen Pei [ JIRAUSER52627 ] Alexey Botchkov [ holyfoot ]
            Status Stalled [ 10000 ] In Review [ 10002 ]
            holyfoot Alexey Botchkov made changes -
            Assignee Alexey Botchkov [ holyfoot ] Yuchen Pei [ JIRAUSER52627 ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            ycp Yuchen Pei made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            ycp Yuchen Pei made changes -
            Assignee Yuchen Pei [ JIRAUSER52627 ] Roel Van de Paar [ roel ]
            Roel Roel Van de Paar made changes -
            Assignee Roel Van de Paar [ roel ] Yuchen Pei [ JIRAUSER52627 ]
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            ycp Yuchen Pei made changes -
            Fix Version/s N/A [ 14700 ]
            Fix Version/s 10.5 [ 23123 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]

            People

              ycp Yuchen Pei
              nayuta-yanagisawa Nayuta Yanagisawa (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.