📄 mtime.c
字号:
}#line 2652 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int date_comp_GT(bit *retval, date *val1, date *val2){ if (*val1 == date_nil || *val2 == date_nil) *retval = bit_nil; else *retval = *val1 > *val2; return GDK_SUCCEED;}#line 2653 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int date_comp_LE(bit *retval, date *val1, date *val2){ if (*val1 == date_nil || *val2 == date_nil) *retval = bit_nil; else *retval = *val1 <= *val2; return GDK_SUCCEED;}#line 2654 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int date_comp_GE(bit *retval, date *val1, date *val2){ if (*val1 == date_nil || *val2 == date_nil) *retval = bit_nil; else *retval = *val1 >= *val2; return GDK_SUCCEED;}#line 2655 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_EQ(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 == *val2; return GDK_SUCCEED;}#line 2656 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_NE(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 != *val2; return GDK_SUCCEED;}#line 2657 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_LT(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 < *val2; return GDK_SUCCEED;}#line 2658 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_GT(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 > *val2; return GDK_SUCCEED;}#line 2659 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_LE(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 <= *val2; return GDK_SUCCEED;}#line 2660 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2641 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"int daytime_comp_GE(bit *retval, daytime *val1, daytime *val2){ if (*val1 == daytime_nil || *val2 == daytime_nil) *retval = bit_nil; else *retval = *val1 >= *val2; return GDK_SUCCEED;}#line 2661 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"inttimestamp_isnil(bit *retval, timestamp *val){ *retval = ts_isnil(*val); return GDK_SUCCEED;}inttimestamp_comp_EQ(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days == val2->days && val1->msecs == val2->msecs; return GDK_SUCCEED;}inttimestamp_comp_NE(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days != val2->days || val1->msecs != val2->msecs; return GDK_SUCCEED;}inttimestamp_comp_LT(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days < val2->days || (val1->days == val2->days && val1->msecs < val2->msecs); return GDK_SUCCEED;}inttimestamp_comp_LE(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days < val2->days || (val1->days == val2->days && val1->msecs <= val2->msecs); return GDK_SUCCEED;}inttimestamp_comp_GT(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days > val2->days || (val1->days == val2->days && val1->msecs > val2->msecs); return GDK_SUCCEED;}inttimestamp_comp_GE(bit *retval, timestamp *val1, timestamp *val2){ if (ts_isnil(*val1) || ts_isnil(*val2)) *retval = bit_nil; else *retval = val1->days > val2->days || (val1->days == val2->days && val1->msecs >= val2->msecs); return GDK_SUCCEED;}intCMDmsec(lng *r){#ifdef HAVE_GETTIMEOFDAY struct timeval tp; gettimeofday(&tp, NULL); *r = ((lng) (tp.tv_sec)) * LL_CONSTANT(1000) + (lng) tp.tv_usec / LL_CONSTANT(1000);#else#ifdef HAVE_FTIME struct timeb tb; ftime(&tb); *r = ((lng) (tb.time)) * LL_CONSTANT(1000) + ((lng) tb.millitm);#endif#endif return GDK_SUCCEED;}union lng_tzone { lng lval; tzone tzval;};#line 2769 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#include "mal.h"#include "mal_exception.h"#include <mal_box.h>#line 2779 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2774 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_2lng(lng *ret,date *src){ *ret= *src; return MAL_SUCCEED;}#line 2779 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2774 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_2lng(lng *ret,daytime *src){ *ret= *src; return MAL_SUCCEED;}#line 2780 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"strMTIMEnil2date(date *ret, int *src){ (void) src; *ret = date_nil; return MAL_SUCCEED;}strMTIMEdate2date(date *ret, date *src){ *ret = *src; return MAL_SUCCEED;}strMTIMEdaytime2daytime(daytime *ret, daytime *src){ *ret = *src; return MAL_SUCCEED;}strMTIMEtimestamp2timestamp(timestamp *ret, timestamp *src){ *ret = *src; return MAL_SUCCEED;}#line 2846 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2830 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_isnil(bit *ret, date *v){ *ret= *v == date_nil; return MAL_SUCCEED;} #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_EQ(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v == *w; return MAL_SUCCEED;}#line 2834 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_NEQ(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v != *w; return MAL_SUCCEED;}#line 2835 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_LT(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v < *w; return MAL_SUCCEED;}#line 2836 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_LE(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v <= *w; return MAL_SUCCEED;}#line 2837 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_GT(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v > *w; return MAL_SUCCEED;}#line 2838 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdate_GE(bit *ret, date *v, date *w){ if( *v== date_nil || *w== date_nil) *ret= bit_nil; else *ret = *v >= *w; return MAL_SUCCEED;}#line 2839 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2846 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2830 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_isnil(bit *ret, daytime *v){ *ret= *v == daytime_nil; return MAL_SUCCEED;} #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_EQ(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v == *w; return MAL_SUCCEED;}#line 2834 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_NEQ(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v != *w; return MAL_SUCCEED;}#line 2835 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_LT(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v < *w; return MAL_SUCCEED;}#line 2836 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_LE(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v <= *w; return MAL_SUCCEED;}#line 2837 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_GT(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v > *w; return MAL_SUCCEED;}#line 2838 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2815 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"str MTIMEdaytime_GE(bit *ret, daytime *v, daytime *w){ if( *v== daytime_nil || *w== daytime_nil) *ret= bit_nil; else *ret = *v >= *w; return MAL_SUCCEED;}#line 2839 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"#line 2847 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"static BAT *timezones = NULL;strMTIMEprelude(){ char *msg = NULL; Box box; ValRecord vr; int ticks; union lng_tzone ltz; rule RULE_MAR, RULE_OCT; str s1 = "first sunday from end of march@02:00"; str s2 = "first sunday from end of october@02:00"; tzone tz; monettime_prelude(); tz = *tz_nilptr; /* to ensure initialized variables */ /* here we should initialize the time box as well */ box = openBox("time"); if (box == 0) throw(MAL, "time.prelude", "failed to open box"); /* if the box was already filled we can skip initialization */ if (box->sym->vtop == 0) { BAT *tzbat = BATnew(TYPE_str, ATOMindex("timezone"), 30); if (tzbat == NULL) throw(MAL, "time.prelude", "failed to create box"); BBPrename(tzbat->batCacheid, "timezones"); timezones = tzbat; newVariable(box->sym, GDKstrdup("timezones"), newBatType(TYPE_str, ATOMindex("timezone"))); if (bindBAT(box, "timezones", "timezones")) { throw(MAL, "time.prelude", "could not bind timezones"); } vr.vtype = ATOMindex("timezone"); #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 12 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Wake Island",&vr.val.lval,FALSE);#line 2885 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 11 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Melbourne/Australia",&vr.val.lval,FALSE);#line 2886 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 10 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Brisbane/Australia",&vr.val.lval,FALSE);#line 2887 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 9 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Japan",&vr.val.lval,FALSE);#line 2888 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 8 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Singapore",&vr.val.lval,FALSE);#line 2889 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 7 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Thailand",&vr.val.lval,FALSE);#line 2890 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" #line 2757 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx" ticks = 5 * 60; tzone_create(&(ltz.tzval), &ticks); vr.val.lval = ltz.lval; tzbat = BUNins(tzbat,"Pakistan",&vr.val.lval,FALSE);#line 2891 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/mtime.mx"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -