Alexander Barkov
df72c57d6f
MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB
...
Also fixes: MDEV-30050 Inconsistent results of DISTINCT with NOPAD
Problem:
Key segments for CHAR columns where compared using strnncollsp()
for engines MyISAM and Aria.
This did not work correct in case if the engine applyied trailing
space compression.
Fix:
Replacing ha_compare_text() calls to new functions:
- ha_compare_char_varying()
- ha_compare_char_fixed()
- ha_compare_word()
- ha_compare_word_prefix()
- ha_compare_word_or_prefix()
The code branch corresponding to comparison of CHAR column keys
(HA_KEYTYPE_TEXT segment type) now uses ha_compare_char_fixed()
which calls strnncollsp_nchars().
This patch does not change the behavior for the rest of the code:
- comparison of VARCHAR/TEXT column keys
(HA_KEYTYPE_VARTEXT1, HA_KEYTYPE_VARTEXT2 segments types)
- comparison in the fulltext code
2023-10-24 03:35:48 +04:00
..
2022-09-13 16:36:38 +03:00
2020-09-25 13:07:04 +03:00
2023-04-04 16:05:55 +04:00
2023-04-04 16:05:55 +04:00
2020-01-24 15:38:25 +01:00
2020-01-23 14:20:57 +03:00
2020-05-26 20:05:17 +03:00
2020-05-26 20:05:17 +03:00
2020-05-26 20:05:17 +03:00
2016-12-02 14:05:16 +02:00
2016-12-02 14:05:16 +02:00
2012-04-04 00:16:38 +03:00
2018-08-31 15:10:02 +03:00
2018-08-27 22:00:14 +03:00
2020-11-30 19:57:50 +02:00
2020-10-29 18:34:26 +02:00
2020-10-29 18:34:26 +02:00
2023-10-24 03:35:48 +04:00
2023-10-24 03:35:48 +04:00
2018-08-14 12:18:38 +03:00
2013-05-20 12:36:30 +02:00
2013-05-20 12:36:30 +02:00
2018-02-14 18:41:37 +01:00
2018-02-14 18:41:37 +01:00
2023-05-02 23:37:10 +03:00
2023-05-05 13:15:14 +03:00
2023-05-02 23:37:10 +03:00
2023-05-02 23:37:10 +03:00
2022-01-28 21:36:33 +01:00
2022-01-28 21:36:33 +01:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2023-10-03 18:14:18 +03:00
2019-09-01 19:17:35 +03:00
2016-03-31 10:11:16 +04:00
2015-01-21 12:03:02 +01:00
2016-03-31 10:11:16 +04:00
2015-01-18 20:38:07 +02:00
2019-06-27 20:57:25 +03:00
2019-06-27 20:57:25 +03:00
2022-09-12 22:10:39 +04:00
2019-10-18 09:05:27 +03:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2015-09-17 11:05:07 +04:00
2012-04-04 00:16:38 +03:00
2023-04-04 16:05:55 +04:00
2019-09-01 19:17:35 +03:00
2017-02-10 06:30:42 -05:00
2017-02-10 06:30:42 -05:00
2014-07-30 13:27:52 +03:00
2014-07-30 13:27:52 +03:00
2016-03-31 10:11:16 +04:00
2012-04-04 00:16:38 +03:00
2023-05-24 19:22:08 +03:00
2023-05-24 19:22:08 +03:00
2022-09-12 22:10:39 +04:00
2018-06-14 13:13:23 +04:00
2018-12-09 09:22:00 +05:30
2019-05-13 13:59:41 +03:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2019-09-01 19:17:35 +03:00
2013-03-26 10:35:34 +01:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2022-09-12 22:10:39 +04:00
2019-09-01 19:17:35 +03:00
2022-09-13 16:36:38 +03:00
2017-02-10 06:30:42 -05:00
2022-09-13 16:36:38 +03:00
2017-02-10 06:30:42 -05:00
2022-09-13 16:36:38 +03:00
2017-02-10 06:30:42 -05:00
2022-09-12 22:10:39 +04:00
2012-04-04 00:16:38 +03:00
2022-09-13 16:36:38 +03:00
2020-09-25 13:07:04 +03:00
2022-09-12 22:10:39 +04:00
2013-07-13 22:29:17 +02:00
2013-07-05 19:57:48 +04:00
2012-05-16 22:04:48 +03:00
2014-02-11 19:40:33 +02:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2012-04-04 00:16:38 +03:00
2015-11-26 11:34:17 +04:00
2018-08-28 12:14:13 +03:00
2019-09-06 11:53:10 +02:00
2015-02-10 10:21:15 +01:00
2016-03-31 10:11:16 +04:00
2013-06-06 17:51:28 +02:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2012-04-04 00:16:38 +03:00
2016-03-31 10:11:16 +04:00
2013-02-28 18:42:49 +01:00
2022-09-12 22:10:39 +04:00
2019-09-01 19:17:35 +03:00
2022-09-13 16:36:38 +03:00
2017-02-10 06:30:42 -05:00
2023-05-24 19:22:08 +03:00
2023-05-24 19:22:08 +03:00
2022-09-12 22:10:39 +04:00
2018-02-12 17:17:26 +02:00
2022-09-13 16:36:38 +03:00
2012-05-16 18:46:02 +03:00
2015-06-09 23:24:03 +04:00
2015-06-09 23:24:03 +04:00
2019-08-19 19:49:45 +03:00
2019-08-19 19:49:45 +03:00
2022-09-13 16:36:38 +03:00
2012-04-04 00:16:38 +03:00
2023-05-02 23:37:10 +03:00
2023-05-02 23:37:10 +03:00
2022-02-16 17:16:10 +02:00
2022-02-16 17:16:10 +02:00
2012-04-04 00:16:38 +03:00
2013-07-05 19:57:48 +04:00
2012-04-04 00:16:38 +03:00
2015-11-26 11:34:17 +04:00
2018-12-09 22:12:26 +02:00
2018-12-09 22:12:26 +02:00
2019-06-19 00:35:44 +03:00
2019-06-19 00:35:44 +03:00
2022-09-12 22:10:39 +04:00
2013-01-25 21:40:42 +02:00