Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
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
- blocks
-
MDEV-28861 Spider: Deprecate table options by COMMENT
-
- Closed
-
- causes
-
MDEV-32486 Assertion `!trx->alloc_line_no[id] || trx->alloc_line_no[id] == line_no' failed in spider_alloc_mem_calc
-
- Closed
-
-
MDEV-32558 ERROR 1429 (base) versus crash [SIGSEGV in spider_create_conn] (28856 patch) and ERROR 12719 infinite loop (base) versus ERROR 12518 table is read only (patch) on optimized builds in CLI
-
- Closed
-
- includes
-
MDEV-32157 Backport cleanup commits from MDEV-28856 to lower versions
-
- Closed
-
-
MDEV-32234 Missing spaces in Spider variable descriptions
-
- Closed
-
- is blocked by
-
MDEV-31117 Spider UBSAN runtime error: applying non-zero offset x to null pointer in st_spider_param_string_parse::restore_delims
-
- Closed
-
-
MDEV-32486 Assertion `!trx->alloc_line_no[id] || trx->alloc_line_no[id] == line_no' failed in spider_alloc_mem_calc
-
- Closed
-
- relates to
-
MDEV-27228 Deprecate Spider plugin variables that result in excessive tweak
-
- Stalled
-
-
MDEV-27106 Spider: specify connection to data node by engine-defined attributes
-
- Closed
-
-
MDEV-32492 SIGSEGV in spider_conn_first_link_idx and others on DELETE, INSERT and SELECT
-
- Closed
-
-
MDEV-32557 "ERROR 12501 (HY000): The connect info 'MYSQL' is invalid" not repeatable in MDEV-28856 branch
-
- Closed
-
-
MDEV-32585 ASAN: stack-buffer-overflow in get_defaults_options on SELECT
-
- Confirmed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
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/ |
Link |
This issue blocks |
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/ |
Fix Version/s | 10.8 [ 26121 ] |
Assignee | Nayuta Yanagisawa [ JIRAUSER47117 ] | Yuchen Pei [ JIRAUSER52627 ] |
Fix Version/s | 11.3 [ 28565 ] | |
Fix Version/s | 10.9 [ 26905 ] |
Link | This issue blocks MENT-813 [ MENT-813 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Link | This issue relates to MENT-813 [ MENT-813 ] |
Link | This issue relates to MENT-813 [ MENT-813 ] |
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/ |
Link | This issue relates to MDEV-27228 [ MDEV-27228 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
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/ |
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/ |
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/ |
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 |
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 |
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 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}}. |
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 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 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}}. |
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 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 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. |
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 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 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 ( on face value its purpose is clear, so we keep it for now. |
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 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 ( 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 and deprecated in engine-defined options do not support signed types. Even though after this task there's 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 ( on face value its purpose is clear, so we keep it for now. |
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 and deprecated in engine-defined options do not support signed types. Even though after this task there's 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 ( 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 in options do not support signed types. Even though after this task there's 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 ( on face value its purpose is clear, so we keep it for now. |
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 in options do not support signed types. Even though after this task there's 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 ( 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 in that engine-defined options do not support signed types. See also MDEV-27905. Even though after this task there's 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 ( on face value its purpose is clear, so we keep it for now. |
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 in that engine-defined options do not support signed types. See also MDEV-27905. Even though after this task there's 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 ( 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 in that engine-defined options do not support signed types. See also MDEV-27905. Even though after this task there are 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 ( on face value its purpose is clear, so we keep it for now. |
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 in that engine-defined options do not support signed types. See also MDEV-27905. Even though after this task there are 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 ( 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 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 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 ( on face value its purpose is clear, so we keep it for now. |
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 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 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 ( 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 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 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 ( on face value its purpose is clear, so we keep it for now. |
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 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 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 ( 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 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 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 ( on face value its purpose is clear, so we keep it for now. |
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 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 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 ( 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 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 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 ( on face value its purpose is clear, so we keep it for now. |
Assignee | Yuchen Pei [ JIRAUSER52627 ] | Alexey Botchkov [ holyfoot ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Alexey Botchkov [ holyfoot ] | Yuchen Pei [ JIRAUSER52627 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Link | This issue blocks TODO-4253 [ TODO-4253 ] |
Link |
This issue is blocked by |
Link |
This issue includes |
Link | This issue relates to MDEV-32046 [ MDEV-32046 ] |
Link | This issue relates to MDEV-32046 [ MDEV-32046 ] |
Link | This issue blocks TODO-4253 [ TODO-4253 ] |
Link | This issue is part of TODO-4253 [ TODO-4253 ] |
Status | Stalled [ 10000 ] | In Testing [ 10301 ] |
Assignee | Yuchen Pei [ JIRAUSER52627 ] | Roel Van de Paar [ roel ] |
Labels | Preview_11.3 |
Link |
This issue includes |
Link |
This issue is blocked by |
Link |
This issue causes |
Link |
This issue is blocked by |
Comment |
[ Created |
Link |
This issue causes |
Link |
This issue blocks |
Link |
This issue causes |
Link |
This issue is blocked by |
Link |
This issue causes |
Link |
This issue is blocked by |
Link |
This issue is blocked by |
Link |
This issue causes |
Link |
This issue relates to |
Link |
This issue is blocked by |
Link |
This issue is blocked by |
Link |
This issue is blocked by |
Link |
This issue causes |
Link |
This issue is blocked by |
Link |
This issue relates to |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue is blocked by |
Link |
This issue is blocked by |
Link | This issue relates to MDEV-32585 [ MDEV-32585 ] |
Link | This issue causes MDEV-32585 [ MDEV-32585 ] |
Assignee | Roel Van de Paar [ roel ] | Yuchen Pei [ JIRAUSER52627 ] |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Link | This issue causes MDEV-32585 [ MDEV-32585 ] |
Link |
This issue blocks |
Fix Version/s | 11.3.1 [ 29416 ] | |
Fix Version/s | 11.3 [ 28565 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
From the big switch in spider_parse_connect_info in spd_table.cc
at 11.2[1], I identified 107 table options the user can specify in a
spider connection string, annotated with their statuses:
+: to keep
++: to keep (mdev-27228)
/: deprecated
--: to deprecate (mdev-27228)
access_balances
active_link_count
auto_increment_mode++
bgs_first_read--
bgs_mode
bgs_second_read--
bka_engine--
bka_mode--
bka_table_name_types/
buffer_size/
bulk_size++
bulk_update_mode--
bulk_update_size++
casual_read--
connect_timeouts++
crd_bg_mode--
crd_interval--
crd_mode/
crd_sync/
crd_type/
crd_weight/
delete_all_rows_type
direct_dup_insert--
direct_order_limit--
error_read_mode--
error_write_mode--
first_read--
force_bulk_delete
force_bulk_update
init_sql_alloc_size/
internal_limit/
internal_offset/
internal_optimize--
internal_optimize_local--
key_hint
link_statuses
load_crd_at_startup--
load_sts_at_startup--
low_mem_read--
max_order--
monitoring_bg_flag
monitoring_bg_interval
monitoring_bg_kind
monitoring_binlog_pos_at_failing
monitoring_flag
monitoring_kind
monitoring_limit
monitoring_sid
multi_split_read++
net_read_timeouts++
net_write_timeouts++
priority
query_cache
query_cache_sync
quick_mode--
quick_page_byte--
quick_page_size--
read_only_mode++
read_rate
reset_sql_alloc--
scan_rate
second_read--
select_column_mode--
selupd_lock_mode--
semi_split_read--
semi_split_read_limit--
semi_table_lock/
semi_table_lock_conn/
server_names+
skip_default_condition--
skip_parallel_search++
split_read--
static_key_cardinality
static_link_ids
static_mean_rec_length
static_records_for_status
store_last_crd--
store_last_sts/
strict_group_bys--
sts_bg_mode--
sts_interval--
sts_mode/
sts_sync/
table_count_mode
tgt_dbs+
tgt_default_files
tgt_default_groups
tgt_drivers
tgt_dsns
tgt_filedsns
tgt_hosts+
tgt_passwords+
tgt_pk_names
tgt_ports+
tgt_sequence_names
tgt_sockets
tgt_ssl_capaths
tgt_ssl_cas
tgt_ssl_certs
tgt_ssl_ciphers
tgt_ssl_keys
tgt_ssl_vscs
tgt_table_names+
tgt_usernames+
tgt_wrappers+
use_pushdown_udf
use_table_charset--
Of the annotations:
reasons, like remote table names and ports.
are marked in MDEV-27288 to keep. If the system variables
make sense as table options, then the decision to keep carries over
can ignore them for this task
are marked in MDEV-27288 to deprecate, but have not been deprecated
yet. Assuming the decision is correct, we can ignore these options
for this task too.
Removing the ones marked as deprecated to to be deprecated, we are
left with 58 table options, of which we need to make decisions on 50
of them (i.e. those not marked with a single +), whether to
implement each one of them as an engine defined option:
+: to keep
++: to keep (mdev-27228)
access_balances
active_link_count
auto_increment_mode++
bgs_mode
bulk_size++
bulk_update_size++
connect_timeouts++
delete_all_rows_type
force_bulk_delete
force_bulk_update
key_hint
link_statuses
monitoring_bg_flag
monitoring_bg_interval
monitoring_bg_kind
monitoring_binlog_pos_at_failing
monitoring_flag
monitoring_kind
monitoring_limit
monitoring_sid
multi_split_read++
net_read_timeouts++
net_write_timeouts++
priority
query_cache
query_cache_sync
read_only_mode++
read_rate
scan_rate
server_names+
skip_parallel_search++
static_key_cardinality
static_link_ids
static_mean_rec_length
static_records_for_status
table_count_mode
tgt_dbs+
tgt_default_files
tgt_default_groups
tgt_drivers
tgt_dsns
tgt_filedsns
tgt_hosts+
tgt_passwords+
tgt_pk_names
tgt_ports+
tgt_sequence_names
tgt_sockets
tgt_ssl_capaths
tgt_ssl_cas
tgt_ssl_certs
tgt_ssl_ciphers
tgt_ssl_keys
tgt_ssl_vscs
tgt_table_names+
tgt_usernames+
tgt_wrappers+
use_pushdown_udf
[1] https://github.com/MariaDB/server/blob/4f39ae75606d0400d7d6a3fc5e2123d7aa244011/storage/spider/spd_table.cc#L2199