In the light of :oid- or even dense-headed BATs (and eventually COLs), what is the reason to only check/assert head properties (trivial once dense), but not tail properties?
Stefan ----- Original Message ----- > Changeset: f96a7db93e54 for MonetDB > URL: > http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f96a7db93e54 > Modified Files: > monetdb5/mal/mal_dataflow.c > monetdb5/mal/mal_interpreter.c > Branch: default > Log Message: > > Include debugging > We have to trace for illegal property settings. It is an expensive > test, that may isolate a few deeply hidden errors. > > Moreover, initialize the cpu affinity > > > diffs (61 lines): > > diff --git a/monetdb5/mal/mal_dataflow.c > b/monetdb5/mal/mal_dataflow.c > --- a/monetdb5/mal/mal_dataflow.c > +++ b/monetdb5/mal/mal_dataflow.c > @@ -614,6 +614,16 @@ DFLOWstep(FlowTask *t, FlowStatus fs) > if (isaBatType(getArgType(mb, pci, i))) > { > bat bid = stk->stk[a].val.bval; > > +#ifndef NDEBUG > +#if 0 /* when needed, enable */ > + if (i < pci->retc && bid){ > + BAT *b = > BATdescriptor(bid); > + BATassertHeadProps(b); > + BBPunfix(b->batCacheid); > + } > +#endif > +#endif > + /* Check output properties */ > /* update the bigfoot > information only if we need to gc */ > if (cntxt->flags & bigfootFlag) > updateBigFoot(cntxt, > bid, TRUE); > @@ -811,8 +821,12 @@ runDFLOWworker(void *t) > Thread thr; > int i, local = 0, last = 0; > long usec=0; > + //int cpu; > > thr = THRnew(MT_getpid(), "DFLOWworker"); > + > + //cpu = MT_set_affinity(task->id); > + > GDKsetbuf(GDKmalloc(GDKMAXERRLEN)); /* where to leave errors */ > GDKerrbuf[0] = 0; > while (task) { > @@ -915,6 +929,7 @@ runDFLOWworker(void *t) > } > GDKfree(GDKerrbuf); > GDKsetbuf(0); > + //MT_unset_affinity(cpu); > THRdel(thr); > } > > diff --git a/monetdb5/mal/mal_interpreter.c > b/monetdb5/mal/mal_interpreter.c > --- a/monetdb5/mal/mal_interpreter.c > +++ b/monetdb5/mal/mal_interpreter.c > @@ -856,6 +856,16 @@ str runMALsequence(Client cntxt, MalBlkP > if (isaBatType(getArgType(mb, > pci, i))) { > bat bid = > stk->stk[a].val.bval; > > +#ifndef NDEBUG > +#if 0 /* when needed, enable */ > + if (i < pci->retc && > bid){ > + BAT *b = > BATdescriptor(bid); > + > BATassertHeadProps(b); > + > BBPunfix(b->batCacheid); > + } > +#endif > +#endif > + > /* update the bigfoot > information only if we need to gc */ > if (cntxt->flags & > bigfootFlag) > > updateBigFoot(cntxt, bid, TRUE); > _______________________________________________ > Checkin-list mailing list > [email protected] > http://mail.monetdb.org/mailman/listinfo/checkin-list > _______________________________________________ Checkin-list mailing list [email protected] http://mail.monetdb.org/mailman/listinfo/checkin-list
