1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Files
mariadb/sql
Monty 08a4732860 MDEV-28217 Incorrect Join Execution When Controlling Join Buffer Size
The problem was that join_buffer_size conflicted with
join_buffer_space_limit, which caused the query to be run without join
buffer. However this caused wrong results as the optimizer assumed
that hash+join buffer would ensure that the equi-join condition
would be satisfied, and didn't check it itself.

Fixed by not using join_buffer_space_limit when
optimize_join_buffer_size=off. This matches the documentation at
https://mariadb.com/kb/en/block-based-join-algorithms

Other things:
- Removed not used variable JOIN_TAB::join_buffer_size_limit
- Give an error if we cannot allocate a join buffer. This can
  only happen if the join_buffer variables are wrongly configured or
  we are running out of memory.
  In the future, instead of returning an error, we could properly
  convert the query plan that uses BNL-H join into one that doesn't
  use join buffering:
  make sure the equi-join condition is checked where appropriate.

Reviewer: Sergei Petrunia <sergey@mariadb.com>
2023-05-04 18:40:28 +03:00
..
2020-08-03 14:44:06 +02:00
2021-04-20 12:30:09 +03:00
2022-03-23 10:47:27 +11:00
2020-08-03 13:41:29 +02:00
2020-08-03 14:44:06 +02:00
2021-04-22 07:51:33 +03:00
2021-06-21 12:38:25 +03:00
2020-08-03 14:44:06 +02:00
2020-07-14 22:59:19 +03:00
2021-03-31 09:47:14 +03:00
2020-03-30 14:50:23 +03:00
2021-10-28 08:28:39 +03:00
2020-10-29 13:38:38 +02:00
2021-10-13 12:03:32 +03:00
2020-07-31 18:09:08 +03:00
2020-08-03 14:44:06 +02:00
2023-04-26 16:15:29 +02:00
2023-04-26 16:15:29 +02:00
2020-11-03 14:49:17 +02:00
2021-06-30 18:41:46 +03:00
2023-04-10 12:18:16 +02:00
2020-11-02 15:48:47 +02:00
2021-04-21 07:25:48 +03:00
2020-02-11 14:40:35 +01:00
2020-11-03 14:49:17 +02:00
2020-05-30 11:04:27 +03:00
2022-01-30 09:46:52 +01:00
2022-07-27 11:02:57 +02:00
2022-06-09 11:53:46 +03:00
2021-03-20 13:04:36 +02:00
2022-01-30 09:46:52 +01:00
2022-02-10 20:23:56 +01:00
2020-08-10 18:40:57 +03:00
2020-09-03 09:26:54 +03:00
2022-05-08 23:03:08 +02:00
2021-10-21 14:57:00 +03:00
2021-10-21 14:57:00 +03:00
2020-11-12 15:39:02 +05:30
2020-10-29 13:38:38 +02:00
2021-07-31 22:59:58 +02:00
2023-01-28 18:22:55 +01:00
2022-05-03 10:59:54 +02:00
2023-01-10 21:04:17 +01:00
2022-09-20 12:38:25 +03:00
2023-01-28 18:22:55 +01:00
2022-10-05 10:09:49 +03:00
2021-08-11 23:00:37 +04:00
2023-03-24 11:49:48 +11:00
2023-01-03 16:10:02 +02:00
2022-11-27 05:11:39 +10:00
2023-01-28 18:22:55 +01:00
2023-01-28 18:22:55 +01:00
2023-04-21 09:10:58 +02:00
2021-06-30 18:41:46 +03:00
2022-05-08 23:03:08 +02:00
2020-12-25 09:13:28 +01:00
2023-01-28 18:22:55 +01:00
2021-03-05 10:36:51 +02:00
2022-06-27 10:14:37 +03:00
2021-04-20 12:30:09 +03:00
2021-02-23 09:25:57 +01:00
2021-04-20 12:30:09 +03:00
2022-10-25 10:04:37 +03:00
2020-07-31 18:09:08 +03:00
2022-10-01 23:07:26 +02:00
2020-03-20 22:06:55 +02:00
2022-09-23 13:47:15 +03:00
2020-10-22 13:27:18 +03:00
2022-12-13 11:37:33 +02:00
2022-01-30 09:46:52 +01:00
2022-03-29 11:13:18 +03:00
2021-07-02 11:48:51 +03:00
2020-06-13 15:11:43 +03:00
2020-06-12 10:55:53 +03:00
2022-03-29 11:13:18 +03:00
2023-01-03 16:10:02 +02:00
2020-07-15 09:49:48 +02:00
2020-12-01 14:55:46 +02:00
2020-11-11 07:37:05 +02:00
2022-06-27 10:14:37 +03:00
2020-08-26 11:30:20 +03:00
2022-04-21 11:33:59 +03:00
2020-12-02 16:16:29 +02:00