⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtime.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
📖 第 1 页 / 共 5 页
字号:
}#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 + -