📄 gdk_value.c
字号:
; 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 + -