1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-30997 SIGSEGV in __strlen_avx2 | make_date_time | Item_func_date_format::val_str

my_locale_month_names_ka_GE[] has definitions for 11 months only.
August was missing in a mistake.

Fix:
- Adding a definition for August
- Adding tests for all abbreviated and full month and weekday names
This commit is contained in:
Alexander Barkov
2023-04-05 10:47:32 +04:00
parent d84a282629
commit 17caff92b5
3 changed files with 83 additions and 1 deletions

View File

@ -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
#

View File

@ -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 #

View File

@ -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 };