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

📄 gdk_value.c

📁 这个是内存数据库中的一个管理工具
💻 C
📖 第 1 页 / 共 2 页
字号:
;					break;				case TYPE_oid:					dst->val.shval = #line 221 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting from oid, there's no need to compare to GDK_sht_min,	 * since source value is unsigned (i.e. >= 0) and all GDK_*_min values	 * are <= 0 (in fact, compilers may warn about the test) */	((lng) src->val.oval > (lng) GDK_sht_max) ? sht_nil : (sht) src->val.oval#line 481 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_wrd:					dst->val.shval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.wval < (lng) GDK_sht_min || (lng) src->val.wval > (lng) GDK_sht_max) ? sht_nil : (sht) src->val.wval#line 484 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_lng:					dst->val.shval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.lval < (lng) GDK_sht_min || (lng) src->val.lval > (lng) GDK_sht_max) ? sht_nil : (sht) src->val.lval#line 487 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_flt:					dst->val.shval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.fval < (dbl) GDK_sht_min || (dbl) src->val.fval > (dbl) GDK_sht_max) ? sht_nil : (sht) src->val.fval#line 490 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_dbl:					dst->val.shval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.dval < (dbl) GDK_sht_min || (dbl) src->val.dval > (dbl) GDK_sht_max) ? sht_nil : (sht) src->val.dval#line 493 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				}				break;			case TYPE_int:				switch (src_tpe) {				case TYPE_bit:				case TYPE_chr:					dst->val.ival = (int) src->val.cval[0];					break;				case TYPE_bte:					dst->val.ival = (int) src->val.btval;					break;				case TYPE_sht:					dst->val.ival = (int) src->val.shval;					break;				case TYPE_int:					dst->val.ival = (int) src->val.ival;					break;				case TYPE_bat:					dst->val.ival = (int) src->val.bval;					break;				case TYPE_oid:					dst->val.ival = #line 221 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting from oid, there's no need to compare to GDK_int_min,	 * since source value is unsigned (i.e. >= 0) and all GDK_*_min values	 * are <= 0 (in fact, compilers may warn about the test) */	((lng) src->val.oval > (lng) GDK_int_max) ? int_nil : (int) src->val.oval#line 516 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_wrd:#if SIZEOF_WRD == SIZEOF_INT					dst->val.ival = (int) src->val.wval;#else					dst->val.ival = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.wval < (lng) GDK_int_min || (lng) src->val.wval > (lng) GDK_int_max) ? int_nil : (int) src->val.wval#line 522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";#endif					break;				case TYPE_lng:					dst->val.ival = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.lval < (lng) GDK_int_min || (lng) src->val.lval > (lng) GDK_int_max) ? int_nil : (int) src->val.lval#line 526 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_flt:					dst->val.ival = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.fval < (dbl) GDK_int_min || (dbl) src->val.fval > (dbl) GDK_int_max) ? int_nil : (int) src->val.fval#line 529 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_dbl:					dst->val.ival = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.dval < (dbl) GDK_int_min || (dbl) src->val.dval > (dbl) GDK_int_max) ? int_nil : (int) src->val.dval#line 532 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				}				break;			case TYPE_oid:				switch (src_tpe) {				case TYPE_bit:				case TYPE_chr:					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.cval[0] < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.cval[0]#line 540 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_bte:					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.btval < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.btval#line 543 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_sht:					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.shval < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.shval#line 546 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_int:					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.ival < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.ival#line 549 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_bat:					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.bval < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.bval#line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_oid:					dst->val.oval = (oid) src->val.oval;					break;				case TYPE_wrd:#if SIZEOF_WRD == SIZEOF_OID					dst->val.oval = #line 226 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* when converting to oid, there's no need to compare to GDK_oid_max	 * for those types, where we know that GDK_oid_max <= GDK_oid_max	 * (in fact, compilers may warn about the test) */	((lng) src->val.wval < (lng) GDK_oid_min) ? oid_nil : (oid) src->val.wval#line 559 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";#else					dst->val.oval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.wval < (lng) GDK_oid_min || (lng) src->val.wval > (lng) GDK_oid_max) ? oid_nil : (oid) src->val.wval#line 561 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";#endif					break;				case TYPE_lng:					dst->val.oval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.lval < (lng) GDK_oid_min || (lng) src->val.lval > (lng) GDK_oid_max) ? oid_nil : (oid) src->val.lval#line 565 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_flt:					dst->val.oval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.fval < (dbl) GDK_oid_min || (dbl) src->val.fval > (dbl) GDK_oid_max) ? oid_nil : (oid) src->val.fval#line 568 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_dbl:					dst->val.oval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.dval < (dbl) GDK_oid_min || (dbl) src->val.dval > (dbl) GDK_oid_max) ? oid_nil : (oid) src->val.dval#line 571 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				}				break;			case TYPE_wrd:				switch (src_tpe) {				case TYPE_bit:				case TYPE_chr:					dst->val.wval = (wrd) src->val.cval[0];					break;				case TYPE_bte:					dst->val.wval = (wrd) src->val.btval;					break;				case TYPE_sht:					dst->val.wval = (wrd) src->val.shval;					break;				case TYPE_int:					dst->val.wval = (wrd) src->val.ival;					break;				case TYPE_bat:					dst->val.wval = (wrd) src->val.bval;					break;				case TYPE_oid:					dst->val.wval = (wrd) src->val.oval;					break;				case TYPE_wrd:					dst->val.wval = (wrd) src->val.wval;					break;				case TYPE_lng:#if SIZEOF_LNG == SIZEOF_WRD					dst->val.wval = (wrd) src->val.lval;#else					dst->val.wval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((lng) src->val.lval < (lng) GDK_wrd_min || (lng) src->val.lval > (lng) GDK_wrd_max) ? wrd_nil : (wrd) src->val.lval#line 603 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";#endif					break;				case TYPE_flt:					dst->val.wval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.fval < (dbl) GDK_wrd_min || (dbl) src->val.fval > (dbl) GDK_wrd_max) ? wrd_nil : (wrd) src->val.fval#line 607 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_dbl:					dst->val.wval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.dval < (dbl) GDK_wrd_min || (dbl) src->val.dval > (dbl) GDK_wrd_max) ? wrd_nil : (wrd) src->val.dval#line 610 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				}				break;			case TYPE_lng:				switch (src_tpe) {				case TYPE_bit:				case TYPE_chr:					dst->val.lval = (lng) src->val.cval[0];					break;				case TYPE_sht:					dst->val.lval = (lng) src->val.shval;					break;				case TYPE_bte:					dst->val.lval = (lng) src->val.btval;					break;				case TYPE_int:					dst->val.lval = (lng) src->val.ival;					break;				case TYPE_bat:					dst->val.lval = (lng) src->val.bval;					break;				case TYPE_oid:					dst->val.lval = (lng) src->val.oval;					break;				case TYPE_wrd:					dst->val.lval = (lng) src->val.wval;					break;				case TYPE_lng:					dst->val.lval = (lng) src->val.lval;					break;				case TYPE_flt:					dst->val.lval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.fval < (dbl) GDK_lng_min || (dbl) src->val.fval > (dbl) GDK_lng_max) ? lng_nil : (lng) src->val.fval#line 642 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				case TYPE_dbl:					dst->val.lval = #line 219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	((dbl) src->val.dval < (dbl) GDK_lng_min || (dbl) src->val.dval > (dbl) GDK_lng_max) ? lng_nil : (lng) src->val.dval#line 645 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";					break;				}				break;			case TYPE_flt:				#line 231 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* dbl always fits; flt almost always fits */	switch (src_tpe) {	case TYPE_bit:	case TYPE_chr:		dst->val.fval = (flt) src->val.cval[0];		break;	case TYPE_bte:		dst->val.fval = (flt) src->val.btval;		break;	case TYPE_sht:		dst->val.fval = (flt) src->val.shval;		break;	case TYPE_int:		dst->val.fval = (flt) src->val.ival;		break;	case TYPE_oid:		dst->val.fval = (flt) src->val.oval;		break;	case TYPE_wrd:		dst->val.fval = (flt) src->val.wval;		break;	case TYPE_lng:		dst->val.fval = (flt) src->val.lval;		break;	case TYPE_flt:		dst->val.fval = (flt) src->val.fval;		break;	case TYPE_dbl:		/* only need to do range check on dbl for dbl->flt conversion */		if (src->val.dval < (dbl) GDK_flt_min || src->val.dval > (dbl) GDK_flt_max)			dst->val.fval = flt_nil;		else			dst->val.fval = (flt) src->val.dval;		break;	case TYPE_bat:		dst->val.fval = (flt) src->val.bval;		break;	}#line 650 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";				break;			case TYPE_dbl:				#line 231 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"	/* dbl always fits; flt almost always fits */	switch (src_tpe) {	case TYPE_bit:	case TYPE_chr:		dst->val.dval = (dbl) src->val.cval[0];		break;	case TYPE_bte:		dst->val.dval = (dbl) src->val.btval;		break;	case TYPE_sht:		dst->val.dval = (dbl) src->val.shval;		break;	case TYPE_int:		dst->val.dval = (dbl) src->val.ival;		break;	case TYPE_oid:		dst->val.dval = (dbl) src->val.oval;		break;	case TYPE_wrd:		dst->val.dval = (dbl) src->val.wval;		break;	case TYPE_lng:		dst->val.dval = (dbl) src->val.lval;		break;	case TYPE_flt:		dst->val.dval = (dbl) src->val.fval;		break;	case TYPE_dbl:		/* only need to do range check on dbl for dbl->flt conversion */		if (src->val.dval < (dbl) GDK_dbl_min || src->val.dval > (dbl) GDK_dbl_max)			dst->val.dval = dbl_nil;		else			dst->val.dval = (dbl) src->val.dval;		break;	case TYPE_bat:		dst->val.dval = (dbl) src->val.bval;		break;	}#line 653 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx";				break;			}		}	}	return p;}/* VALconvert1, but returns a BAT* instead of a bat* and (thus) adds a physical fix to the bat */ptrVALconvert2(int typ, ValPtr src, ValPtr dst){	ptr p = VALconvert1(typ, src, dst);	if (typ == TYPE_bat && p != ILLEGALVALUE) {		p = BATdescriptor(dst->val.bval); /* fixes the bat */		if (p == NULL) p = ILLEGALVALUE;	}	return p;}ptrVALconvert(int typ, ValPtr t){	int src_tpe = t->vtype, dst_tpe = typ;	ptr p;	ValRecord dst;	/* use base types for user types */	if (src_tpe > TYPE_str)		src_tpe = ATOMstorage(src_tpe);	if (dst_tpe > TYPE_str)		dst_tpe = ATOMstorage(dst_tpe);	/* first convert into a new location */	p = VALconvert1(typ, t, &dst);	/* then maybe free the old */	if (src_tpe != dst_tpe && t->vtype != typ && dst_tpe != TYPE_void &&	    (src_tpe >= TYPE_str || dst_tpe >= TYPE_str))		VALclear(t);	/* and finally copy the result */	*t = dst;	/* make sure we return the correct type (not the storage type) */	t->vtype = typ;	return p == ILLEGALVALUE ? p : 	VALptr(t);}#line 700 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB/src/gdk/gdk_value.mx"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -