Changeset: b420d353d3b4 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b420d353d3b4 Added Files: monetdb5/modules/kernel/group.c monetdb5/modules/kernel/group.h monetdb5/modules/kernel/group.mal Removed Files: monetdb5/modules/kernel/group.mx Modified Files: clients/Tests/exports.stable.out monetdb5/extras/rdf/rdf_shredder.mx monetdb5/mal/Tests/All monetdb5/mal/Tests/tst1500.mal monetdb5/mal/Tests/tst1500.stable.out monetdb5/mal/Tests/tst1503.mal monetdb5/mal/Tests/tst1503.stable.out monetdb5/mal/Tests/tst870.mal monetdb5/mal/Tests/tst870.stable.out monetdb5/modules/kernel/Makefile.ag monetdb5/modules/mal/mat.c monetdb5/modules/mal/mat.h monetdb5/modules/mal/mat.mal monetdb5/optimizer/Tests/All monetdb5/optimizer/opt_dictionary.c monetdb5/optimizer/opt_origin.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_support.c monetdb5/tests/BugDay_2005-10-06_4.8/Tests/print_CTgroup.SF-1315791.mal monetdb5/tests/BugDay_2005-10-06_4.8/Tests/print_CTgroup.SF-1315791.stable.out monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/All sql/backends/monet5/sql.mx Branch: default Log Message:
Cleanup of group.mx and conversion to .c/.h/.mal. group.{new,derive} and group.refine are gone as are lots of other now unused interfaces in the group module. Calls to refine that still existed have been replaced by calls to suborder (see rdf shredder). diffs (truncated from 2906 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1392,8 +1392,6 @@ str CSTrelease(Client cntxt, MalBlkPtr m str CSTreleaseAll(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CSTtake(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CSTtoString(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -int CTrefine(BAT **res, BAT *b, BAT *a); -int CTrefine_rev(BAT **res, BAT *b, BAT *a); str CemptySet(int *k, int *bid); str DICTbind(int *idx, int *val, str *nme); str DICTcompress(int *idx, str *nme, int *bid); @@ -1410,88 +1408,10 @@ str FCTgetOwners(int *ret); str FCTgetPlants(int *ret, int *ret2); str FCTsetLocation(int *ret, str *loc); str FCTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str GRPaggr_count(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPavg_bte(int *ret, int *bid, int *eid); -str GRPavg_dbl(int *ret, int *bid, int *eid); -str GRPavg_flt(int *ret, int *bid, int *eid); -str GRPavg_int(int *ret, int *bid, int *eid); -str GRPavg_lng(int *ret, int *bid, int *eid); -str GRPavg_oid(int *ret, int *bid, int *eid); -str GRPavg_sht(int *ret, int *bid, int *eid); -str GRPavg_wrd(int *ret, int *bid, int *eid); -str GRPderive(int *hid, int *mid, int *ct_histoid, int *ct_mapid, int *bid); -str GRPgroup(int *rethisto, int *retbid, int *bid); -str GRPmax(int *retval, int *bid, int *eid); -str GRPmin(int *retval, int *bid, int *eid); str GRPmulticolumngroup(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str GRPprod_bte_bte(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_bte_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_bte_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_bte_sht(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_bte_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_dbl_dbl(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_flt_dbl(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_flt_flt(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_int_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_int_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_int_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_lng_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_oid_oid(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_sht_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_sht_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_sht_sht(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_sht_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_wrd_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPprod_wrd_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPrefine(int *retid, int *bid, int *aid); -str GRPrefine_rev(int *retid, int *bid, int *aid); -str GRPsize(int *retval, int *bid, int *eid); -str GRPslidingsum_bte(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_dbl(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_flt(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_int(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_lng(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_oid(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_sht(int *retval, int *bid, int *size, int *shift); -str GRPslidingsum_wrd(int *retval, int *bid, int *size, int *shift); str GRPsubgroup1(bat *ngid, bat *next, bat *nhis, bat *bid); str GRPsubgroup2(bat *ngid, bat *next, bat *nhis, bat *bid, bat *gid); str GRPsubgroup4(bat *ngid, bat *next, bat *nhis, bat *bid, bat *gid, bat *eid, bat *hid); -str GRPsum_bte_bte(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_bte_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_bte_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_bte_sht(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_bte_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_dbl_dbl(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_flt_dbl(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_flt_flt(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_int_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_int_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_int_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_lng_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_oid_oid(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_sht_int(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_sht_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_sht_sht(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_sht_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_wrd_lng(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPsum_wrd_wrd(int *retval, int *bid, int *eid, bit *ignore_nils); -str GRPvar_bte(int *ret, int *bid, int *eid); -str GRPvar_dbl(int *ret, int *bid, int *eid); -str GRPvar_flt(int *ret, int *bid, int *eid); -str GRPvar_int(int *ret, int *bid, int *eid); -str GRPvar_lng(int *ret, int *bid, int *eid); -str GRPvar_oid(int *ret, int *bid, int *eid); -str GRPvar_sht(int *ret, int *bid, int *eid); -str GRPvar_wrd(int *ret, int *bid, int *eid); -str GRPwindowsum_bte(int *retval, int *bid, int *size); -str GRPwindowsum_dbl(int *retval, int *bid, int *size); -str GRPwindowsum_flt(int *retval, int *bid, int *size); -str GRPwindowsum_int(int *retval, int *bid, int *size); -str GRPwindowsum_lng(int *retval, int *bid, int *size); -str GRPwindowsum_oid(int *retval, int *bid, int *size); -str GRPwindowsum_sht(int *retval, int *bid, int *size); -str GRPwindowsum_wrd(int *retval, int *bid, int *size); str IDentifier(str *retval, str *in); int IDfromString(str src, int *len, str *retval); str IDprelude(void); @@ -1634,8 +1554,6 @@ str MATpackSlice(Client cntxt, MalBlkPtr str MATpackValues(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MATproject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MATrefine(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MATrefineReverse(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MATsortReverseTail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MATsortTail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MBMmix(int *ret, int *batid); @@ -2579,7 +2497,6 @@ str dense_rank_grpRef; int depositBox(Box box, str name, int type, ValPtr val); str depositRef; void deriveModule(Module scope, str nme); -str deriveRef; malType destinationType(MalBlkPtr mb, InstrPtr p); void destroyBox(str name); str differenceRef; diff --git a/monetdb5/extras/rdf/rdf_shredder.mx b/monetdb5/extras/rdf/rdf_shredder.mx --- a/monetdb5/extras/rdf/rdf_shredder.mx +++ b/monetdb5/extras/rdf/rdf_shredder.mx @@ -328,56 +328,14 @@ parserData_create (str location, BAT** g * be stored only once for each couple of orders with the same first column. For * example, it holds that S_SPO == S_SOP. */ -@= order -@:order3(@1,@2,@3,@4)@ - -@= order2 -if (!CTrefine(&ctref, @1, @2)) /* refine @2 given @1= sorted */ - goto bailout; -BATsetaccess(ctref, BAT_READ); /* force BATmark not to create copy */ -ctref = BATmirror(BATmark(ctref,0)); - -/* leftfetchjoin to re-order all BATs */ -graph[@2_@4] = BATleftfetchjoin(ctref, @2, cnt); -if (graph[@2_@4] == NULL) goto bailout; -BBPcold(graph[@2_@4]->batCacheid); -graph[@3_@4] = BATleftfetchjoin(ctref, @3, cnt); -if (graph[@3_@4] == NULL) goto bailout; -BBPcold(graph[@3_@4]->batCacheid); -/* free ctref */ -BBPreclaim(ctref); -@ - -@= order3 -if ( !(CTrefine(&map_oid, @1, @2) /* refine @3 given @1= sorted */ - && CTrefine(&ctref, map_oid, @3)))/* refine @4 given @3 */ - goto bailout; - -BBPreclaim(map_oid); /* free map_oid */ -map_oid = BATmirror(BATmark(ctref,0)); /* map_oid[void,oid] gives the order */ -BBPreclaim(ctref); /* free o */ - -/* leftfetchjoin to re-order all BATs */ -graph[@2_@4] = BATleftfetchjoin(map_oid, @2, cnt); -if (graph[@2_@4] == NULL) goto bailout; -BBPcold(graph[@2_@4]->batCacheid); -graph[@3_@4] = BATleftfetchjoin(map_oid, @3, cnt); -if (graph[@3_@4] == NULL) goto bailout; -BBPcold(graph[@3_@4]->batCacheid); -/* free map_oid */ -BBPreclaim(map_oid); -@ -@c -int CTrefine(BAT **ret, BAT *b, BAT *a); /* from modules/kernel/group.mx */ - static str post_processing (parserData *pdata) { BAT *map_oid = NULL, *S = NULL, *P = NULL, *O = NULL; BAT **graph = pdata->graph; - BUN cnt; #if STORE == TRIPLE_STORE - BAT *ctref= NULL; + BAT *o1,*o2,*o3; + BAT *g1,*g2,*g3; #endif #ifdef _TKNZR_H BATiter bi, mi; @@ -408,8 +366,8 @@ post_processing (parserData *pdata) S = graph[S_sort]; P = graph[P_sort]; O = graph[O_sort]; - cnt = BATcount(S); #else + BUN cnt; /* order MAP_LEX */ BATorder(BATmirror(graph[MAP_LEX])); map_oid = BATmark(graph[MAP_LEX], 0); /* BATmark will create a copy */ @@ -442,25 +400,70 @@ post_processing (parserData *pdata) #elif STORE == TRIPLE_STORE /* order SPO/SOP */ - graph[S_sort] = BATmirror(BATsort(BATmirror(S))); /* sort on S */ - @:order(graph[S_sort],P,O,PO)@ - @:order(graph[S_sort],O,P,OP)@ - BATsetaccess(graph[S_sort], BAT_READ); /* force BATmark not to copy bat */ - graph[S_sort] = BATmirror(BATmark(BATmirror(graph[S_sort]), 0)); + if (BATsubsort(&graph[S_sort], &o1, &g1, S, NULL, NULL, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[P_PO], &o2, &g2, P, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[O_PO], &o3, &g3, O, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); + if (BATsubsort(&graph[O_OP], &o2, &g2, O, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[P_OP], &o3, &g3, P, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o1->batCacheid); + BBPunfix(g1->batCacheid); + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); /* order PSO/POS */ - graph[P_sort] = BATmirror(BATsort(BATmirror(P))); /* sort on P */ - @:order(graph[P_sort],S,O,SO)@ - @:order(graph[P_sort],O,S,OS)@ - BATsetaccess(graph[P_sort], BAT_READ); /* force BATmark not to copy bat */ - graph[P_sort] = BATmirror(BATmark(BATmirror(graph[P_sort]), 0)); + if (BATsubsort(&graph[P_sort], &o1, &g1, P, NULL, NULL, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[S_SO], &o2, &g2, S, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[O_SO], &o3, &g3, O, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); + if (BATsubsort(&graph[O_OS], &o2, &g2, O, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[S_OS], &o3, &g3, S, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o1->batCacheid); + BBPunfix(g1->batCacheid); + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); /* order OPS/OSP */ - graph[O_sort] = BATmirror(BATsort(BATmirror(O))); /* sort on O */ - @:order(graph[O_sort],P,S,PS)@ - @:order(graph[O_sort],S,P,SP)@ - BATsetaccess(graph[O_sort], BAT_READ); /* force BATmark not to copy bat */ - graph[O_sort] = BATmirror(BATmark(BATmirror(graph[O_sort]), 0)); + if (BATsubsort(&graph[O_sort], &o1, &g1, O, NULL, NULL, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[P_PS], &o2, &g2, P, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[S_PS], &o3, &g3, S, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); + if (BATsubsort(&graph[S_SP], &o2, &g2, S, o1, g1, 0, 0) == GDK_FAIL) + goto bailout; + if (BATsubsort(&graph[P_SP], &o3, &g3, P, o2, g2, 0, 0) == GDK_FAIL) + goto bailout; + BBPunfix(o1->batCacheid); + BBPunfix(g1->batCacheid); + BBPunfix(o2->batCacheid); + BBPunfix(g2->batCacheid); + BBPunfix(o3->batCacheid); + BBPunfix(g3->batCacheid); /* free memory */ BBPreclaim(S); @@ -471,7 +474,6 @@ post_processing (parserData *pdata) bailout: if (map_oid != NULL) BBPreclaim(map_oid); - if (ctref != NULL) BBPreclaim(ctref); if (S != NULL) BBPreclaim(S); if (P != NULL) BBPreclaim(P); if (O != NULL) BBPreclaim(O); diff --git a/monetdb5/mal/Tests/All b/monetdb5/mal/Tests/All --- a/monetdb5/mal/Tests/All +++ b/monetdb5/mal/Tests/All @@ -136,7 +136,7 @@ tst256 tst2560 tst260 tst2570 -tst265 +# tst265 -- windowsum and slidingsum have been removed tst267 tst270 tst272 diff --git a/monetdb5/mal/Tests/tst1500.mal b/monetdb5/mal/Tests/tst1500.mal --- a/monetdb5/mal/Tests/tst1500.mal +++ b/monetdb5/mal/Tests/tst1500.mal @@ -8,7 +8,7 @@ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list