Commit graph

175 commits

Author SHA1 Message Date
Oleksandr Byelkin
50107c4b22 Merge branch '10.4' into 10.5 2024-01-30 07:26:17 +01:00
Yuchen Pei
1070575a89
MDEV-33191 spider: fix dbton_id when iterating over links
There are two array fields in spider_share with similar names:

share->use_sql_dbton_ids that maps from i to the i-th dbton used by
share. Thus it should be used only when i iterates over all distinct
dbtons used by share.

share->sql_dbton_ids that maps from i to the dbton used by the i-th
link of the share. Thus it should be used only when i iterates over
all links of a share.

We correct instances where share->sql_dbton_ids should be used instead
of share->use_sql_dbton_ids.
2024-01-25 12:33:52 +11:00
Marko Mäkelä
9374772ecd Merge 10.11 into 11.0 2024-01-19 09:07:48 +02:00
Marko Mäkelä
ad13fb36bf Merge 10.6 into 10.11 2024-01-17 17:37:15 +02:00
Yuchen Pei
d06b6de305
Merge branch '10.5' into 10.6 2024-01-11 12:59:22 +11:00
Yuchen Pei
7801c6d22d
MDEV-29002 Spider: remove SPIDER_CONN::loop_check_meraged_last
The field is assigned but unused, and it causes heap-use-after-free.
2024-01-11 11:41:52 +11:00
Sergei Golubchik
8c8bce05d2 Merge branch '10.11' into 11.0 2023-12-19 15:53:18 +01:00
Sergei Golubchik
fd0b47f9d6 Merge branch '10.6' into 10.11 2023-12-18 11:19:04 +01:00
Sergei Golubchik
e95bba9c58 Merge branch '10.5' into 10.6 2023-12-17 11:20:43 +01:00
Yuchen Pei
c33ca17c17
Merge branch '10.4' into 10.5 2023-12-07 17:52:44 +11:00
Yuchen Pei
d8f5d2bef0
MDEV-22979 MDEV-27233 MDEV-28218 Fixing spider init bugs
Fix spider init bugs (MDEV-22979, MDEV-27233, MDEV-28218) while
preventing regression on old ones (MDEV-30370, MDEV-29904)

Two things are changed:

First, Spider initialisation is made fully synchronous, i.e. it no
longer happens in a background thread. Adapted from the original fix
by nayuta for MDEV-27233. This change itself would cause failure when
spider is initialised early, by plugin-load-add, due to dependency on
Aria and udf function creation, which are fixed in the second and
third parts below. Requires SQL Service, thus porting earlier versions
requires MDEV-27595

Second, if spider is initialised before udf_init(), create udf by
inserting into `mysql.func`, otherwise do it by `CREATE FUNCTION` as
usual. This change may be generalised in MDEV-31401.

Also factor out some clean-up queries from deinit_spider.inc for use
of spider init tests.

A minor caveat is that early spider initialisation will fail if the
server is bootstrapped for the first time, due to missing `mysql`
database which needs to be created by the bootstrap script.
2023-12-07 16:01:41 +11:00
Yuchen Pei
ddd5449c57
[fixup] post-merge spider fixup
MDEV-32524: a couple missed magic numbers
MDEV-26247: a couple missed goto statements that could lead to memory leak
2023-12-05 14:33:16 +11:00
Sergei Golubchik
98a39b0c91 Merge branch '10.4' into 10.5 2023-12-02 01:02:50 +01:00
Yuchen Pei
0b36694ff8
MDEV-32524 Use enums for ids passed to spider mem alloc functions
This will avoid issues like MDEV-32486

IDs used in
- spider_alloc_calc_mem_init()
- spider_string::init_calc_mem()
- spider_malloc()
- spider_bulk_alloc_mem()
- spider_bulk_malloc()
2023-11-20 09:25:43 +11:00
Marko Mäkelä
be24e75229 Merge 10.11 into 11.0 2023-10-19 08:12:16 +03:00
Marko Mäkelä
2ecc0443ec Merge 10.10 into 10.11 2023-10-17 16:04:21 +03:00
Marko Mäkelä
d5e15424d8 Merge 10.6 into 10.10
The MDEV-29693 conflict resolution is from Monty, as well as is
a bug fix where ANALYZE TABLE wrongly built histograms for
single-column PRIMARY KEY.
Also includes a fix for safe_malloc error reporting.

Other things:
- Copied main.log_slow from 10.4 to avoid mtr issue

Disabled test:
- spider/bugfix.mdev_27239 because we started to get
  +Error	1429 Unable to connect to foreign data source: localhost
  -Error	1158 Got an error reading communication packets
- main.delayed
  - Bug#54332 Deadlock with two connections doing LOCK TABLE+INSERT DELAYED
    This part is disabled for now as it fails randomly with different
    warnings/errors (no corruption).
2023-10-14 13:36:11 +03:00
Yuchen Pei
17810b7585
Merge branch '10.10' into 10.11 2023-10-13 18:05:20 +11:00
Yuchen Pei
a60cf9c7ae
MDEV-22979 MDEV-27233 MDEV-28218 Fixing spider init bugs
Fix spider init bugs (MDEV-22979, MDEV-27233, MDEV-28218) while
preventing regression on old ones (MDEV-30370, MDEV-29904)

Two things are changed:

First, Spider initialisation is made fully synchronous, i.e. it no
longer happens in a background thread. Adapted from the original fix
by nayuta for MDEV-27233. This change itself would cause failure when
spider is initialised early, by plugin-load-add, due to dependency on
Aria and udf function creation, which are fixed in the second and
third parts below. Requires SQL Service, thus porting earlier versions
requires MDEV-27595

Second, if spider is initialised before udf_init(), create udf by
inserting into `mysql.func`, otherwise do it by `CREATE FUNCTION` as
usual. This change may be generalised in MDEV-31401.

Also factor out some clean-up queries from deinit_spider.inc for use
of spider init tests.

A minor caveat is that early spider initialisation will fail if the
server is bootstrapped for the first time, due to missing `mysql`
database which needs to be created by the bootstrap script.
2023-10-05 16:19:10 +11:00
Yuchen Pei
0f870914d4
Merge branch '10.5' into 10.6 2023-09-15 15:23:37 +10:00
Yuchen Pei
cf81626307
Merge branch '10.4' into 10.5 2023-09-15 15:21:48 +10:00
Yuchen Pei
18990f0073
MDEV-32157 MDEV-28856 Spider: Tests, documentation, small fixes and cleanups
Removed some redundant hint related string literals from
spd_db_conn.cc

Clean up SPIDER_PARAM_*_[CHAR]LEN[S]

Adding tests covering monitoring_kind=2. What it does is that it reads
from mysql.spider_link_mon_servers with matching db_name, table_name,
link_id, and does not do anything about that...

How monitoring_* can be useful: in the deprecated spider high
availability feature, when one remote fails, spider will try another
remote, which apparently makes use of these table parameters.

A test covering the query_cache_sync table param. Some further tests
on some spider table params.

Wrapper should be case insensitive.

Code documentation on spider priority binary tree.

Add an assertion that static_key_cardinality is always -1. All tests
pass still
2023-09-15 13:15:33 +10:00
Yuchen Pei
b5d317197c
MDEV-29676 refactored and documented spider_get_share() and friends
Extracted out common subroutines, gave more meaningful names etc,
added comments etc.

Also:
- Documented active servers load balancing reads, and other fields in
  SPIDER_SHARE etc.
- Removed commented out code
- Documented and refactored self-reference check
- Removed some unnecessary functions
- Renamed unhelpful roop_count
- Refactored spider_get_{sts,crd}, where we turn get_type into an enum
- Cleaned up spider_mbase_handler::show_table_status() and
  spider_mbase_handler::show_index()
2023-04-28 10:29:29 +10:00
Yuchen Pei
a8dac17a42
MDEV-28363 remove #ifdef SPIDER_use_LEX_CSTRING_for_Field_blob_constructor 2023-04-28 10:05:38 +10:00
Yuchen Pei
1be861c582
MDEV-28526 Spider: remove conn_kind member variables
The conn_kind, which stands for "connection kind", is no longer useful
because the HandlerSocket support is deleted and Spider now has only
one connection kind, SPIDER_CONN_KIND_MYSQL. Remove conn_kind and
related code.

Signed-off-by: Yuchen Pei <yuchen.pei@mariadb.com>
Reviewed-by: Nayuta Yanagisawa <nayuta.yanagisawa@mariadb.com>
2022-12-23 17:58:51 +11:00
Yuchen Pei
9c05c840b4
MDEV-28891 Spider: remove #ifdef SPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR
unifdef -DSPIDER_FIELD_FIELDPTR_REQUIRES_THDPTR -m
storage/spider/*.{cc,h}

and removing the definition manually.

Signed-off-by: Yuchen Pei <yuchen.pei@mariadb.com>
Reviewed-by: Nayuta Yanagisawa <nayuta.yanagisawa@mariadb.com>
2022-12-23 16:17:46 +11:00
sawasa
12c2364159
MDEV-28890 Spider: remove #ifdef SPIDER_XID_USES_xid_cache_iterate
Reviewed by: Nayuta Yanagisawa
2022-08-31 22:05:02 +09:00
Marko Mäkelä
63961a08a6 Merge 10.9 into 10.10 2022-06-28 12:33:39 +03:00
Marko Mäkelä
404d4820af Merge 10.8 into 10.9 2022-06-28 10:59:01 +03:00
Marko Mäkelä
9523986299 Merge 10.7 into 10.8 2022-06-28 10:06:00 +03:00
Marko Mäkelä
87bd79b1e7 Merge 10.5 into 10.6 2022-06-27 10:59:31 +03:00
Marko Mäkelä
ea847cbeaf Merge 10.4 into 10.5 2022-06-27 10:51:20 +03:00
Marko Mäkelä
01d757036f Merge 10.3 into 10.4 2022-06-27 10:14:37 +03:00
Hirokazu Hata
2c1aaa6664
MDEV-28854 Disallow INSERT DELAYED on Spider table
Spider supports (or at least allows) INSERT DELAYED but the
documentation does not specify spider as a storage engine that supports
"INSERT DELAYED".
Also, although not mentioned in the documentation, "INSERT DELAYED" is
not intended to be executed inside a transaction, as can be seen from
the list of supported storage engines.
The current implementation allows executing a delayed insert on a
remote transactional table and this breaks the consistency ensured by
the transaction.

We too remove "internal_delayed", one of the Spider table parameters.
Documentation says,

> Whether to transmit existence of delay to remote servers when
> executing an INSERT DELAYED statement on local server.

This table parameter is only used for "INSERT DELAYED".

Reviewed by: Nayuta Yanagisawa
2022-06-27 14:58:18 +09:00
Marko Mäkelä
32edabd1f2 Merge 10.9 into 10.10 2022-06-09 15:26:09 +03:00
Nayuta Yanagisawa
57d233e2a6 MDEV-27256 Delete spider_use_handler and related code (2/3)
Delete the deprecated variable, spider_use_handler and related code.

Spider now does not supports accessing data nodes via handler
statements. Thus, the notion of SQL kinds are no longer useful.
We too discard it.
2022-06-09 17:26:27 +09:00
Nayuta Yanagisawa
8c4a2c8ad4 MDEV-26282 Make the version of Spider the same as the server version
Spider is now a part of the server. So, it doesn't make sense for Spider
to have its own version number apart from the server's one.
2022-06-08 14:01:48 +09:00
Marko Mäkelä
d491062368 Merge 10.9 into 10.10 2022-06-07 09:42:02 +03:00
Nayuta Yanagisawa
0e8342d47e MDEV-27648 fixup: delete unused member of st_spider_transaction
st_spider_transaction::thd_hash_value is no longer used because of
MDEV-27648.
2022-06-03 22:01:34 +09:00
Kazzix
081a284712
MDEV-28360 Spider: remove #ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name
Reviewed by: Nayuta Yanagisawa
2022-05-31 11:38:02 +09:00
Ryu Yamada
289b9e4155
MDEV-28361 Spider: remove #ifdef SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
Reviewed by: Nayuta Yanagisawa
2022-05-20 01:40:59 +09:00
Masashi Tomooka
6b5a629ec3
MDEV-28359 Spider: remove #ifdef SPIDER_HAS_MY_CHARLEN
Reviewed by: Nayuta Yanagisawa
2022-05-19 23:37:54 +09:00
Nayuta Yanagisawa
f76da7f662 MDEV-27474 Spider: remove #WITH_PARTITION_STORAGE_ENGINE
"#ifdef WITH_PARTITION_STORAGE_ENGINE ... #endif" appears frequently
in the Spider code base. However, there is no need to maintain such
ifdefs because Spider is disabled if the partitioning engine is disabled.
2022-03-31 21:43:59 +09:00
Nayuta Yanagisawa
7c339a65b8 MDEV-26178 fixup: Delete constants used nowhere 2022-02-10 15:08:44 +09:00
Nayuta Yanagisawa
e22b3fe6f6 MDEV-27655 Spider: remove #ifdef MARIADB_BASE_VERSION 2022-02-10 14:58:27 +09:00
Nayuta Yanagisawa
7d4ef290f8 MDEV-27650 Spider: remove #ifdef SPIDER_HAS_GROUP_BY_HANDLER 2022-02-10 14:58:26 +09:00
Nayuta Yanagisawa
0df6a95bc2 MDEV-27647 Spider: remove #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS 2022-02-10 14:58:26 +09:00
Nayuta Yanagisawa
4f353dc013 MDEV-27646 Spider: remove #ifdef SPIDER_HAS_HASH_VALUE_TYPE 2022-02-10 14:58:26 +09:00
Nayuta Yanagisawa
a4da96773d MDEV-27643 Spider: remove #ifdef HA_CAN_BULK_ACCESS 2022-02-10 14:58:26 +09:00
Nayuta Yanagisawa
00ae4272b3 MDEV-27642 Spider: remove #ifdef WITHOUT_SPIDER_BG_SEARCH 2022-02-10 14:58:26 +09:00