@@ -362,6 +362,8 @@ struct my_collation_handler_st
362
362
363
363
extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler ;
364
364
extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler ;
365
+ extern MY_COLLATION_HANDLER my_collation_8bit_nopad_bin_handler ;
366
+ extern MY_COLLATION_HANDLER my_collation_8bit_simple_nopad_ci_handler ;
365
367
extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler ;
366
368
367
369
/* Some typedef to make it easy for C++ to make function pointers */
@@ -585,49 +587,81 @@ struct charset_info_st
585
587
586
588
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_bin ;
587
589
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1 ;
590
+ extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1_nopad ;
588
591
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename ;
589
592
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_ci ;
590
593
591
594
extern struct charset_info_st my_charset_big5_bin ;
592
595
extern struct charset_info_st my_charset_big5_chinese_ci ;
596
+ extern struct charset_info_st my_charset_big5_nopad_bin ;
597
+ extern struct charset_info_st my_charset_big5_chinese_nopad_ci ;
593
598
extern struct charset_info_st my_charset_cp1250_czech_ci ;
594
599
extern struct charset_info_st my_charset_cp932_bin ;
595
600
extern struct charset_info_st my_charset_cp932_japanese_ci ;
601
+ extern struct charset_info_st my_charset_cp932_nopad_bin ;
602
+ extern struct charset_info_st my_charset_cp932_japanese_nopad_ci ;
596
603
extern struct charset_info_st my_charset_eucjpms_bin ;
597
604
extern struct charset_info_st my_charset_eucjpms_japanese_ci ;
605
+ extern struct charset_info_st my_charset_eucjpms_nopad_bin ;
606
+ extern struct charset_info_st my_charset_eucjpms_japanese_nopad_ci ;
598
607
extern struct charset_info_st my_charset_euckr_bin ;
599
608
extern struct charset_info_st my_charset_euckr_korean_ci ;
609
+ extern struct charset_info_st my_charset_euckr_nopad_bin ;
610
+ extern struct charset_info_st my_charset_euckr_korean_nopad_ci ;
600
611
extern struct charset_info_st my_charset_gb2312_bin ;
601
612
extern struct charset_info_st my_charset_gb2312_chinese_ci ;
613
+ extern struct charset_info_st my_charset_gb2312_nopad_bin ;
614
+ extern struct charset_info_st my_charset_gb2312_chinese_nopad_ci ;
602
615
extern struct charset_info_st my_charset_gbk_bin ;
603
616
extern struct charset_info_st my_charset_gbk_chinese_ci ;
617
+ extern struct charset_info_st my_charset_gbk_nopad_bin ;
618
+ extern struct charset_info_st my_charset_gbk_chinese_nopad_ci ;
604
619
extern struct charset_info_st my_charset_latin1_bin ;
620
+ extern struct charset_info_st my_charset_latin1_nopad_bin ;
605
621
extern struct charset_info_st my_charset_latin1_german2_ci ;
606
622
extern struct charset_info_st my_charset_latin2_czech_ci ;
607
623
extern struct charset_info_st my_charset_sjis_bin ;
608
624
extern struct charset_info_st my_charset_sjis_japanese_ci ;
625
+ extern struct charset_info_st my_charset_sjis_nopad_bin ;
626
+ extern struct charset_info_st my_charset_sjis_japanese_nopad_ci ;
609
627
extern struct charset_info_st my_charset_tis620_bin ;
610
628
extern struct charset_info_st my_charset_tis620_thai_ci ;
629
+ extern struct charset_info_st my_charset_tis620_nopad_bin ;
630
+ extern struct charset_info_st my_charset_tis620_thai_nopad_ci ;
611
631
extern struct charset_info_st my_charset_ucs2_bin ;
612
632
extern struct charset_info_st my_charset_ucs2_general_ci ;
633
+ extern struct charset_info_st my_charset_ucs2_nopad_bin ;
634
+ extern struct charset_info_st my_charset_ucs2_general_nopad_ci ;
613
635
extern struct charset_info_st my_charset_ucs2_general_mysql500_ci ;
614
636
extern struct charset_info_st my_charset_ucs2_unicode_ci ;
615
637
extern struct charset_info_st my_charset_ucs2_general_mysql500_ci ;
616
638
extern struct charset_info_st my_charset_ujis_bin ;
617
639
extern struct charset_info_st my_charset_ujis_japanese_ci ;
640
+ extern struct charset_info_st my_charset_ujis_nopad_bin ;
641
+ extern struct charset_info_st my_charset_ujis_japanese_nopad_ci ;
618
642
extern struct charset_info_st my_charset_utf16_bin ;
619
643
extern struct charset_info_st my_charset_utf16_general_ci ;
620
644
extern struct charset_info_st my_charset_utf16_unicode_ci ;
621
645
extern struct charset_info_st my_charset_utf16le_bin ;
622
646
extern struct charset_info_st my_charset_utf16le_general_ci ;
647
+ extern struct charset_info_st my_charset_utf16_general_nopad_ci ;
648
+ extern struct charset_info_st my_charset_utf16_nopad_bin ;
649
+ extern struct charset_info_st my_charset_utf16le_nopad_bin ;
650
+ extern struct charset_info_st my_charset_utf16le_general_nopad_ci ;
623
651
extern struct charset_info_st my_charset_utf32_bin ;
624
652
extern struct charset_info_st my_charset_utf32_general_ci ;
625
653
extern struct charset_info_st my_charset_utf32_unicode_ci ;
654
+ extern struct charset_info_st my_charset_utf32_nopad_bin ;
655
+ extern struct charset_info_st my_charset_utf32_general_nopad_ci ;
626
656
extern struct charset_info_st my_charset_utf8_bin ;
657
+ extern struct charset_info_st my_charset_utf8_nopad_bin ;
658
+ extern struct charset_info_st my_charset_utf8_general_nopad_ci ;
627
659
extern struct charset_info_st my_charset_utf8_general_mysql500_ci ;
628
660
extern struct charset_info_st my_charset_utf8_unicode_ci ;
629
661
extern struct charset_info_st my_charset_utf8mb4_bin ;
630
662
extern struct charset_info_st my_charset_utf8mb4_general_ci ;
663
+ extern struct charset_info_st my_charset_utf8mb4_nopad_bin ;
664
+ extern struct charset_info_st my_charset_utf8mb4_general_nopad_ci ;
631
665
extern struct charset_info_st my_charset_utf8mb4_unicode_ci ;
632
666
633
667
#define MY_UTF8MB3 "utf8"
@@ -653,6 +687,11 @@ extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t,
653
687
extern void my_hash_sort_simple (CHARSET_INFO * cs ,
654
688
const uchar * key , size_t len ,
655
689
ulong * nr1 , ulong * nr2 );
690
+
691
+ extern void my_hash_sort_simple_nopad (CHARSET_INFO * cs ,
692
+ const uchar * key , size_t len ,
693
+ ulong * nr1 , ulong * nr2 );
694
+
656
695
extern void my_hash_sort_bin (CHARSET_INFO * cs ,
657
696
const uchar * key , size_t len , ulong * nr1 ,
658
697
ulong * nr2 );
@@ -824,18 +863,38 @@ int my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
824
863
void my_hash_sort_mb_bin (CHARSET_INFO * cs __attribute__((unused )),
825
864
const uchar * key , size_t len ,ulong * nr1 , ulong * nr2 );
826
865
866
+ void my_hash_sort_mb_nopad_bin (CHARSET_INFO * cs __attribute__((unused )),
867
+ const uchar * key , size_t len ,
868
+ ulong * nr1 , ulong * nr2 );
869
+
827
870
size_t my_strnxfrm_mb (CHARSET_INFO * ,
828
871
uchar * dst , size_t dstlen , uint nweights ,
829
872
const uchar * src , size_t srclen , uint flags );
830
873
874
+ size_t my_strnxfrm_mb_nopad (CHARSET_INFO * ,
875
+ uchar * dst , size_t dstlen , uint nweights ,
876
+ const uchar * src , size_t srclen , uint flags );
877
+
831
878
size_t my_strnxfrm_unicode (CHARSET_INFO * ,
832
879
uchar * dst , size_t dstlen , uint nweights ,
833
880
const uchar * src , size_t srclen , uint flags );
881
+
882
+ size_t my_strnxfrm_unicode_nopad (CHARSET_INFO * ,
883
+ uchar * dst , size_t dstlen , uint nweights ,
884
+ const uchar * src , size_t srclen , uint flags );
885
+
834
886
size_t my_strnxfrmlen_unicode (CHARSET_INFO * , size_t );
835
887
836
888
size_t my_strnxfrm_unicode_full_bin (CHARSET_INFO * ,
837
- uchar * dst , size_t dstlen , uint nweights ,
838
- const uchar * src , size_t srclen , uint flags );
889
+ uchar * dst , size_t dstlen ,
890
+ uint nweights , const uchar * src ,
891
+ size_t srclen , uint flags );
892
+
893
+ size_t my_strnxfrm_unicode_full_nopad_bin (CHARSET_INFO * ,
894
+ uchar * dst , size_t dstlen ,
895
+ uint nweights , const uchar * src ,
896
+ size_t srclen , uint flags );
897
+
839
898
size_t my_strnxfrmlen_unicode_full_bin (CHARSET_INFO * , size_t );
840
899
841
900
int my_wildcmp_unicode (CHARSET_INFO * cs ,
@@ -873,6 +932,10 @@ void my_strxfrm_desc_and_reverse(uchar *str, uchar *strend,
873
932
size_t my_strxfrm_pad_desc_and_reverse (CHARSET_INFO * cs ,
874
933
uchar * str , uchar * frmend , uchar * strend ,
875
934
uint nweights , uint flags , uint level );
935
+ size_t my_strxfrm_pad_desc_and_reverse_nopad (CHARSET_INFO * cs ,
936
+ uchar * str , uchar * frmend ,
937
+ uchar * strend , uint nweights ,
938
+ uint flags , uint level );
876
939
877
940
const MY_CONTRACTIONS * my_charset_get_contractions (CHARSET_INFO * cs ,
878
941
int level );
0 commit comments