mariadb/storage/maria
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
..
unittest MDEV-29613 Improve WITH_DBUG_TRACE=OFF 2022-09-23 13:40:42 +03:00
CMakeLists.txt Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
file_formats.txt
ft_maria.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ha_maria.cc MDEV-28054 Various crashes upon INSERT/UPDATE after changing Aria settings 2023-05-02 23:37:10 +03:00
ha_maria.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
lockman.c Shrink my_atomic.h and my_cpu.h scope 2020-04-15 22:23:03 +04:00
lockman.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_backup.c Added API for copying aria tables in mariabackup 2018-12-09 22:12:25 +02:00
ma_bitmap.c mark Aria allocations for temp tables as MY_THREAD_SPECIFIC 2021-03-08 15:00:45 +01:00
ma_blockrec.c Fix use of uninitialized variable 2023-07-03 15:46:58 +02:00
ma_blockrec.h imporve clang build 2019-06-25 13:21:36 +03:00
ma_cache.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_changed.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_check.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_check_standalone.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_checkpoint.c Merge 10.2 into 10.3 2019-07-16 18:39:21 +03:00
ma_checkpoint.h Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_checksum.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_close.c Merge 10.2 into 10.3 2020-04-22 14:45:55 +03:00
ma_commit.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_commit.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_control_file.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_control_file.h Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_create.c MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_crypt.c MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_crypt.h MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_dbug.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_delete.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_delete_all.c MDEV-19595 fixed 2019-06-19 00:35:44 +03:00
ma_delete_table.c MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_dynrec.c mark Aria allocations for temp tables as MY_THREAD_SPECIFIC 2021-03-08 15:00:45 +01:00
ma_extra.c Merge 10.3 into 10.4 2021-11-09 08:40:14 +02:00
ma_ft_boolean_search.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_ft_eval.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_ft_eval.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_ft_nlq_search.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_ft_parser.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_ft_stem.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_ft_test1.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_ft_test1.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_ft_update.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_ftdefs.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_fulltext.h Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_info.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_init.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_key.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_key_recover.c MDEV-18187 Aria engine: Redo phase failed with "error 192 when executing record redo_index_new_page" upon startup on a restored datadir 2021-12-15 16:28:01 +02:00
ma_key_recover.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_keycache.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_locking.c Merge 10.3 into 10.4 2023-01-03 16:10:02 +02:00
ma_loghandler.c Merge 10.3 into 10.4 2023-01-03 16:10:02 +02:00
ma_loghandler.h Merge 10.3 into 10.4 2019-11-01 15:23:18 +02:00
ma_loghandler_lsn.h Backport aria usage if LSN_FMT from 10.3 2019-06-25 12:07:50 +03:00
ma_norec.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_open.c MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded 2023-05-02 23:37:10 +03:00
ma_packrec.c mark Aria allocations for temp tables as MY_THREAD_SPECIFIC 2021-03-08 15:00:45 +01:00
ma_page.c Fix clang 10 warnings 2020-04-27 09:40:34 +03:00
ma_pagecache.c MDEV-29613 Improve WITH_DBUG_TRACE=OFF 2022-09-23 13:40:42 +03:00
ma_pagecache.h Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_pagecaches.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_pagecrc.c Merge 10.3 into 10.4 2020-04-22 18:18:51 +03:00
ma_panic.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_preload.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_range.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_recovery.c Merge 10.3 into 10.4 2021-03-05 10:36:51 +02:00
ma_recovery.h Write error message if aria_log.??????? files are missing 2019-10-20 11:52:29 +03:00
ma_recovery_util.c Fixed printing of wring filname "maria_open" in maria.maria-recovery2.test 2021-03-01 22:09:05 +02:00
ma_recovery_util.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_rename.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_rfirst.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_rkey.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_rlast.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_rnext.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_rnext_same.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_rprev.c MDEV-21794: Optimizer flag rowid_filter leads to long query 2020-05-07 12:27:17 +02:00
ma_rrnd.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_rsame.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_rsamepos.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_rt_index.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_rt_index.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_rt_key.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_rt_key.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_rt_mbr.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_rt_mbr.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_rt_split.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_rt_test.c fix clang build 2021-08-23 16:47:25 +06:00
ma_scan.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_search.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_servicethread.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ma_servicethread.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_sort.c MDEV-28054 Various crashes upon INSERT/UPDATE after changing Aria settings 2023-05-02 23:37:10 +03:00
ma_sp_defs.h Update FSF address 2019-05-10 20:52:00 +03:00
ma_sp_key.c MDEV-21082: isnan/isinf compilation errors, isfinite warnings on MacOS 2019-11-19 16:28:15 +03:00
ma_sp_test.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_state.c Merge 10.3 into 10.4 2019-11-01 15:23:18 +02:00
ma_state.h Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_static.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
ma_statrec.c Update FSF address 2019-05-10 20:52:00 +03:00
ma_test1.c Fixed that ma_test_all.sh works 2019-06-16 13:31:42 +03:00
ma_test2.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_test3.c Fix clang -Wunused-but-set-variable in unit tests 2022-07-26 08:18:36 +03:00
ma_test_all.res
ma_test_all.sh makes mi_test_all.sh & ma_test_all.sh working (MDEV-285) 2012-09-25 13:45:11 +03:00
ma_test_big.sh
ma_test_force_start.pl CRLF->LF 2015-06-02 22:07:47 +02:00
ma_test_recovery
ma_trnman.h Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
ma_unique.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
ma_update.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
ma_write.c MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB 2023-10-24 03:35:48 +04:00
maria_chk.c MDEV-28054 Various crashes upon INSERT/UPDATE after changing Aria settings 2023-05-02 23:37:10 +03:00
maria_def.h MDEV-28054 Various crashes upon INSERT/UPDATE after changing Aria settings 2023-05-02 23:37:10 +03:00
maria_dump_log.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
maria_ftdump.c Remove HAVE_SNPRINTF 2022-10-05 10:09:49 +03:00
maria_pack.c Updated aria_pack to support transactional tables 2020-03-17 19:13:17 +02:00
maria_read_log.c Backport aria usage if LSN_FMT from 10.3 2019-06-25 12:07:50 +03:00
tablockman.c Update FSF address 2019-05-10 20:52:00 +03:00
tablockman.h Update FSF address 2019-05-10 20:52:00 +03:00
test_ma_backup.c Fix clang -Wunused-but-set-variable 2021-08-25 09:12:27 +03:00
test_pack
trnman.c Merge branch '10.3' into 10.4 2019-12-09 15:09:41 +01:00
trnman.h Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
trnman_public.h Update FSF address 2019-05-10 20:52:00 +03:00