Changeset: 9090af8beb37 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9090af8beb37
Modified Files:
gdk/gdk_aggr.c
sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.test
sql/test/mergetables/Tests/mergequery.test
Branch: analyze-fix
Log Message:
Set minpos and maxpos on the respective aggregates. Also propagate them to the
parent bat
diffs (truncated from 592 to 300 lines):
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -3823,8 +3823,18 @@ BATmin_skipnil(BAT *b, void *aggr, bit s
}
if (is_oid_nil(pos)) {
res = ATOMnilptr(b->ttype);
+ b->tminpos = BUN_NONE;
} else {
- res = BUNtail(bi, pos - b->hseqbase);
+ BUN minpos = pos - b->hseqbase;
+ res = BUNtail(bi, minpos);
+ b->tminpos = minpos;
+ }
+ if (VIEWtparent(b)) {
+ BAT *pb = BBP_cache(VIEWtparent(b));
+ MT_lock_set(&pb->theaplock);
+ if (bi.count == BATcount(pb))
+ pb->tminpos = b->tminpos;
+ MT_lock_unset(&pb->theaplock);
}
}
if (aggr == NULL) {
@@ -3963,8 +3973,18 @@ BATmax_skipnil(BAT *b, void *aggr, bit s
}
if (is_oid_nil(pos)) {
res = ATOMnilptr(b->ttype);
+ b->tmaxpos = BUN_NONE;
} else {
- res = BUNtail(bi, pos - b->hseqbase);
+ BUN maxpos = pos - b->hseqbase;
+ res = BUNtail(bi, maxpos);
+ b->tmaxpos = maxpos;
+ }
+ if (VIEWtparent(b)) {
+ BAT *pb = BBP_cache(VIEWtparent(b));
+ MT_lock_set(&pb->theaplock);
+ if (bi.count == BATcount(pb))
+ pb->tmaxpos = b->tmaxpos;
+ MT_lock_unset(&pb->theaplock);
}
}
if (aggr == NULL) {
diff --git
a/sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.test
b/sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.test
---
a/sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.test
+++
b/sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.test
@@ -41,8 +41,8 @@ int
4
True
False
-NULL
-NULL
+8125
+8136
True
False
count
@@ -50,8 +50,8 @@ bigint
8
True
False
-NULL
-NULL
+0
+11
True
False
maxval
@@ -59,8 +59,8 @@ clob
1
False
True
-NULL
-NULL
+0
+true
False
False
minval
@@ -68,8 +68,8 @@ clob
1
False
True
-NULL
-NULL
+0
+int
False
False
nils
@@ -77,8 +77,8 @@ bigint
8
False
False
-NULL
-NULL
+0
+1
False
False
revsorted
@@ -86,8 +86,8 @@ boolean
1
False
False
-NULL
-NULL
+false
+true
False
False
sample
@@ -95,8 +95,8 @@ bigint
8
True
False
-NULL
-NULL
+0
+11
True
False
sorted
@@ -104,8 +104,8 @@ boolean
1
False
False
-NULL
-NULL
+false
+true
False
False
stamp
@@ -113,8 +113,8 @@ timestamp
8
True
False
-NULL
-NULL
+2021-03-09 08:10:25.983772
+2021-03-09 08:10:25.985546
True
False
type
@@ -122,8 +122,8 @@ clob
1
False
False
-NULL
-NULL
+bigint
+timestamp
False
False
unique
@@ -131,8 +131,8 @@ bigint
8
False
False
-NULL
-NULL
+0
+7
False
False
width
@@ -140,8 +140,8 @@ int
4
False
False
-NULL
-NULL
+1
+8
False
False
@@ -153,8 +153,8 @@ int
4
True
False
-NULL
-NULL
+8125
+8136
True
False
count
@@ -162,8 +162,8 @@ bigint
8
True
False
-NULL
-NULL
+0
+11
True
False
maxval
@@ -171,8 +171,8 @@ clob
1
False
True
-NULL
-NULL
+0
+true
False
False
minval
@@ -180,8 +180,8 @@ clob
1
False
True
-NULL
-NULL
+0
+int
False
False
nils
@@ -189,8 +189,8 @@ bigint
8
False
False
-NULL
-NULL
+0
+1
False
False
revsorted
@@ -198,8 +198,8 @@ boolean
1
False
False
-NULL
-NULL
+false
+true
False
False
sample
@@ -207,8 +207,8 @@ bigint
8
True
False
-NULL
-NULL
+0
+11
True
False
sorted
@@ -216,8 +216,8 @@ boolean
1
False
False
-NULL
-NULL
+false
+true
False
False
stamp
@@ -225,8 +225,8 @@ timestamp
8
True
False
-NULL
-NULL
+2021-03-09 08:10:25.983772
+2021-03-09 08:10:25.985546
True
False
type
@@ -234,8 +234,8 @@ clob
1
False
False
-NULL
-NULL
+bigint
+timestamp
False
False
unique
@@ -243,8 +243,8 @@ bigint
8
False
False
-NULL
-NULL
+0
+7
False
False
width
@@ -252,8 +252,8 @@ int
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list