Commit 9ecf15ed authored by unknown's avatar unknown
Browse files

Fix for bug #5513: FIND_IN_SET fails if set ends with a comma

parent cd573513
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -64,3 +64,6 @@ find_in_set('a',binary 'A,B,C')
select find_in_set(binary 'a', 'A,B,C');
find_in_set(binary 'a', 'A,B,C')
0
select find_in_set('1','3,1,');
find_in_set('1','3,1,')
2
+5 −0
Original line number Diff line number Diff line
@@ -47,3 +47,8 @@ select find_in_set(binary 'a',binary 'A,B,C');
select find_in_set('a',binary 'A,B,C');
select find_in_set(binary 'a', 'A,B,C');

#
# Bug5513:FIND_IN_SET fails if set ends with a comma
#
select find_in_set('1','3,1,');
+3 −2
Original line number Diff line number Diff line
@@ -1455,10 +1455,11 @@ longlong Item_func_find_in_set::val_int()
      {
        const char *substr_end= str_end + symbol_len;
        bool is_last_item= (substr_end == real_end);
        if (wc == (my_wc_t) separator || is_last_item)
        bool is_separator= (wc == (my_wc_t) separator);
        if (is_separator || is_last_item)
        {
          position++;
          if (is_last_item)
          if (is_last_item && !is_separator)
            str_end= substr_end;
          if (!my_strnncoll(cs, (const uchar *) str_begin,
                            str_end - str_begin,