Changeset: 751a2664c03e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/751a2664c03e
Modified Files:
        sql/backends/monet5/dict.c
        sql/test/dict/Tests/dict01.test
Branch: Jan2022
Log Message:

Set properties on right bat


diffs (117 lines):

diff --git a/sql/backends/monet5/dict.c b/sql/backends/monet5/dict.c
--- a/sql/backends/monet5/dict.c
+++ b/sql/backends/monet5/dict.c
@@ -852,9 +852,12 @@ DICTenlarge(BAT *offsets, BUN cnt, BUN s
        for(BUN i = 0; i<cnt; i++) {
                no[i] = o[i];
        }
+       BATnegateprops(n);
+       n->tnil = offsets->tnil;
+       n->tnonil = offsets->tnonil;
        n->tkey = offsets->tkey;
-       BATnegateprops(n);
        n->tsorted = offsets->tsorted;
+       n->trevsorted = offsets->trevsorted;
        return n;
 }
 
@@ -901,20 +904,22 @@ DICTrenumber(Client cntxt, MalBlkPtr mb,
        }
        BATsetcount(n, cnt);
        BATnegateprops(n);
+       n->tnil = false;
+       n->tnonil = true;
        if (o->ttype == TYPE_bte) {
                unsigned char *mp = Tloc(m, 0);
                unsigned char mm = 0;
                for(BUN i = 0; i<BATcount(m); i++)
                        if (mp[i] > mm)
                                mm = mp[i];
-               BATmaxminpos_bte(o, mm);
+               BATmaxminpos_bte(n, mm);
        } else {
                unsigned short *mp = Tloc(m, 0);
                unsigned short mm = 0;
                for(BUN i = 0; i<BATcount(m); i++)
                        if (mp[i] > mm)
                                mm = mp[i];
-               BATmaxminpos_sht(o, mm);
+               BATmaxminpos_sht(n, mm);
        }
        bat_destroy(o);
        bat_destroy(m);
@@ -1015,6 +1020,8 @@ DICTprepare4append(BAT **noffsets, BAT *
        bat_iterator_end(&bi);
        BATsetcount(n, sz);
        BATnegateprops(n);
+       n->tnil = false;
+       n->tnonil = true;
        *noffsets = n;
        return 0;
 }
diff --git a/sql/test/dict/Tests/dict01.test b/sql/test/dict/Tests/dict01.test
--- a/sql/test/dict/Tests/dict01.test
+++ b/sql/test/dict/Tests/dict01.test
@@ -354,6 +354,57 @@ statement ok
 START TRANSACTION
 
 statement ok
+CREATE TABLE rmct20(c0 BIGINT)
+
+statement ok
+CREATE TABLE rmct21(c0 BIGINT)
+
+statement ok rowcount 3
+INSERT INTO rmct20(c0) VALUES(40000), (26857000), (127117816000)
+
+statement ok rowcount 9
+INSERT INTO rmct21(c0) 
VALUES(1510153480000),(1054357633000),(93000),(542168641000),(1963352769000),(855906053000),(1937466219000),(27000),(875025185000)
+
+statement ok
+COMMIT
+
+statement ok
+CALL "sys"."dict_compress"('sys','rmct21','c0',true)
+
+statement ok rowcount 4
+INSERT INTO rmct21(c0) 
VALUES(1829991355000),(2073175664000),(1969480299000),(1534889714000)
+
+query T rowsort
+(SELECT greatest(rmct21.c0, rmct21.c0) FROM rmct21) INTERSECT ALL (SELECT 
DISTINCT sql_max(737555899, rmct21.c0) FROM rmct21)
+----
+1054357633000
+1510153480000
+1534889714000
+1829991355000
+1937466219000
+1963352769000
+1969480299000
+2073175664000
+542168641000
+855906053000
+875025185000
+
+statement ok
+START TRANSACTION
+
+statement ok
+DROP TABLE rmct20
+
+statement ok
+DROP TABLE rmct21
+
+statement ok
+COMMIT
+
+statement ok
+START TRANSACTION
+
+statement ok
 DROP ALL PROCEDURE "sys"."dict_compress"
 
 statement ok
@@ -361,3 +412,4 @@ DROP ALL PROCEDURE "sys"."for_compress"
 
 statement ok
 COMMIT
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to