Changeset: 89530bac9de6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=89530bac9de6 Modified Files: sql/backends/monet5/generator/generator.c Branch: generator Log Message:
Property management The sort order properties for timestamps are not correct yet. Detected by joins01 test. diffs (70 lines): diff --git a/sql/backends/monet5/generator/generator.c b/sql/backends/monet5/generator/generator.c --- a/sql/backends/monet5/generator/generator.c +++ b/sql/backends/monet5/generator/generator.c @@ -493,8 +493,13 @@ VLTgenerator_subselect(Client cntxt, Mal } } BATsetcount(bn, (BUN) n); - bn->tsorted = tss > 0 || n <= 1; - bn->trevsorted = tss < 0 || n <= 1; + if( cand){ + bn->tsorted = 1; + bn->trevsorted = BATcount(bn) <= 1; + } else { + bn->tsorted = tss > 0 || n <= 1; + bn->trevsorted = tss < 0 || n <= 1; + } * (bat *) getArgReference(stk, pci, 0) = bn->batCacheid; BBPkeepref(bn->batCacheid); return MAL_SUCCEED; @@ -775,7 +780,7 @@ wrapup: bn = BATnew(TYPE_void, TYPE_##TPE, cnt, TRANSIENT);\ if( bn == NULL){\ BBPreleaseref(bid);\ - throw(MAL,"generator.thetasubselect",MAL_MALLOC_FAIL);\ + throw(MAL,"generator.leftfetchjoin",MAL_MALLOC_FAIL);\ }\ v = (TPE*) Tloc(bn,BUNfirst(bn));\ for(; cnt-- > 0; ol++, o++){\ @@ -876,6 +881,7 @@ str VLTgenerator_leftfetchjoin(Client cn f = *(TPE*) getArgReference(stk,p, 1);\ l = *(TPE*) getArgReference(stk,p, 2);\ s = *(TPE*) getArgReference(stk,p, 3);\ + incr = s > 0;\ v = (TPE*) Tloc(bl,BUNfirst(bl));\ if ( s == 0 || (f> l && s>0) || (f<l && s < 0))\ throw(MAL,"generator.join","Illegal range");\ @@ -893,7 +899,7 @@ str VLTgenerator_join(Client cntxt, MalB BAT *b, *bl = NULL, *br = NULL, *bln = NULL, *brn= NULL; BUN cnt,c =0; oid o= 0, *ol, *or; - int tpe; + int tpe, incr=0; InstrPtr p = NULL, q = NULL; str msg = MAL_SUCCEED; @@ -946,6 +952,7 @@ str VLTgenerator_join(Client cntxt, MalB f = *(bte*) getArgReference(stk,p, 1); l = *(bte*) getArgReference(stk,p, 2); s = *(bte*) getArgReference(stk,p, 3); + incr = s > 0; if ( s == 0 || (f> l && s>0) || (f<l && s < 0)) throw(MAL,"generator.join","Illegal range"); v = (bte*) Tloc(b,BUNfirst(b)); @@ -975,12 +982,16 @@ str VLTgenerator_join(Client cntxt, MalB bln->hdense = 1; bln->hseqbase = 0; bln->hkey = 1; + bln->tsorted = incr || c <= 1; \ + bln->trevsorted = !incr || c <= 1; \ BATderiveProps(bln,0); BATsetcount(brn,c); brn->hdense = 1; brn->hseqbase = 0; brn->hkey = 1; + brn->tsorted = incr || c <= 1; \ + brn->trevsorted = !incr || c <= 1; \ BATderiveProps(brn,0); if( q){ BBPkeepref(*(int*)getArgReference(stk,pci,0)= brn->batCacheid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list