diff --git a/mysql-test/main/locale.result b/mysql-test/main/locale.result index 39f11053df6..b7f29439916 100644 --- a/mysql-test/main/locale.result +++ b/mysql-test/main/locale.result @@ -314,5 +314,47 @@ SELECT x; ERROR 42S22: უცნობი სვეტი 'x' 'field list'-ში SET lc_messages=DEFAULT; # +# MDEV-30997 SIGSEGV in __strlen_avx2 | make_date_time | Item_func_date_format::val_str +# +SET lc_messages=en_US; +SET lc_time_names=111; +SELECT DATE_FORMAT('1-12-01','%c %b %M'); +DATE_FORMAT('1-12-01','%c %b %M') +12 დეკ დეკემბერი +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12); +SELECT d, DATE_FORMAT(d, '%b') AS MONTH_ABBR, MONTHNAME(d) FROM +( +SELECT CAST(CONCAT('2001-', i, '-01') AS DATE) AS d FROM t1 +) d1 ORDER BY d; +d MONTH_ABBR MONTHNAME(d) +2001-01-01 იან იანვარი +2001-02-01 თებ თებერვალი +2001-03-01 მარ მარტი +2001-04-01 აპრ აპრილი +2001-05-01 მაი მაისი +2001-06-01 ივნ ივნისი +2001-07-01 ივლ ივლისი +2001-08-01 აგვ აგვისტო +2001-09-01 სექტ სექტემბერი +2001-10-01 ოქტ ოქტომბერი +2001-11-01 ნოე ნოემბერი +2001-12-01 დეკ დეკემბერი +SELECT d, WEEKDAY(d), DATE_FORMAT(d, '%a') AS DAY_ABBR, DAYNAME(d) FROM +( +SELECT CAST(CONCAT('2001-01-', i) AS DATE) AS d FROM t1 WHERE i BETWEEN 1 AND 7 +) d1 ORDER BY d; +d WEEKDAY(d) DAY_ABBR DAYNAME(d) +2001-01-01 0 ორშ ორშაბათი +2001-01-02 1 სამშ სამშაბათი +2001-01-03 2 ოთხშ ოთხშაბათი +2001-01-04 3 ხუთშ ხუთშაბათი +2001-01-05 4 პარ პარასკევი +2001-01-06 5 შაბ შაბათი +2001-01-07 6 კვ კვირა +DROP TABLE t1; +SET lc_time_names=DEFAULT; +SET lc_messages=DEFAULT; +# # End of 10.11 tests # diff --git a/mysql-test/main/locale.test b/mysql-test/main/locale.test index 9f4ceb270d9..251cae484f1 100644 --- a/mysql-test/main/locale.test +++ b/mysql-test/main/locale.test @@ -193,6 +193,32 @@ SELECT x; SET lc_messages=DEFAULT; + +--echo # +--echo # MDEV-30997 SIGSEGV in __strlen_avx2 | make_date_time | Item_func_date_format::val_str +--echo # + +SET lc_messages=en_US; +SET lc_time_names=111; +SELECT DATE_FORMAT('1-12-01','%c %b %M'); +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12); +SELECT d, DATE_FORMAT(d, '%b') AS MONTH_ABBR, MONTHNAME(d) FROM +( + SELECT CAST(CONCAT('2001-', i, '-01') AS DATE) AS d FROM t1 +) d1 ORDER BY d; + +SELECT d, WEEKDAY(d), DATE_FORMAT(d, '%a') AS DAY_ABBR, DAYNAME(d) FROM +( + SELECT CAST(CONCAT('2001-01-', i) AS DATE) AS d FROM t1 WHERE i BETWEEN 1 AND 7 +) d1 ORDER BY d; + + +DROP TABLE t1; +SET lc_time_names=DEFAULT; +SET lc_messages=DEFAULT; + + --echo # --echo # End of 10.11 tests --echo # diff --git a/sql/sql_locale.cc b/sql/sql_locale.cc index eb5e3fbbc5a..f2ca8c2da96 100644 --- a/sql/sql_locale.cc +++ b/sql/sql_locale.cc @@ -3320,7 +3320,21 @@ MY_LOCALE my_locale_rm_CH /***** LOCALE BEGIN ka_GE: Georgian - Georgia *****/ static const char *my_locale_month_names_ka_GE[13] = - {"იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი", NullS }; +{ + "იანვარი", // January + "თებერვალი", // February + "მარტი", // March + "აპრილი", // April + "მაისი", // May + "ივნისი", // June + "ივლისი", // July + "აგვისტო", // August + "სექტემბერი", // September + "ოქტომბერი", // October + "ნოემბერი", // November + "დეკემბერი", // December + NullS +}; static const char *my_locale_ab_month_names_ka_GE[13] = {"იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექტ","ოქტ","ნოე","დეკ", NullS };