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

Reply via email to