Changeset: 96b6def91b46 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=96b6def91b46 Modified Files: monetdb5/modules/mal/batcalc.c Branch: Jun2020 Log Message:
Better check for bat-ness. diffs (52 lines): diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c --- a/monetdb5/modules/mal/batcalc.c +++ b/monetdb5/modules/mal/batcalc.c @@ -1076,7 +1076,7 @@ CMDbatBETWEEN(Client cntxt, MalBlkPtr mb { bat bid; BAT *bn, *b = NULL, *lo = NULL, *hi = NULL, *s = NULL, *slo = NULL, *shi = NULL, *r = NULL; - int tp1, tp2, tp3; + int tp1, tp2, tp3, tp; int bc = 0; /* number of extra BAT arguments */ bool symmetric, linc, hinc, nils_false, anti, has_cand = false; @@ -1104,7 +1104,8 @@ CMDbatBETWEEN(Client cntxt, MalBlkPtr mb if (hi == NULL) goto bailout; } - if (isaBatType(getArgType(mb, pci, 4))) { + tp = getArgType(mb, pci, 4); + if (tp == TYPE_bat || isaBatType(tp)) { bid = *getArgReference_bat(stk, pci, 4); if (!is_bat_nil(bid)) { s = BATdescriptor(bid); @@ -1120,7 +1121,8 @@ CMDbatBETWEEN(Client cntxt, MalBlkPtr mb bc++; } if (has_cand && lo) { - if (isaBatType(getArgType(mb, pci, 4 + bc))) { + tp = getArgType(mb, pci, 4 + bc); + if (tp == TYPE_bat || isaBatType(tp)) { bid = *getArgReference_bat(stk, pci, 4 + bc); if (!is_bat_nil(bid)) { slo = BATdescriptor(bid); @@ -1138,7 +1140,8 @@ CMDbatBETWEEN(Client cntxt, MalBlkPtr mb } } if (has_cand && hi) { - if (!isaBatType(getArgType(mb, pci, 4 + bc))) + tp = getArgType(mb, pci, 4 + bc); + if (tp != TYPE_bat && !isaBatType(tp)) goto bailout; bid = *getArgReference_bat(stk, pci, 4 + bc); shi = BATdescriptor(bid); @@ -1146,7 +1149,8 @@ CMDbatBETWEEN(Client cntxt, MalBlkPtr mb goto bailout; bc++; } - if (r == NULL && isaBatType(getArgType(mb, pci, 4 + bc))) { + tp = getArgType(mb, pci, 4 + bc); + if (r == NULL && (tp == TYPE_bat || isaBatType(tp))) { bid = *getArgReference_bat(stk, pci, 4 + bc); if (!is_bat_nil(bid)) { r = BATdescriptor(bid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list