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

Spider: Implement more engine-defined options

Details

    Description

      Implement the engine-defined options corresponding to useful table
      options, including (options marked as ++ are included only because
      of the "keep" decision on the corresponding spider system variables
      in MDEV-27228):

      • auto_increment_mode
      • bgs_mode
      • bulk_size
      • bulk_update_size
      • connect_timeout
      • multi_split_read
      • net_read_timeout
      • net_write_timeout
      • priority
      • query_cache
      • query_cache_sync
      • read_only_mode
      • skip_parallel_search++
      • host
      • password
      • port
      • username
      • wrapper
      • default_file
      • default_group
      • driver
      • dsn
      • filedsn
      • socket
      • ssl_capath
      • ssl_ca
      • ssl_cert
      • ssl_cipher
      • ssl_key
      • ssl_vscs
      • use_pushdown_udf
      • force_bulk_delete
      • force_bulk_update
      • table_count_mode
      • delete_all_rows_type
      • idx

      Spider table parameters are documented (incompletely) at
      https://mariadb.com/kb/en/spider-table-parameters/

      Many of these table params have a twin system variable. Examples
      include read_only_mode, net_read_timeout etc. The natural
      approach to these params is to use HA_TOPTION_SYSVAR macro,
      which takes care of the value overriding. This is also a natural
      continuation of spider sysvar tickets like MDEV-27169 and
      MDEV-31524. However, table options can not fall back dynamically to
      the current sysvar value, so we have to keep the overriding/fallback
      mechanism and use the string type (HA_TOPTION_STRING) for these
      values, where we can encode unspecified as the null string.

      There's also a temporary problem with unspecified non-string table
      options. Given that we will keep connection string parsing by
      COMMENT or CONNECTION until MDEV-31146, It makes sense as a part of
      the changes for this ticket, to ignore COMMENT/CONNECTION parsing
      when any table option is used. However, it is not possible to tell
      whether a non-string type table option has been specified. We fix
      this by making these options also string type (so all spider options
      are of the string type) and if any of them is non-null (i.e.
      specified), we ignore COMMENT/CONNECTION for parsing. An alternative
      fix also considered was to make the COMMENT string parsing override
      these table options. However, this is an inferior choice given
      that 1. this increases complexity in overriding; 2. only six
      relatively uncommon table options are not sysvars and not strings
      (priority, query_cache, query_cache_sync, force_bulk_delete,
      force_bulk_update, table_count_mode); 3. all params are already
      supplied as strings (e.g. read_only_mode "1") in the existing
      comment string parsing so no surprise to users if they remain
      strings, and in create table statements strings do not need to be
      quoted anyway; 4. users might want to use comments for comments.

      Even though after this task there are MDEV-28861 and MDEV-31146 that
      duplicate and remove connection info encoded in comments, there will
      still be connection string parser in the spider codebase, for spider
      udfs like spider_direct_sql and spider_copy_tables.

      Regarding the choice of the table options in the list above, some
      undocumented parameters have unclear purpose. It is not in the scope
      of this ticket to try to document every one of them. Examples
      include force_bulk_update, force_bulk_delete,
      table_count_mode. Also worth noting is the parameter
      delete_all_rows_type, which is buggy at 11.2 (MDEV-31996), but
      on face value its purpose is clear, so we keep it for now.

      Attachments

        Issue Links

          Activity

            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) created issue -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Field Original Value New Value
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases
            Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-system-variables/
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-system-variables/
            The issue requires further discussion on the design before starting
            ----

            Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-system-variables/
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.8 [ 26121 ]
            ycp Yuchen Pei made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Yuchen Pei [ JIRAUSER52627 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 11.3 [ 28565 ]
            Fix Version/s 10.9 [ 26905 ]
            ycp Yuchen Pei made changes -
            julien.fritsch Julien Fritsch made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            ycp Yuchen Pei made changes -
            Description The issue requires further discussion on the design before starting
            ----

            Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-system-variables/
            The issue requires further discussion on the design before starting
            ----

            Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-parameters/
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            ycp Yuchen Pei made changes -
            Description The issue requires further discussion on the design before starting
            ----

            Implement the engine-defined options corresponding to the following table options.

            * host
            * password
            * port
            * socket
            * ssl_*
            * any other options used in MTR test cases

            https://mariadb.com/kb/en/spider-table-parameters/
            Implement the engine-defined options corresponding to useful table options, including:

            * host
            * password
            * port
            * socket
            * ssl_*
            * [ ] any other useful options (to decide, as an initial step of this task)

            https://mariadb.com/kb/en/spider-table-parameters/
            ycp Yuchen Pei made changes -
            Description Implement the engine-defined options corresponding to useful table options, including:

            * host
            * password
            * port
            * socket
            * ssl_*
            * [ ] any other useful options (to decide, as an initial step of this task)

            https://mariadb.com/kb/en/spider-table-parameters/
            Implement the engine-defined options corresponding to useful table options, including:

            * host
            * password
            * port
            * socket
            * ssl_*
            * [ ] any other useful options (to decide, as an initial step of this task)

            https://mariadb.com/kb/en/spider-table-parameters/
            ycp Yuchen Pei made changes -
            Description Implement the engine-defined options corresponding to useful table options, including:

            * host
            * password
            * port
            * socket
            * ssl_*
            * [ ] any other useful options (to decide, as an initial step of this task)

            https://mariadb.com/kb/en/spider-table-parameters/
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * static_key_cardinality
              * static_link_id
              * static_mean_rec_length
              * static_records_for_status
              * table_count_mode
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * static_key_cardinality
              * static_link_id
              * static_mean_rec_length
              * static_records_for_status
              * table_count_mode
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * static_key_cardinality
              * static_link_id
              * static_mean_rec_length
              * static_records_for_status
              * table_count_mode
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though following up after this task, there's MDEV-28861
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * static_key_cardinality
              * static_link_id
              * static_mean_rec_length
              * static_records_for_status
              * table_count_mode
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though following up after this task, there's MDEV-28861
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * table_count_mode
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included as per the
              "keep" decision on the corresponding spider system variables in
              MDEV-27228):
              
              * auto_increment_mode++
              * bgs_mode
              * bulk_size++
              * bulk_update_size++
              * connect_timeout++
              * multi_split_read++
              * net_read_timeout++
              * net_write_timeout++
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group

              To decide:
              * force_bulk_delete
              * force_bulk_update
              * idx
              * table_count_mode
              * driver
              * dsn
              * filedsn
              * pk_name
              * sequence_name
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.
                Implement the engine-defined options corresponding to useful table
                options, including (options marked as ++ are included as per the
                "keep" decision on the corresponding spider system variables in
                MDEV-27228):
                
                * auto_increment_mode++
                * bgs_mode
                * bulk_size++
                * bulk_update_size++
                * connect_timeout++
                * multi_split_read++
                * net_read_timeout++
                * net_write_timeout++
                * priority
                * query_cache
                * query_cache_sync
                * read_only_mode
                * skip_parallel_search++
                * host
                * password
                * port
                * username
                * wrapper
                * default_file
                * default_group
                * driver
                * dsn
                * filedsn
                * socket
                * ssl_capath
                * ssl_ca
                * ssl_cert
                * ssl_cipher
                * ssl_key
                * ssl_vscs
                * use_pushdown_udf
              
                To decide:
                * force_bulk_delete
                * force_bulk_update
                * idx
                * table_count_mode
                * sequence_name
                
                Spider table parameters are documented (incompletely) at
                https://mariadb.com/kb/en/spider-table-parameters/
              
                Even though after this task there's MDEV-28861 and MDEV-31146 that
                deprecate and remote connection info encoded in comments, the
                connection string parser is still needed for spider udfs like
                {{spider_direct_sql}} and {{spider_copy_tables}}.
              
            ycp Yuchen Pei made changes -
            Description     Implement the engine-defined options corresponding to useful table
                options, including (options marked as ++ are included as per the
                "keep" decision on the corresponding spider system variables in
                MDEV-27228):
                
                * auto_increment_mode++
                * bgs_mode
                * bulk_size++
                * bulk_update_size++
                * connect_timeout++
                * multi_split_read++
                * net_read_timeout++
                * net_write_timeout++
                * priority
                * query_cache
                * query_cache_sync
                * read_only_mode
                * skip_parallel_search++
                * host
                * password
                * port
                * username
                * wrapper
                * default_file
                * default_group
                * driver
                * dsn
                * filedsn
                * socket
                * ssl_capath
                * ssl_ca
                * ssl_cert
                * ssl_cipher
                * ssl_key
                * ssl_vscs
                * use_pushdown_udf
              
                To decide:
                * force_bulk_delete
                * force_bulk_update
                * idx
                * table_count_mode
                * sequence_name
                
                Spider table parameters are documented (incompletely) at
                https://mariadb.com/kb/en/spider-table-parameters/
              
                Even though after this task there's MDEV-28861 and MDEV-31146 that
                deprecate and remote connection info encoded in comments, the
                connection string parser is still needed for spider udfs like
                {{spider_direct_sql}} and {{spider_copy_tables}}.
              
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode

              To decide:
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include force_bulk_update, force_bulk_delete, table_count_mode.
              
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode

              To decide:
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include force_bulk_update, force_bulk_delete, table_count_mode.
              
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the default value overriding. This is
              also a natural continuation of spider sysvar tickets like MDEV-27169
              and MDEV-31524. It also makes sense to remove the -1 values
              deprecated in MDEV-27169, both because it is redundant and that
              engine-defined options do not support signed types.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the default value overriding. This is
              also a natural continuation of spider sysvar tickets like MDEV-27169
              and MDEV-31524. It also makes sense to remove the -1 values
              deprecated in MDEV-27169, both because it is redundant and that
              engine-defined options do not support signed types.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169, both because it is redundant and that engine-defined
              options do not support signed types.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169, both because it is redundant and that engine-defined
              options do not support signed types.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though we will keep connection string parsing by COMMENT until
              MDEV-31146, it makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used.

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169 for these sysvars, both because it is redundant and
              that engine-defined options do not support signed types. See also
              MDEV-27905.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Even though we will keep connection string parsing by COMMENT until
              MDEV-31146, it makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used.

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169 for these sysvars, both because it is redundant and
              that engine-defined options do not support signed types. See also
              MDEV-27905.

              Even though after this task there's MDEV-28861 and MDEV-31146 that
              deprecate and remote connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              We will keep connection string parsing by COMMENT until MDEV-31146.
              Ideally it makes sense as a part of the changes for this ticket, to
              ignore COMMENT parsing when any table option is used. However, it is
              not possible to tell whether table options have been specified, and
              by extension if a table option associated with a session var is set
              for the table or inherited from the session var, the COMMENT string
              parsing will need to override these table options.

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169 for these sysvars, both because it is redundant and
              that engine-defined options do not support signed types. See also
              MDEV-27905.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              We will keep connection string parsing by COMMENT until MDEV-31146.
              Ideally it makes sense as a part of the changes for this ticket, to
              ignore COMMENT parsing when any table option is used. However, it is
              not possible to tell whether table options have been specified, and
              by extension if a table option associated with a session var is set
              for the table or inherited from the session var, the COMMENT string
              parsing will need to override these table options.

              Many of these table params also have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. It also makes sense to remove the -1 values deprecated
              in MDEV-27169 for these sysvars, both because it is redundant and
              that engine-defined options do not support signed types. See also
              MDEV-27905.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, the
              connection string parser is still needed for spider udfs like
              {{spider_direct_sql}} and {{spider_copy_tables}}.

              Some undocumented parameters have unclear purpose. It is not in the
              scope of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              We will keep connection string parsing by COMMENT until MDEV-31146.
              Ideally it makes sense as a part of the changes for this ticket, to
              ignore COMMENT parsing when any table option is used. However, it is
              not possible to tell whether a non-string type table option has been
              specified, the COMMENT string parsing will need to override these
              table options. This is a temporary problem and will go away once
              MDEV-31146 is done.

              Another, longer term issue with unspecified table options is
              concerned with table params that have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              We will keep connection string parsing by COMMENT until MDEV-31146.
              Ideally it makes sense as a part of the changes for this ticket, to
              ignore COMMENT parsing when any table option is used. However, it is
              not possible to tell whether a non-string type table option has been
              specified, the COMMENT string parsing will need to override these
              table options. This is a temporary problem and will go away once
              MDEV-31146 is done.

              Another, longer term issue with unspecified table options is
              concerned with table params that have a twin system variable.
              Examples include {{read_only_mode}}, {{net_read_timeout}} etc. The
              natural approach to these params is to use {{HA_TOPTION_SYSVAR}}
              macro, which takes care of the value overriding. This is also a
              natural continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params have a twin system variable. Examples
              include {{read_only_mode}}, {{net_read_timeout}} etc. The natural
              approach to these params is to use {{HA_TOPTION_SYSVAR}} macro,
              which takes care of the value overriding. This is also a natural
              continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              There's also a temporary problem with unspecified non-string table
              options. We will keep connection string parsing by COMMENT until
              MDEV-31146. It makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used. However, it
              is not possible to tell whether a non-string type table option has
              been specified. We fix this by making these options also string
              type, so all spider options are of the string type, and if any of
              them is non-null (i.e. specified), we ignore COMMENT for parsing. An
              alternative fix also considered was to make the COMMENT string
              parsing override these table options. However, this is an inferior
              choice given that 1. this increases complexity in overriding; 2.
              only six relatively uncommon table options are not sysvars and not
              strings (priority, query_cache, query_cache_sync, force_bulk_delete,
              force_bulk_update, table_count_mode); 3. all params are already
              supplied as strings (e.g. read_only_mode "1") in the existing
              comment string parsing so no surprise to users; 4. users might want
              to use comments for comments.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.

            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params have a twin system variable. Examples
              include {{read_only_mode}}, {{net_read_timeout}} etc. The natural
              approach to these params is to use {{HA_TOPTION_SYSVAR}} macro,
              which takes care of the value overriding. This is also a natural
              continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              There's also a temporary problem with unspecified non-string table
              options. We will keep connection string parsing by COMMENT until
              MDEV-31146. It makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used. However, it
              is not possible to tell whether a non-string type table option has
              been specified. We fix this by making these options also string
              type, so all spider options are of the string type, and if any of
              them is non-null (i.e. specified), we ignore COMMENT for parsing. An
              alternative fix also considered was to make the COMMENT string
              parsing override these table options. However, this is an inferior
              choice given that 1. this increases complexity in overriding; 2.
              only six relatively uncommon table options are not sysvars and not
              strings (priority, query_cache, query_cache_sync, force_bulk_delete,
              force_bulk_update, table_count_mode); 3. all params are already
              supplied as strings (e.g. read_only_mode "1") in the existing
              comment string parsing so no surprise to users; 4. users might want
              to use comments for comments.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.

              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params have a twin system variable. Examples
              include {{read_only_mode}}, {{net_read_timeout}} etc. The natural
              approach to these params is to use {{HA_TOPTION_SYSVAR}} macro,
              which takes care of the value overriding. This is also a natural
              continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              There's also a temporary problem with unspecified non-string table
              options. We will keep connection string parsing by COMMENT until
              MDEV-31146. It makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used. However, it
              is not possible to tell whether a non-string type table option has
              been specified. We fix this by making these options also string
              type, so all spider options are of the string type, and if any of
              them is non-null (i.e. specified), we ignore COMMENT for parsing. An
              alternative fix also considered was to make the COMMENT string
              parsing override these table options. However, this is an inferior
              choice given that 1. this increases complexity in overriding; 2.
              only six relatively uncommon table options are not sysvars and not
              strings (priority, query_cache, query_cache_sync, force_bulk_delete,
              force_bulk_update, table_count_mode); 3. all params are already
              supplied as strings (e.g. read_only_mode "1") in the existing
              comment string parsing so no surprise to users, and in create table
              statements strings do not need to be quoted anyway; 4. users might
              want to use comments for comments.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Description   Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params have a twin system variable. Examples
              include {{read_only_mode}}, {{net_read_timeout}} etc. The natural
              approach to these params is to use {{HA_TOPTION_SYSVAR}} macro,
              which takes care of the value overriding. This is also a natural
              continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              There's also a temporary problem with unspecified non-string table
              options. We will keep connection string parsing by COMMENT until
              MDEV-31146. It makes sense as a part of the changes for this ticket,
              to ignore COMMENT parsing when any table option is used. However, it
              is not possible to tell whether a non-string type table option has
              been specified. We fix this by making these options also string
              type, so all spider options are of the string type, and if any of
              them is non-null (i.e. specified), we ignore COMMENT for parsing. An
              alternative fix also considered was to make the COMMENT string
              parsing override these table options. However, this is an inferior
              choice given that 1. this increases complexity in overriding; 2.
              only six relatively uncommon table options are not sysvars and not
              strings (priority, query_cache, query_cache_sync, force_bulk_delete,
              force_bulk_update, table_count_mode); 3. all params are already
              supplied as strings (e.g. read_only_mode "1") in the existing
              comment string parsing so no surprise to users, and in create table
              statements strings do not need to be quoted anyway; 4. users might
              want to use comments for comments.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
              Implement the engine-defined options corresponding to useful table
              options, including (options marked as ++ are included only because
              of the "keep" decision on the corresponding spider system variables
              in MDEV-27228):
              
              * auto_increment_mode
              * bgs_mode
              * bulk_size
              * bulk_update_size
              * connect_timeout
              * multi_split_read
              * net_read_timeout
              * net_write_timeout
              * priority
              * query_cache
              * query_cache_sync
              * read_only_mode
              * skip_parallel_search++
              * host
              * password
              * port
              * username
              * wrapper
              * default_file
              * default_group
              * driver
              * dsn
              * filedsn
              * socket
              * ssl_capath
              * ssl_ca
              * ssl_cert
              * ssl_cipher
              * ssl_key
              * ssl_vscs
              * use_pushdown_udf
              * force_bulk_delete
              * force_bulk_update
              * table_count_mode
              * delete_all_rows_type
              * idx
              
              Spider table parameters are documented (incompletely) at
              https://mariadb.com/kb/en/spider-table-parameters/

              Many of these table params have a twin system variable. Examples
              include {{read_only_mode}}, {{net_read_timeout}} etc. The natural
              approach to these params is to use {{HA_TOPTION_SYSVAR}} macro,
              which takes care of the value overriding. This is also a natural
              continuation of spider sysvar tickets like MDEV-27169 and
              MDEV-31524. However, table options can not fall back dynamically to
              the current sysvar value, so we have to keep the overriding/fallback
              mechanism and use the string type ({{HA_TOPTION_STRING}}) for these
              values, where we can encode unspecified as the null string.

              There's also a temporary problem with unspecified non-string table
              options. Given that we will keep connection string parsing by
              COMMENT or CONNECTION until MDEV-31146, It makes sense as a part of
              the changes for this ticket, to ignore COMMENT/CONNECTION parsing
              when any table option is used. However, it is not possible to tell
              whether a non-string type table option has been specified. We fix
              this by making these options also string type (so all spider options
              are of the string type) and if any of them is non-null (i.e.
              specified), we ignore COMMENT/CONNECTION for parsing. An alternative
              fix also considered was to make the COMMENT string parsing override
              these table options. However, this is an inferior choice given
              that 1. this increases complexity in overriding; 2. only six
              relatively uncommon table options are not sysvars and not strings
              (priority, query_cache, query_cache_sync, force_bulk_delete,
              force_bulk_update, table_count_mode); 3. all params are already
              supplied as strings (e.g. read_only_mode "1") in the existing
              comment string parsing so no surprise to users if they remain
              strings, and in create table statements strings do not need to be
              quoted anyway; 4. users might want to use comments for comments.

              Even though after this task there are MDEV-28861 and MDEV-31146 that
              duplicate and remove connection info encoded in comments, there will
              still be connection string parser in the spider codebase, for spider
              udfs like {{spider_direct_sql}} and {{spider_copy_tables}}.

              Regarding the choice of the table options in the list above, some
              undocumented parameters have unclear purpose. It is not in the scope
              of this ticket to try to document every one of them. Examples
              include {{force_bulk_update}}, {{force_bulk_delete}},
              {{table_count_mode}}. Also worth noting is the parameter
              {{delete_all_rows_type}}, which is buggy at 11.2 (MDEV-31996), but
              on face value its purpose is clear, so we keep it for now.
            ycp Yuchen Pei made changes -
            Assignee Yuchen Pei [ JIRAUSER52627 ] Alexey Botchkov [ holyfoot ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            holyfoot Alexey Botchkov made changes -
            Assignee Alexey Botchkov [ holyfoot ] Yuchen Pei [ JIRAUSER52627 ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            serg Sergei Golubchik made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            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 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels Preview_11.3
            ycp Yuchen Pei made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Comment [ Created MDEV-32477 safe_mutex: Found wrong usage of mutex 'LOCK_thd_data' and 'LOCK_plugin' ]
            Roel Roel Van de Paar made changes -
            ycp Yuchen Pei made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            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 -
            ycp Yuchen Pei made changes -
            ycp Yuchen Pei made changes -
            Fix Version/s 11.3.1 [ 29416 ]
            Fix Version/s 11.3 [ 28565 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]

            People

              ycp Yuchen Pei
              nayuta-yanagisawa Nayuta Yanagisawa (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              9 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.