📄 bbp.c
字号:
} } BBPunlock("CMDbbpNames"); if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_name") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_name"))); BATroles(b,"bbp","name"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 740 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDbbpName(str *ret, int *bid){ *ret = (str) GDKstrdup(BBP_logical(*bid)); return MAL_SUCCEED;}strCMDbbpRNames(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_str, BBPsize); if (b == 0) throw(MAL, "bbp.getRNames", "failed to create BAT"); BBPlock("CMDbbpRNames"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid && BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { if (BBP_logical(-i)) { BUNins(b, &i, BBP_logical(-i), FALSE); } else BUNins(b, &i, BBP_logical(i), FALSE); } BBPunlock("CMDbbpRNames"); if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_revname") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_revname"))); BATroles(b,"bbp","revname"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 771 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDbbpCount(int *ret){ BAT *b, *bn; int i; lng l; b = BATnew(TYPE_int, TYPE_lng, BBPsize); if (b == 0) throw(MAL, "catalog.bbpCount", "failed to create BAT"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) { if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { bn = BATdescriptor(i); if (bn) { l = BATcount(bn); BUNins(b, &i, &l, FALSE); BBPunfix(bn->batCacheid); } } } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_count") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_count"))); BATroles(b,"bbp","count"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 798 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#line 805 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"strCMDbbpLocation(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_str, BBPsize); if (b == 0) throw(MAL, "catalog.bbpLocation", "failed to create BAT"); BBPlock("CMDbbpLocation"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) { if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) BUNins(b, &i, BBP_physical(i), FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpLocation"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_location") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_location"))); BATroles(b,"bbp","location"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 823 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#define monet_modulesilent (GDKdebug&4096)strCMDbbpHeat(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_int, BBPsize); if (b == 0) throw(MAL, "catalog.bbpHeat", "failed to create BAT"); BBPlock("CMDbbpHeat"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) { if (BBP_cache(i) && !monet_modulesilent) { int heat = BBP_lastused(i); BUNins(b, &i, &heat, FALSE); } else if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { int zero = 0; BUNins(b, &i, &zero, FALSE); } } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpHeat"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_heat") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_heat"))); BATroles(b,"bbp","heat"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 856 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#line 863 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"strCMDbbpDirty(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_str, BBPsize); if (b == 0) throw(MAL, "catalog.bbpDirty", "failed to create BAT"); BBPlock("CMDbbpDirty"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { BAT *bn = BBP_cache(i); BUNins(b, &i, bn ? BATdirty(bn) ? "dirty" : DELTAdirty(bn) ? "diffs" : "clean" : (BBP_status(i) & BBPSWAPPED) ? "diffs" : "clean", FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpDirty"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_status") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_status"))); BATroles(b,"bbp","status"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 883 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#line 890 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"strCMDbbpStatus(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_str, BBPsize); if (b == 0) throw(MAL, "catalog.bbpStatus", "failed to create BAT"); BBPlock("CMDbbpStatus"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { char *loc = BBP_cache(i) ? "load" : "disk"; BUNins(b, &i, loc, FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpStatus"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_status") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_status"))); BATroles(b,"bbp","status"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 910 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDbbpKind(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_str, BBPsize); if (b == 0) throw(MAL, "catalog.bbpKind", "failed to create BAT"); BBPlock("CMDbbpKind"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid) if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { char *mode = NULL; if ((BBP_status(i) & BBPDELETED) || !(BBP_status(i) & BBPPERSISTENT)) mode = "transient"; else mode = "persistent"; if (mode) BUNins(b, &i, mode, FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpKind"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_kind") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_kind"))); BATroles(b,"bbp","kind"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 939 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDbbpRefCount(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_int, BBPsize); if (b == 0) throw(MAL, "catalog.bbpRefCount", "failed to create BAT"); BBPlock("CMDbbpRefCount"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid && BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { int refs = BBP_refs(i); BUNins(b, &i, &refs, FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpRefCount"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_refcnt") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_refcnt"))); BATroles(b,"bbp","refcnt"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 962 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDbbpLRefCount(int *ret){ BAT *b; int i; b = BATnew(TYPE_int, TYPE_int, BBPsize); if (b == 0) throw(MAL, "catalog.bbpLRefCount", "failed to create BAT"); BBPlock("CMDbbpLRefCount"); for (i = 1; i < BBPsize; i++) if (i != b->batCacheid && BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { int refs = BBP_lrefs(i); BUNins(b, &i, &refs, FALSE); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); BBPunlock("CMDbbpLRefCount"); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_lrefcnt") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_lrefcnt"))); BATroles(b,"bbp","lrefcnt"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 985 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}strCMDgetBATrefcnt(int *res, int *bid){ BAT *b; if ((b = BATdescriptor(*bid)) == NULL) { throw(MAL, "bbp.getRefCount", "Cannot access descriptor"); } *res = BBP_refs(b->batCacheid); BBPunfix(b->batCacheid); return MAL_SUCCEED;}strCMDgetBATlrefcnt(int *res, int *bid){ BAT *b; if ((b = BATdescriptor(*bid)) == NULL) { throw(MAL, "bbp.getLRefCount", "Cannot access descriptor"); } *res = BBP_lrefs(b->batCacheid); BBPunfix(b->batCacheid); return MAL_SUCCEED;}#line 1039 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"#line 1018 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"bbp_export str CMDbbpHeadType( int *ret);str CMDbbpHeadType( int *ret){ BAT *b,*bn; int i; b= BATnew(TYPE_int,TYPE_str,BBPsize); if (b == 0) throw(MAL, "catalog.bbpHeadType", "failed to create BAT"); for(i=1; i < BBPsize; i++) if (i != b->batCacheid) if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { bn= BATdescriptor(i); if(bn) BUNins(b, &i, BATatoms[BAThtype(bn)].name, FALSE); BBPunfix(bn->batCacheid); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_HeadType") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_HeadType"))); BATroles(b,"bbp","HeadType"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 1034 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#line 1039 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"#line 1018 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"bbp_export str CMDbbpTailType( int *ret);str CMDbbpTailType( int *ret){ BAT *b,*bn; int i; b= BATnew(TYPE_int,TYPE_str,BBPsize); if (b == 0) throw(MAL, "catalog.bbpTailType", "failed to create BAT"); for(i=1; i < BBPsize; i++) if (i != b->batCacheid) if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i))) { bn= BATdescriptor(i); if(bn) BUNins(b, &i, BATatoms[BATttype(bn)].name, FALSE); BBPunfix(bn->batCacheid); } if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); #line 683 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" if (BBPindex("bbp_TailType") > 0) BATdelete(BBPdescriptor(BBPindex("bbp_TailType"))); BATroles(b,"bbp","TailType"); BATmode(b,TRANSIENT); BATfakeCommit(b); *ret = b->batCacheid; BBPkeepref(*ret);#line 1034 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx" return MAL_SUCCEED;}#line 1040 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/mal/bbp.mx"strCMDbatunpack(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci){ BAT *b; int bid; ptr p; ValPtr head, tail; bid = *(int *) getArgValue(stk, pci, 2); if ((b = BATdescriptor(bid)) == NULL) { throw(MAL, "bbp.unpack", "Cannot access descriptor"); } head = &stk->stk[pci->argv[0]]; tail = &stk->stk[pci->argv[1]]; p = BUNfirst(b); if (p) { VALinit(head, getArgType(mb, pci, 0), BUNhead(b, p)); VALinit(tail, getArgType(mb, pci, 1), BUNtail(b, p)); } BBPunfix(b->batCacheid); return MAL_SUCCEED;}strCMDbatpack(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci){ BAT *b; int *ret; int ht, tt; size_t cap = 0; ht = getArgType(mb, pci, 1); tt = getArgType(mb, pci, 2); ret = (int *) getArgReference(stk, pci, 0); if (ht == TYPE_any || tt == TYPE_any) throw(MAL, "bbp.new", "Explicit type required"); if (isaBatType(ht)) ht = TYPE_bat; if (isaBatType(tt)) tt = TYPE_bat; b = BATnew(ht, tt, cap); BUNins(b, (ptr) getArgValue(stk, pci, 1), getArgValue(stk, pci, 2), FALSE); if (!(b->batDirty&2)) b = BATsetaccess(b, BAT_READ); *ret = b->batCacheid; BBPkeepref(*ret); return MAL_SUCCEED;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -