You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-80 EXTRACT() function returned assertion error. Added code similar to mariadb code for all the INTERVAL_XXX_MICROSECOND intervals.
There is still an issue with a wrong answer for INTERVAL_MINUTE_MICROSECOND.
This commit is contained in:
@ -40,7 +40,7 @@ using namespace funcexp;
|
|||||||
|
|
||||||
long long dateGet( uint64_t time, IntervalColumn::interval_type unit, bool dateType )
|
long long dateGet( uint64_t time, IntervalColumn::interval_type unit, bool dateType )
|
||||||
{
|
{
|
||||||
uint32_t year = 0,
|
uint64_t year = 0,
|
||||||
month = 0,
|
month = 0,
|
||||||
day = 0,
|
day = 0,
|
||||||
hour = 0,
|
hour = 0,
|
||||||
@ -83,6 +83,9 @@ long long dateGet( uint64_t time, IntervalColumn::interval_type unit, bool dateT
|
|||||||
case IntervalColumn::INTERVAL_HOUR_MINUTE: return (hour*100)+min;
|
case IntervalColumn::INTERVAL_HOUR_MINUTE: return (hour*100)+min;
|
||||||
case IntervalColumn::INTERVAL_HOUR_SECOND: return (hour*10000)+(min*100)+sec;
|
case IntervalColumn::INTERVAL_HOUR_SECOND: return (hour*10000)+(min*100)+sec;
|
||||||
case IntervalColumn::INTERVAL_MINUTE_SECOND: return (min*100)+sec;
|
case IntervalColumn::INTERVAL_MINUTE_SECOND: return (min*100)+sec;
|
||||||
|
case IntervalColumn::INTERVAL_DAY_MICROSECOND: return (((day*1000000)+(hour*10000)+(min*100)+sec)*1000000)+msec;
|
||||||
|
case IntervalColumn::INTERVAL_HOUR_MICROSECOND: return (((hour*10000)+(min*100)+sec)*1000000)+msec;
|
||||||
|
case IntervalColumn::INTERVAL_MINUTE_MICROSECOND: return (((min*100)+sec)*1000000)+msec;
|
||||||
case IntervalColumn::INTERVAL_SECOND_MICROSECOND: return (sec*1000000)+msec;
|
case IntervalColumn::INTERVAL_SECOND_MICROSECOND: return (sec*1000000)+msec;
|
||||||
default:
|
default:
|
||||||
throw runtime_error("unit type is not supported: " + unit);
|
throw runtime_error("unit type is not supported: " + unit);
|
||||||
|
Reference in New Issue
Block a user