Changeset: 76b82dc9b95e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/76b82dc9b95e
Modified Files:
gdk/gdk_project.c
Branch: Jul2021
Log Message:
make sure we have real dense or real oids only with project1
diffs (30 lines):
diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -45,6 +45,7 @@ project1_##TYPE(BAT *restrict bn, BAT *r
for (lo = 0, hi = BATcount(l); lo < hi; lo++) \
bt[lo] = r1t[lo]; \
} else { \
+ assert(l->ttype);\
const oid *restrict ot = (const oid *) Tloc(l, 0); \
for (lo = 0, hi = BATcount(l); lo < hi; lo++) { \
oid o = ot[lo]; \
@@ -85,7 +86,8 @@ project_##TYPE(BAT *restrict bn, BAT *re
oid r1seq, r1end; \
oid r2seq, r2end; \
\
- if ((!ci || ci->tpe == cand_dense) && l->tnonil && !r2) \
+ if ((!ci || (ci->tpe == cand_dense && BATtdense(l))) && \
+ l->tnonil && r1->ttype && !BATtdense(r1) && !r2) \
return project1_##TYPE(bn, l, r1); \
MT_thread_setalgorithm(__func__); \
r1t = (const TYPE *) Tloc(r1, 0); \
@@ -173,7 +175,7 @@ project_oid(BAT *restrict bn, BAT *restr
const oid *restrict r2t = NULL;
struct canditer r1ci = {0}, r2ci = {0};
- if ((!lci || lci->tpe == cand_dense) && r1->ttype && !BATtdense(r1) &&
!r2) {
+ if ((!lci || (lci->tpe == cand_dense && BATtdense(l))) && r1->ttype &&
!BATtdense(r1) && !r2) {
if (sizeof(oid) == sizeof(lng))
return project1_lng(bn, l, r1);
else
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list