Aleksey Midenkov 0dcd30197a MDEV-25654 Unexpected ER_CRASHED_ON_USAGE and Assertion
`limit >= trx_id' failed in purge_node_t::skip

For fast alter partition ALTER lost hash fields in frm field
count. mysql_prepare_create_table() did not call add_hash_field()
because the logic of ALTER-ing field types implies automatic
promotion/demotion to/from hash index. So we don't pass hash algorithm
to mysql_prepare_create_table() and let it decide itself, but it
cannot decide it correctly for fast alter partition.

So now mysql_prepare_alter_table() is a bit more sophisticated on what
to pass in the algorithm. If not changed any fields it will force
mysql_prepare_create_table() to re-add hash fields by setting
HA_KEY_ALG_HASH.

The problem with the original logic is mysql_prepare_alter_table()
does not care 100% about hash property so the decision is blurred
between mysql_prepare_alter_table() and mysql_prepare_create_table().
2025-01-14 18:56:13 +03:00
..
2023-11-08 12:59:00 +01:00
2021-04-20 12:30:09 +03:00
2024-08-12 09:32:30 +01:00
2024-10-28 15:29:10 +01:00
2023-01-27 13:54:14 +01:00
2022-04-21 15:33:50 +03:00
2023-08-15 11:10:27 +03:00
2024-12-03 13:49:42 +03:00
2023-02-10 12:02:11 +02:00
2024-11-23 08:14:22 -07:00
2021-10-13 12:03:32 +03:00
2023-11-08 12:59:00 +01:00
2023-11-08 12:59:00 +01:00
2024-11-23 08:14:22 -07:00
2021-04-21 07:25:48 +03:00
2023-02-10 12:02:11 +02:00
2024-04-15 17:46:49 +02:00
2022-06-09 12:22:55 +03:00
2022-10-02 14:38:13 +02:00
2023-02-10 12:02:11 +02:00
2022-10-25 11:26:37 +03:00
2023-12-02 01:02:50 +01:00
2023-12-02 01:02:50 +01:00
2023-07-20 11:54:52 +02:00
2023-02-10 12:02:11 +02:00
2023-02-10 12:02:11 +02:00
2024-11-23 08:14:22 -07:00
2023-02-10 12:02:11 +02:00
2024-11-23 08:14:22 -07:00
2024-12-04 18:22:31 +03:00
2023-05-02 10:09:27 +02:00
2024-11-23 08:14:22 -07:00
2023-11-08 12:59:00 +01:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:22 -07:00
2022-12-13 14:39:18 +02:00
2021-08-18 18:22:35 +03:00
2023-02-10 12:02:11 +02:00
2022-08-02 16:35:15 +10:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:22 -07:00
2022-11-30 13:10:52 +02:00
2024-01-10 18:01:46 +11:00
2024-01-10 18:01:46 +11:00
2024-11-23 08:14:22 -07:00
2021-06-30 18:41:46 +03:00
2024-02-12 11:38:13 +02:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:23 -07:00
2024-06-05 14:06:16 +10:00
2024-04-15 18:54:30 +02:00
2024-12-17 09:52:32 +01:00
2021-03-05 12:54:43 +02:00
2024-07-03 12:45:30 +02:00
2023-12-02 01:02:50 +01:00
2023-12-02 01:02:50 +01:00
2022-09-05 13:28:56 +03:00
2023-12-02 01:02:50 +01:00
2021-02-23 09:25:57 +01:00
2022-10-02 14:38:13 +02:00
2021-09-17 19:57:13 +03:00
2023-12-02 01:02:50 +01:00
2023-09-25 13:06:57 +10:00
2023-07-20 11:54:52 +02:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:23 -07:00
2024-01-10 18:01:46 +11:00
2025-01-07 16:46:43 +01:00
2022-08-10 12:24:31 +02:00
2023-12-02 01:02:50 +01:00
2024-01-10 18:01:46 +11:00
2024-11-23 08:14:22 -07:00
2023-02-10 12:02:11 +02:00
2024-02-12 11:38:13 +02:00
2023-01-03 17:08:42 +02:00
2023-02-10 12:02:11 +02:00
2022-09-05 13:28:56 +03:00
2023-12-22 00:10:23 +01:00
2022-06-27 10:14:37 +03:00
2024-01-03 12:07:51 +02:00
2023-12-21 11:30:32 +02:00
2021-04-08 07:47:49 +03:00
2024-11-23 08:14:22 -07:00