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

Reply via email to