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

Reply via email to