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