Changeset: 13efef9d7245 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=13efef9d7245 Modified Files: cmake/monetdb-defines.cmake monetdb5/modules/mal/batExtensions.c Branch: default Log Message:
Merged with oscar diffs (81 lines): diff --git a/monetdb5/modules/mal/batExtensions.c b/monetdb5/modules/mal/batExtensions.c --- a/monetdb5/modules/mal/batExtensions.c +++ b/monetdb5/modules/mal/batExtensions.c @@ -194,8 +194,10 @@ CMDBATimprintsize(lng *ret, bat *bid) return MAL_SUCCEED; } -#define append_bulk_imp_fixed_size(TPE) \ +#define append_bulk_imp_fixed_size(TPE, UNION_VAL) \ do { \ + ValRecord *stack = stk->stk; \ + int *argv = pci->argv; \ TPE *restrict heap; \ total = number_existing + inputs; \ if (BATextend(b, total) != GDK_SUCCEED) { \ @@ -205,13 +207,13 @@ CMDBATimprintsize(lng *ret, bat *bid) heap = (TPE*) Tloc(b, number_existing); \ if (!b->tsorted && !b->trevsorted) { \ for (int i = 3, args = pci->argc; i < args; i++) { \ - TPE next = *(TPE*) getArgReference(stk,pci,i); \ + TPE next = stack[argv[i]].val.UNION_VAL; \ new_nil |= is_##TPE##_nil(next); \ heap[j++] = next; \ } \ } else { \ bool sorted = b->tsorted, revsorted = b->trevsorted; \ - TPE prev = *(TPE*) getArgReference(stk,pci,3); \ + TPE prev = stack[argv[3]].val.UNION_VAL; \ new_nil |= is_##TPE##_nil(prev); \ if (number_existing) { \ TPE last = *(TPE*) Tloc(b, number_existing - 1); \ @@ -220,7 +222,7 @@ CMDBATimprintsize(lng *ret, bat *bid) } \ heap[j++] = prev; \ for (int i = 4, args = pci->argc; i < args; i++) { \ - TPE next = *(TPE*) getArgReference(stk,pci,i); \ + TPE next = stack[argv[i]].val.UNION_VAL; \ new_nil |= is_##TPE##_nil(next); \ sorted &= next >= prev; \ revsorted &= next <= prev; \ @@ -266,32 +268,32 @@ CMDBATappend_bulk(Client cntxt, MalBlkPt switch (b->ttype) { case TYPE_bit: case TYPE_bte: - append_bulk_imp_fixed_size(bte); + append_bulk_imp_fixed_size(bte, btval); break; case TYPE_sht: - append_bulk_imp_fixed_size(sht); + append_bulk_imp_fixed_size(sht, shval); break; case TYPE_date: case TYPE_int: - append_bulk_imp_fixed_size(int); + append_bulk_imp_fixed_size(int, ival); break; case TYPE_daytime: case TYPE_timestamp: case TYPE_lng: - append_bulk_imp_fixed_size(lng); + append_bulk_imp_fixed_size(lng, lval); break; case TYPE_oid: - append_bulk_imp_fixed_size(oid); + append_bulk_imp_fixed_size(oid, oval); break; case TYPE_flt: - append_bulk_imp_fixed_size(flt); + append_bulk_imp_fixed_size(flt, fval); break; case TYPE_dbl: - append_bulk_imp_fixed_size(dbl); + append_bulk_imp_fixed_size(dbl, dval); break; #ifdef HAVE_HGE case TYPE_hge: - append_bulk_imp_fixed_size(hge); + append_bulk_imp_fixed_size(hge, hval); break; #endif default: _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list