mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
auto-merge
This commit is contained in:
commit
d3c4a5cb10
3 changed files with 29 additions and 6 deletions
|
@ -590,3 +590,13 @@ select str_to_date('04/30/2004 ', '%m/%d/%Y ');
|
||||||
str_to_date('04/30/2004 ', '%m/%d/%Y ')
|
str_to_date('04/30/2004 ', '%m/%d/%Y ')
|
||||||
2004-04-30
|
2004-04-30
|
||||||
"End of 4.1 tests"
|
"End of 4.1 tests"
|
||||||
|
SELECT DATE_FORMAT("0000-01-01",'%W %d %M %Y') as valid_date;
|
||||||
|
valid_date
|
||||||
|
Sunday 01 January 0000
|
||||||
|
SELECT DATE_FORMAT("0000-02-28",'%W %d %M %Y') as valid_date;
|
||||||
|
valid_date
|
||||||
|
Tuesday 28 February 0000
|
||||||
|
SELECT DATE_FORMAT("2009-01-01",'%W %d %M %Y') as valid_date;
|
||||||
|
valid_date
|
||||||
|
Thursday 01 January 2009
|
||||||
|
"End of 5.0 tests"
|
||||||
|
|
|
@ -340,3 +340,15 @@ select str_to_date('04/30 /2004', '%m /%d /%Y');
|
||||||
select str_to_date('04/30/2004 ', '%m/%d/%Y ');
|
select str_to_date('04/30/2004 ', '%m/%d/%Y ');
|
||||||
|
|
||||||
--echo "End of 4.1 tests"
|
--echo "End of 4.1 tests"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #41470: DATE_FORMAT() crashes the complete server with a valid date
|
||||||
|
#
|
||||||
|
|
||||||
|
# show that these two do not crash the server:
|
||||||
|
SELECT DATE_FORMAT("0000-01-01",'%W %d %M %Y') as valid_date;
|
||||||
|
SELECT DATE_FORMAT("0000-02-28",'%W %d %M %Y') as valid_date;
|
||||||
|
# show that date within the Gregorian range render correct results: (THU)
|
||||||
|
SELECT DATE_FORMAT("2009-01-01",'%W %d %M %Y') as valid_date;
|
||||||
|
|
||||||
|
--echo "End of 5.0 tests"
|
||||||
|
|
|
@ -762,19 +762,20 @@ long calc_daynr(uint year,uint month,uint day)
|
||||||
{
|
{
|
||||||
long delsum;
|
long delsum;
|
||||||
int temp;
|
int temp;
|
||||||
|
int y= year; /* may be < 0 temporarily */
|
||||||
DBUG_ENTER("calc_daynr");
|
DBUG_ENTER("calc_daynr");
|
||||||
|
|
||||||
if (year == 0 && month == 0 && day == 0)
|
if (y == 0 && month == 0 && day == 0)
|
||||||
DBUG_RETURN(0); /* Skip errors */
|
DBUG_RETURN(0); /* Skip errors */
|
||||||
delsum= (long) (365L * year+ 31*(month-1) +day);
|
delsum= (long) (365L * y+ 31*(month-1) +day);
|
||||||
if (month <= 2)
|
if (month <= 2)
|
||||||
year--;
|
y--;
|
||||||
else
|
else
|
||||||
delsum-= (long) (month*4+23)/10;
|
delsum-= (long) (month*4+23)/10;
|
||||||
temp=(int) ((year/100+1)*3)/4;
|
temp=(int) ((y/100+1)*3)/4;
|
||||||
DBUG_PRINT("exit",("year: %d month: %d day: %d -> daynr: %ld",
|
DBUG_PRINT("exit",("year: %d month: %d day: %d -> daynr: %ld",
|
||||||
year+(month <= 2),month,day,delsum+year/4-temp));
|
y+(month <= 2),month,day,delsum+y/4-temp));
|
||||||
DBUG_RETURN(delsum+(int) year/4-temp);
|
DBUG_RETURN(delsum+(int) y/4-temp);
|
||||||
} /* calc_daynr */
|
} /* calc_daynr */
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue