Changeset: 58d759145ed0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58d759145ed0 Modified Files: clients/Tests/exports.stable.out monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/mtime.mal Branch: default Log Message:
Added more missing bulk implementations at mtime module plus small cleanup diffs (truncated from 534 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1514,7 +1514,8 @@ str MTIMEdate_add_msec_interval(date *re str MTIMEdate_add_msec_interval_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEdate_addmonths(date *ret, const date *v1, const int *v2); str MTIMEdate_addmonths_bulk(bat *ret, const bat *bid1, const bat *bid2); -str MTIMEdate_date(date *dst, const date *src); +str MTIMEdate_date(date *ret, const date *src); +str MTIMEdate_date_bulk(bat *ret, const bat *bid); str MTIMEdate_diff(int *ret, const date *v1, const date *v2); str MTIMEdate_diff_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEdate_extract_century(int *ret, const date *src); @@ -1541,7 +1542,8 @@ str MTIMEdate_sub_msec_interval_bulk(bat str MTIMEdate_submonths(date *ret, const date *v1, const int *v2); str MTIMEdate_submonths_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEdate_to_str(str *ret, const date *d, const char *const *format); -str MTIMEdaytime_daytime(daytime *dst, const daytime *src); +str MTIMEdaytime_daytime(daytime *ret, const daytime *src); +str MTIMEdaytime_daytime_bulk(bat *ret, const bat *bid); str MTIMEdaytime_diff_msec(lng *ret, const daytime *v1, const daytime *v2); str MTIMEdaytime_diff_msec_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEdaytime_extract_hours(int *ret, const daytime *src); @@ -1555,12 +1557,18 @@ str MTIMEdaytime_fromseconds_bulk(bat *r str MTIMEdaytime_fromstr(daytime *ret, const char *const *s); str MTIMElocal_timezone_msec(lng *ret); str MTIMEseconds_since_epoch(int *ret, const timestamp *t); -str MTIMEsql_day(lng *ret, const lng *msecs); -str MTIMEsql_hours(int *ret, const lng *msecs); -str MTIMEsql_minutes(int *ret, const lng *msecs); -str MTIMEsql_month(int *ret, const int *months); -str MTIMEsql_seconds(int *ret, const lng *msecs); -str MTIMEsql_year(int *ret, const int *months); +str MTIMEsql_day(lng *ret, const lng *src); +str MTIMEsql_day_bulk(bat *ret, const bat *bid); +str MTIMEsql_hours(int *ret, const lng *src); +str MTIMEsql_hours_bulk(bat *ret, const bat *bid); +str MTIMEsql_minutes(int *ret, const lng *src); +str MTIMEsql_minutes_bulk(bat *ret, const bat *bid); +str MTIMEsql_month(int *ret, const int *src); +str MTIMEsql_month_bulk(bat *ret, const bat *bid); +str MTIMEsql_seconds(int *ret, const lng *src); +str MTIMEsql_seconds_bulk(bat *ret, const bat *bid); +str MTIMEsql_year(int *ret, const int *src); +str MTIMEsql_year_bulk(bat *ret, const bat *bid); str MTIMEstr_to_date(date *ret, const char *const *s, const char *const *format); str MTIMEstr_to_time(daytime *ret, const char *const *s, const char *const *format); str MTIMEstr_to_timestamp(timestamp *ret, const char *const *s, const char *const *format); @@ -1573,9 +1581,12 @@ str MTIMEtimestamp_add_month_interval(ti str MTIMEtimestamp_add_month_interval_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEtimestamp_add_msec_interval(timestamp *ret, const timestamp *v1, const lng *v2); str MTIMEtimestamp_add_msec_interval_bulk(bat *ret, const bat *bid1, const bat *bid2); -str MTIMEtimestamp_century(int *ret, const timestamp *t); -str MTIMEtimestamp_day(int *ret, const timestamp *t); -str MTIMEtimestamp_decade(int *ret, const timestamp *t); +str MTIMEtimestamp_century(int *ret, const timestamp *src); +str MTIMEtimestamp_century_bulk(bat *ret, const bat *bid); +str MTIMEtimestamp_day(int *ret, const timestamp *src); +str MTIMEtimestamp_day_bulk(bat *ret, const bat *bid); +str MTIMEtimestamp_decade(int *ret, const timestamp *src); +str MTIMEtimestamp_decade_bulk(bat *ret, const bat *bid); str MTIMEtimestamp_diff_msec(lng *ret, const timestamp *v1, const timestamp *v2); str MTIMEtimestamp_diff_msec_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEtimestamp_extract_date(date *ret, const timestamp *src); @@ -1589,19 +1600,25 @@ str MTIMEtimestamp_frommsec_bulk(bat *re str MTIMEtimestamp_fromsecond(timestamp *ret, const int *src); str MTIMEtimestamp_fromsecond_bulk(bat *ret, const bat *bid); str MTIMEtimestamp_fromstr(timestamp *ret, const char *const *s); -str MTIMEtimestamp_hours(int *ret, const timestamp *t); -str MTIMEtimestamp_minutes(int *ret, const timestamp *t); -str MTIMEtimestamp_month(int *ret, const timestamp *t); -str MTIMEtimestamp_quarter(int *ret, const timestamp *t); +str MTIMEtimestamp_hours(int *ret, const timestamp *src); +str MTIMEtimestamp_hours_bulk(bat *ret, const bat *bid); +str MTIMEtimestamp_minutes(int *ret, const timestamp *src); +str MTIMEtimestamp_minutes_bulk(bat *ret, const bat *bid); +str MTIMEtimestamp_month(int *ret, const timestamp *src); +str MTIMEtimestamp_month_bulk(bat *ret, const bat *bid); +str MTIMEtimestamp_quarter(int *ret, const timestamp *src); +str MTIMEtimestamp_quarter_bulk(bat *ret, const bat *bid); str MTIMEtimestamp_sql_seconds(int *ret, const timestamp *src); str MTIMEtimestamp_sql_seconds_bulk(bat *ret, const bat *bid); str MTIMEtimestamp_sub_month_interval(timestamp *ret, const timestamp *v1, const int *v2); str MTIMEtimestamp_sub_month_interval_bulk(bat *ret, const bat *bid1, const bat *bid2); str MTIMEtimestamp_sub_msec_interval(timestamp *ret, const timestamp *v1, const lng *v2); str MTIMEtimestamp_sub_msec_interval_bulk(bat *ret, const bat *bid1, const bat *bid2); -str MTIMEtimestamp_timestamp(timestamp *dst, const timestamp *src); +str MTIMEtimestamp_timestamp(timestamp *ret, const timestamp *src); +str MTIMEtimestamp_timestamp_bulk(bat *ret, const bat *bid); str MTIMEtimestamp_to_str(str *ret, const timestamp *d, const char *const *format); -str MTIMEtimestamp_year(int *ret, const timestamp *t); +str MTIMEtimestamp_year(int *ret, const timestamp *src); +str MTIMEtimestamp_year_bulk(bat *ret, const bat *bid); str OIDXcreate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OIDXcreateImplementation(Client cntxt, int tpe, BAT *b, int pieces); str OIDXdropImplementation(Client cntxt, BAT *b); diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mtime.c +++ b/monetdb5/modules/atoms/mtime.c @@ -42,28 +42,11 @@ extern char *strptime(const char *, cons mal_export str MTIMEcurrent_date(date *ret); mal_export str MTIMEcurrent_time(daytime *ret); mal_export str MTIMEcurrent_timestamp(timestamp *ret); -mal_export str MTIMEtimestamp_century(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_decade(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_year(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_quarter(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_month(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_day(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_hours(int *ret, const timestamp *t); -mal_export str MTIMEtimestamp_minutes(int *ret, const timestamp *t); -mal_export str MTIMEsql_year(int *ret, const int *months); -mal_export str MTIMEsql_month(int *ret, const int *months); -mal_export str MTIMEsql_day(lng *ret, const lng *msecs); -mal_export str MTIMEsql_hours(int *ret, const lng *msecs); -mal_export str MTIMEsql_minutes(int *ret, const lng *msecs); -mal_export str MTIMEsql_seconds(int *ret, const lng *msecs); mal_export str MTIMEdate_fromstr(date *ret, const char *const *s); -mal_export str MTIMEdate_date(date *dst, const date *src); mal_export str MTIMEtimestamp_fromstr(timestamp *ret, const char *const *s); -mal_export str MTIMEtimestamp_timestamp(timestamp *dst, const timestamp *src); mal_export str MTIMEseconds_since_epoch(int *ret, const timestamp *t); mal_export str MTIMEdaytime_fromstr(daytime *ret, const char *const *s); -mal_export str MTIMEdaytime_daytime(daytime *dst, const daytime *src); mal_export str MTIMEdaytime_fromseconds(daytime *ret, const lng *secs); mal_export str MTIMEdaytime_fromseconds_bulk(bat *ret, bat *bid); mal_export str MTIMElocal_timezone_msec(lng *ret); @@ -273,18 +256,9 @@ NAMEBULK(bat *ret, const bat *bid1, cons return MAL_SUCCEED; \ } -static inline date -date_sub_msec_interval(const date d, const lng ms) -{ - return date_add_day(d, (int) (-ms / (24*60*60*1000))); -} +#define date_sub_msec_interval(d, ms) date_add_day(d, (int) (-ms / (24*60*60*1000))) +#define date_add_msec_interval(d, ms) date_add_day(d, (int) (ms / (24*60*60*1000))) func2chk(MTIMEdate_sub_msec_interval, MTIMEdate_sub_msec_interval_bulk, "date_sub_msec_interval", date, lng, date, date_sub_msec_interval) - -static inline date -date_add_msec_interval(const date d, const lng ms) -{ - return date_add_day(d, (int) (ms / (24*60*60*1000))); -} func2chk(MTIMEdate_add_msec_interval, MTIMEdate_add_msec_interval_bulk, "date_add_msec_interval", date, lng, date, date_add_msec_interval) #define TSSUBMS(ts, ms) timestamp_add_usec((ts), -(ms) * 1000) @@ -292,18 +266,9 @@ func2chk(MTIMEdate_add_msec_interval, MT func2chk(MTIMEtimestamp_sub_msec_interval, MTIMEtimestamp_sub_msec_interval_bulk, "timestamp_sub_msec_interval", timestamp, lng, timestamp, TSSUBMS) func2chk(MTIMEtimestamp_add_msec_interval, MTIMEtimestamp_add_msec_interval_bulk, "timestamp_add_msec_interval", timestamp, lng, timestamp, TSADDMS) -static inline timestamp -timestamp_sub_month_interval(const timestamp t, const int m) -{ - return timestamp_add_month(t, -m); -} +#define timestamp_sub_month_interval(d, m) timestamp_add_month(d, -m) +#define timestamp_add_month_interval(d, m) timestamp_add_month(d, m) func2chk(MTIMEtimestamp_sub_month_interval, MTIMEtimestamp_sub_month_interval_bulk, "timestamp_sub_month_interval", timestamp, int, timestamp, timestamp_sub_month_interval) - -static inline timestamp -timestamp_add_month_interval(const timestamp t, const int m) -{ - return timestamp_add_month(t, m); -} func2chk(MTIMEtimestamp_add_month_interval, MTIMEtimestamp_add_month_interval_bulk, "timestamp_add_month_interval", timestamp, int, timestamp, timestamp_add_month_interval) static inline daytime @@ -313,8 +278,6 @@ time_sub_msec_interval(const daytime t, return daytime_nil; return daytime_add_usec_modulo(t, -ms * 1000); } -func2(MTIMEtime_sub_msec_interval, MTIMEtime_sub_msec_interval_bulk, "time_sub_msec_interval", daytime, lng, daytime, time_sub_msec_interval) - static inline daytime time_add_msec_interval(const daytime t, const lng ms) { @@ -322,34 +285,26 @@ time_add_msec_interval(const daytime t, return daytime_nil; return daytime_add_usec_modulo(t, ms * 1000); } +func2(MTIMEtime_sub_msec_interval, MTIMEtime_sub_msec_interval_bulk, "time_sub_msec_interval", daytime, lng, daytime, time_sub_msec_interval) func2(MTIMEtime_add_msec_interval, MTIMEtime_add_msec_interval_bulk, "time_add_msec_interval", daytime, lng, daytime, time_add_msec_interval) -static inline date -date_submonths(const date d, const int m) -{ - return date_add_month(d, -m); -} +#define date_submonths(d, m) date_add_month(d, -m) +#define date_addmonths(d, m) date_add_month(d, m) func2chk(MTIMEdate_submonths, MTIMEdate_submonths_bulk, "date_submonths", date, int, date, date_submonths) - -static inline date -date_addmonths(const date d, const int m) -{ - return date_add_month(d, m); -} func2chk(MTIMEdate_addmonths, MTIMEdate_addmonths_bulk, "date_addmonths", date, int, date, date_addmonths) -func1(MTIMEdate_extract_century, MTIMEdate_extract_century_bulk, "century", date, int, date_century, COPYFLAGS) -func1(MTIMEdate_extract_decade, MTIMEdate_extract_decade_bulk, "decade", date, int, date_decade, COPYFLAGS) -func1(MTIMEdate_extract_year, MTIMEdate_extract_year_bulk, "year", date, int, date_year, COPYFLAGS) -func1(MTIMEdate_extract_quarter, MTIMEdate_extract_quarter_bulk, "quarter", date, int, date_quarter, SETFLAGS) -func1(MTIMEdate_extract_month, MTIMEdate_extract_month_bulk, "month", date, int, date_month, SETFLAGS) -func1(MTIMEdate_extract_day, MTIMEdate_extract_day_bulk, "day", date, int, date_day, SETFLAGS) -func1(MTIMEdate_extract_dayofyear, MTIMEdate_extract_dayofyear_bulk, "dayofyear", date, int, date_dayofyear, SETFLAGS) -func1(MTIMEdate_extract_weekofyear, MTIMEdate_extract_weekofyear_bulk, "weekofyear", date, int, date_weekofyear, SETFLAGS) -func1(MTIMEdate_extract_dayofweek, MTIMEdate_extract_dayofweek_bulk, "dayofweek", date, int, date_dayofweek, SETFLAGS) -func1(MTIMEdaytime_extract_hours, MTIMEdaytime_extract_hours_bulk, "hours", daytime, int, daytime_hour, COPYFLAGS) -func1(MTIMEdaytime_extract_minutes, MTIMEdaytime_extract_minutes_bulk, "minutes", daytime, int, daytime_min, SETFLAGS) -func1(MTIMEdaytime_extract_sql_seconds, MTIMEdaytime_extract_sql_seconds_bulk, "seconds", daytime, int, daytime_sec_usec, SETFLAGS) +func1(MTIMEdate_extract_century, MTIMEdate_extract_century_bulk, "date_century", date, int, date_century, COPYFLAGS) +func1(MTIMEdate_extract_decade, MTIMEdate_extract_decade_bulk, "date_decade", date, int, date_decade, COPYFLAGS) +func1(MTIMEdate_extract_year, MTIMEdate_extract_year_bulk, "date_year", date, int, date_year, COPYFLAGS) +func1(MTIMEdate_extract_quarter, MTIMEdate_extract_quarter_bulk, "date_quarter", date, int, date_quarter, SETFLAGS) +func1(MTIMEdate_extract_month, MTIMEdate_extract_month_bulk, "date_month", date, int, date_month, SETFLAGS) +func1(MTIMEdate_extract_day, MTIMEdate_extract_day_bulk, "date_day", date, int, date_day, SETFLAGS) +func1(MTIMEdate_extract_dayofyear, MTIMEdate_extract_dayofyear_bulk, "date_dayofyear", date, int, date_dayofyear, SETFLAGS) +func1(MTIMEdate_extract_weekofyear, MTIMEdate_extract_weekofyear_bulk, "date_weekofyear", date, int, date_weekofyear, SETFLAGS) +func1(MTIMEdate_extract_dayofweek, MTIMEdate_extract_dayofweek_bulk, "date_dayofweek", date, int, date_dayofweek, SETFLAGS) +func1(MTIMEdaytime_extract_hours, MTIMEdaytime_extract_hours_bulk, "daytime_hour", daytime, int, daytime_hour, COPYFLAGS) +func1(MTIMEdaytime_extract_minutes, MTIMEdaytime_extract_minutes_bulk, "daytime_minutes", daytime, int, daytime_min, SETFLAGS) +func1(MTIMEdaytime_extract_sql_seconds, MTIMEdaytime_extract_sql_seconds_bulk, "daytime_seconds", daytime, int, daytime_sec_usec, SETFLAGS) static inline lng TSDIFF(timestamp t1, timestamp t2) @@ -369,118 +324,47 @@ TSDIFF(timestamp t1, timestamp t2) } func2(MTIMEtimestamp_diff_msec, MTIMEtimestamp_diff_msec_bulk, "diff", timestamp, timestamp, lng, TSDIFF) -str -MTIMEtimestamp_century(int *ret, const timestamp *t) +static inline int +timestamp_century(const timestamp t) { - if (is_timestamp_nil(*t)) { - *ret = int_nil; - } else { - int y = date_year(timestamp_date(*t)); - if (y > 0) - *ret = (y - 1) / 100 + 1; - else - *ret = -((-y - 1) / 100 + 1); - } - return MAL_SUCCEED; -} - -str -MTIMEtimestamp_decade(int *ret, const timestamp *t) -{ - if (is_timestamp_nil(*t)) { - *ret = int_nil; - } else { - *ret = date_year(timestamp_date(*t)) / 10; - } - return MAL_SUCCEED; -} - -str -MTIMEtimestamp_year(int *ret, const timestamp *t) -{ - *ret = date_year(timestamp_date(*t)); - return MAL_SUCCEED; + if (is_timestamp_nil(t)) + return int_nil; + int y = date_year(timestamp_date(t)); + if (y > 0) + return (y - 1) / 100 + 1; + else + return -((-y - 1) / 100 + 1); } - -str -MTIMEtimestamp_quarter(int *ret, const timestamp *t) -{ - *ret = is_timestamp_nil(*t) ? int_nil : (date_month(timestamp_date(*t)) - 1) / 3 + 1; - return MAL_SUCCEED; -} - -str -MTIMEtimestamp_month(int *ret, const timestamp *t) -{ - *ret = date_month(timestamp_date(*t)); - return MAL_SUCCEED; -} - -str -MTIMEtimestamp_day(int *ret, const timestamp *t) -{ - *ret = date_day(timestamp_date(*t)); - return MAL_SUCCEED; -} - -str -MTIMEtimestamp_hours(int *ret, const timestamp *t) -{ - *ret = daytime_hour(timestamp_daytime(*t)); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list